[GHC] #11011: Add type-indexed type representations (`TypeRep a`)
GHC
ghc-devs at haskell.org
Mon Feb 1 14:43:08 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 bgamari):
> > These representations are handled as a bit of a special case. I need
to
> [sic] Ooh. It's like a mystery novel.
:-) That was meant to say that I needed to take another careful look at
the implementation surrounding the representations primitive type since it
seems a bit fragile at the moment.
> Other points:
> - I vote only pattern synonyms.
That sounds reasonable to me.
> - Serialization is used in Cloud Haskell, no?
Yes; it's also used in GHC (there is a `Binary` instance). I'm a bit
unsure at the moment of what this should look like.
> - I like the idea of including the paranoid checks as an option for
paranoid users. Although perhaps not, given that I believe it's likelier
for a cosmic ray to flip a bit than for the fingerprints to give a false
positive.
I'm not opposed to providing it, although it would be good to state
clearly what our threat model is here. What guarantees are we trying to
keep? This question seems to become rather hairy in the presence of
serialization.
> As for names: I think a proper migration story needs to be articulated.
In a few years, I'd hate to have all these extra Ts lying around. Use a
new module name for the new features and keep the old module with the old
interface around? Maybe the new module can be Data.Reflection.
I'm not sure the `T`s are necessarily bad given that the quantified
`TypeRep` still serves a purpose. Especially in light of my proposal in
comment:18 it seems like the `T` prefix could be a useful convention.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11011#comment:20>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list