No Typeable instance for type-level literals and promoted types
There's no Typeable instance for string and numeric literals. E.g.
Prelude GHC.TypeLits Data.Typeable> typeRep (Proxy :: Proxy "foo")
<interactive>:15:1:
No instance for (Typeable "foo") arising from a use of ‘typeRep’
In the expression: typeRep (Proxy :: Proxy "foo")
In an equation for ‘it’: it = typeRep (Proxy :: Proxy "foo")
This means that we can't have a Typeable instance for phantom types parameterised by these literals.
Ditto for the promoted data types:
Prelude Data.Typeable> typeRep (Proxy :: Proxy Nothing)
<interactive>:4:1:
No instance for (Typeable 'Nothing) arising from a use of ‘typeRep’
In the expression: typeRep (Proxy :: Proxy Nothing)
In an equation for ‘it’: it = typeRep (Proxy :: Proxy Nothing)