<div dir="ltr"><div dir="ltr">On Thu, Dec 3, 2020 at 5:40 PM Richard Eisenberg <<a href="mailto:rae@richarde.dev">rae@richarde.dev</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
> data App f a = App (f a)<br>
<br>
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.<br></blockquote><div><br></div><div>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.<br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
* 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.<br></blockquote><div><br></div><div>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?</div><div><br></div><div>Is it even possible while still supporting Haskell2010?<br></div></div></div>