Subsumption in polymorphic types
The typechecker doesn’t know when to apply the subsumption rule. You can tell it when with the following function. Prelude> let u :: ((f a -> f a) -> c) -> ((forall b. f b -> f b) -> c); u f n = f n This says, given a function from a transformation for … Read more