Skip to content

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)
Edited by Feuerbach
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information