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.