
#13761: Can't create poly-kinded GADT with TypeInType enabled, but can without -------------------------------------+------------------------------------- Reporter: RyanGlScott | Owner: (none) Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 8.0.1 checker) | Resolution: | Keywords: TypeInType Operating System: Unknown/Multiple | Architecture: Type of failure: GHC rejects | Unknown/Multiple valid program | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by RyanGlScott): Replying to [comment:2 goldfire]:
This behavior is all expected... or, in one case, not unexpected.
The very first example in the OP is regrettable, but it is "not unexpected", as `-XNoTypeInType` rejects such programs on a best-effort basis. That one is hard.
The other examples are all consequences of [https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/glasgow_exts... #complete-user-supplied-kind-signatures-and-polymorphic-recursion the CUSK rules].
Proposed solution: allow top-level kind signatures of type-level declarations (just like we have top-level type signatures of term-level declarations) and deprecate CUSKs. One Of These Days, I will write a ghc-
Thanks for the link. I'm a bit embarrassed to say I didn't think to look in the users' guide to see if CUSKs were documented, but I'm glad they are! proposal for this. If I may ask, what do you mean by "top-level kind signature" here? I thought that {{{#!hs data T :: forall k. k -> Type }}} //was// a top-level kind signature, but perhaps you meant something different? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/13761#comment:3 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler