
#11471: Kind polymorphism and unboxed types: bad things are happening -------------------------------------+------------------------------------- Reporter: bgamari | Owner: goldfire Type: bug | Status: new Priority: normal | Milestone: Component: Compiler (Type | Version: 7.10.3 checker) | Keywords: TypeInType, Resolution: | LevityPolymorphism 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): For the record, the current plan (implemented in Phab:D1891) looks like this, {{{#!hs data RuntimeRep = PtrRep Levity -- ^ represented by a pointer | VecRep VecCount VecElem -- ^ a SIMD vector type | VoidRep -- ^ erased entirely | IntRep -- ^ signed, word-sized value | WordRep -- ^ unsigned, word-sized value | Int64Rep -- ^ signed, 64-bit value (on 32-bit only) | Word64Rep -- ^ unsigned, 64-bit value (on 32-bit only) | AddrRep -- ^ A pointer, but /not/ to a Haskell value | FloatRep -- ^ a 32-bit floating point number | DoubleRep -- ^ a 64-bit floating point number | UnboxedTupleRep -- ^ An unboxed tuple; this doesn't specify a concrete rep data VecCount = Vec2 | Vec4 | Vec8 | Vec16 | Vec32 | Vec64 data VecElem = Int8ElemRep | Int16ElemRep | Int32ElemRep | Int64ElemRep | Word8ElemRep | Word16ElemRep | Word32ElemRep | Word64ElemRep | FloatElemRep | DoubleElemRep data Levity = Lifted | Unlifted data TYPE (rep :: RuntimeRep) :: TYPE 'Lifted }}} Simon says,
I'm afraid I don't understand the idea of comment:9. I'm happy that Richard says he likes it, but what precisely is the suggestion?
I think Reid was suggesting that `TYPE 'Lifted :: TYPE 'TypeRep` or something along those lines (where `TypeRep` would look very similar to `VoidRep`). This reflects the fact types (e.g. `Int`) have no runtime representation. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11471#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler