Skip to content

Type family reification misses a kind signature

If I have

type family F (a :: k) :: * where
    F (a :: * -> *) = Int
    F (a :: k)      = Char

and then print out the reification of F, I get (when pretty-printed)

type family Ghci1.F (a_0 :: k_1) :: * where
    Ghci1.F a_2 = GHC.Types.Int
    Ghci1.F a_3 = GHC.Types.Char

Note that the kind signature on the first variable is dropped. This is not the fault of the pretty-printer, as the kind signature is dropped in the AST as well. The reifier should include the kind signature.

Trac metadata
Trac field Value
Version 8.0.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Template Haskell
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information