
#8090: MetaKinds - PolyKinds generalization -------------------------------------+------------------------------------ Reporter: wvv | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.6.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Unknown/Multiple Type of failure: None/Unknown | Difficulty: Unknown Test Case: | Blocked By: Blocking: | Related Tickets: -------------------------------------+------------------------------------ Comment (by goldfire): To remove ambiguity, I'll adopt the "many stars" notation. If we assume an infinite hierarchy of classifications ("sorts") (and a right-associative ::), we have {{{ True :: Bool :: * :: ** :: *** :: **** :: ... }}} We currently have mono-kinded type variables {{{(a :: *)}}} and poly- kinded type variables {{{(a :: k :: **)}}. If we have the next level, {{{(a :: k :: m :: ***)}}}, what useful value could {{{m}}} have other than {{{**}}}? My understanding is that, in this scenario, any value other than {{{**}}} for {{{m}}} would mean that the kind `k` would be empty -- that is, `a` wouldn't exist. I still don't see where this extension would be helpful. For example, you propose this type: {{{ data Foo (a::(b::k)->*) }}} What would its right-hand side look like? -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/8090#comment:5 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler