
On Thu, Dec 3, 2020 at 5:40 PM Richard Eisenberg
data App f a = App (f a)
With PolyKinds, App gets the kind (k -> Type) -> k -> Type. Without PolyKinds, GHC has to use defaulting to get (Type -> Type) -> Type -> Type, which might not work at certain use sites.
You know how I dislike this automatic kind generalisation. This is not going to win me over :-p . I still think that the polymorphism inference of PolyKind was a mistake. That being said, it's something that we have committed to. It's going to be quite hard to change any time soon.
* Supporting NoPolyKinds is difficult within GHC, and I've been waiting for the right time to propose removing support for it. PolyKinds is conceptually *simpler* than NoPolyKinds, as it doesn't require an awkward defaulting step.
On the other hand, I'd say that this is a rather strong argument. Who else wants to remove `NoPolyKinds`? Simon PJ, what do you think? Is it even possible while still supporting Haskell2010?