<div dir="ltr">Hi everyone,<div><br></div><div>The proposal is about adding stand-alone kind signatures for type declarations:</div><div><br></div><div>  <a href="https://github.com/ghc-proposals/ghc-proposals/pull/54">https://github.com/ghc-proposals/ghc-proposals/pull/54</a></div><div><br></div><div>The basic idea is to add support for kind signatures like this:</div><div><br></div><div>type T :: Type -> Type -> Type</div><div>data T a b = ...</div><div><br></div><div>Signatures would be introduced by the keyword 'type' and could be provided for data types, type synonyms, type families and classes. The extension would be enable via -XTopLevelKinds.</div><div><br></div><div>Additionally, complete user-supplied kind signatures (CUSKs, see <a href="https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#complete-user-supplied-kind-signatures-and-polymorphic-recursion">https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts.html#complete-user-supplied-kind-signatures-and-polymorphic-recursion</a>) would be given a separate language extension, -XCUSKs which would be on by default for now but turned off in GHC 8.8 and then deprecated and removed.</div><div><br></div><div>The proposal depends on #81.</div><div><br></div><div>Feedback has been positive and this is rather cleaner than the current story so I'm in favour of accepting this.</div><div><br></div><div>Like Richard, I'm not really happy with the name "TopLevelKinds", especially since signatures for associated types aren't even on the top level. Would something like StandAloneKinds or ExplicitKindSignatures be better?</div><div><br></div><div>One minor point that isn't clear to me: the proposal says that "Associated types may be given kind signatures within their classes". Are type variables mentioned in the class head visible in the kind signature for the associated type?</div><div><br></div><div>Thanks,</div><div><br></div><div>Roman</div><div><br></div></div>