<div dir="ltr"><div>Dear all,</div><div><br></div><div>Our own Richard and Simon PJ are proposing to remove kind constraints from GHC <a href="https://github.com/ghc-proposals/ghc-proposals/pull/547">https://github.com/ghc-proposals/ghc-proposals/pull/547</a></div><div><br></div><div>What are they? Well, exactly. It is a little known feature that you can add constraints in kinds. Actually, you can only have equality constraints (e.g. a~Boo => t -> Type (I actually wanted to write Bool, but I decided to keep the typo in honour of the season)), class constraints are already forbidden.</div><div><br></div><div>The feature is of limited use because you are not allowed to actually use the constraint when writing instances of such a kind. It's purely a restriction (much like data type contexts). Richard describes the feature as having been implemented because it was easy, not because it was answering a particular need (though it is possible to find applications).<br></div><div><br></div><div>Richard and Simon have a problem with this not-very-useful feature: its mere existence makes their plan to properly separate Constraints and Types in Core much harder. So they want to just get rid of it.<br></div><div><br></div><div>Now, it's difficult to estimate how much this feature is actually used. As we've learnt the hard way with the simplified subsumption proposal. I'd honestly be surprised if there was actually no usage of kind constraints in the wild. So there is always a risk. But I think that this is a fairly safe bet that very few people have actually used this feature. On the other hand the Constraint/Type separation is long overdue. It seems to me that removing the feature is the right call. I recommend acceptance.</div><div><br></div><div>/Arnaud<br></div></div>