
#11011: Add type-indexed type representations (`TypeRep a`) -------------------------------------+------------------------------------- Reporter: bjmprice | Owner: Type: feature request | Status: new Priority: normal | Milestone: Component: Compiler | Version: Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: | Unknown/Multiple Type of failure: None/Unknown | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by goldfire): Replying to [comment:13 simonpj]:
* The entire business of "querying the kinds at which a `TyCon` is instantiated" seems moot once types and kinds are unified. I.e. now. Doesn't the same decompose-type-application stuff work for kinds?
No. We're using "kind" here to refer to parameters in which the tycon's kind is dependent. That is, when we have `Proxy :: forall k. k -> Type`, `Proxy`'s first argument is dependent. We can't have a `TypeRep` just for plain, uninstantiated `Proxy` because `Proxy`'s kind mentions a forall, and we would need `TypeRep (forall k. k -> Type) Proxy`, which requires impredicativity. And there's the matter of writing the very intricate type for `mkAppTy :: TypeRep ... -> TypeRep ... -> TypeRep ...`, which would now need to perform substitution. Ick. So we just don't do any of it. This means that we can't decompose kind parameters. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11011#comment:15 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler