What is the purpose of Rank2Types?
It’s hard to understand higher-rank polymorphism unless you study System F directly, because Haskell is designed to hide the details of that from you in the interest of simplicity. But basically, the rough idea is that polymorphic types don’t really have the a -> b form that they do in Haskell; in reality, they look … Read more