[GHC] #11011: Add type-indexed type representations (`TypeRep a`)

GHC ghc-devs at haskell.org
Sun Jan 31 13:28:42 UTC 2016


#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):

 Re comment:7:

 Given our ideas in #11471, it's quite possible that the saturation check
 has gone stale. It does take a bit of Hard Thought, but my guess is that
 we can lift this restriction.

 Re comment:8:

 I'm afraid there are a few bugs in your code, and it's hard to disentangle
 what you're getting at.
 * The body of `proxyIntRep` is not what you mean. Perhaps you just meant
 `typeRep`?
 * The type of `proxyIntKind` is wrong. Why should it be `TypeRep (* ->
 *)`? I would think it's just plain old `*`, which is the kind of `Proxy
 Int`.
 * Your `TRFun` pattern would seem to want pattern signature `() => fun ~
 (arg -> res) => TTypeRep arg -> TTypeRep res -> TTypeRep fun`, no? That
 is, the equality is provided, not required.
 * Are you worried about decomposing `Proxy Int` itself? As in `case
 splitApp proxyIntRep of App trProxy _trInt -> typeRepKind trProxy`? But
 that would just be `* -> *` because the `Proxy` would still be specialized
 to `*`.

 Does this help to clarify? We absolutely need to only build kind-
 monomorphic `TypeRep`s, as described in the paper, but I don't see where
 things go awry under this scheme.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11011#comment:9>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list