The TypeConcat and TypeString types aren't really symbols. We should really build up an expression in some error message kind instead. Perhaps:
foreign import kind ErrorMessage
foreign import data Lit :: Symbol -> ErrorMessage
foreign import data TypeConcat :: ErrorMessage -> ErrorMessage -> ErrorMessage
foreign import data TypeString :: Type -> ErrorMessage
class Fail (error :: ErrorMessage)
The
TypeConcatandTypeStringtypes aren't really symbols. We should really build up an expression in some error message kind instead. Perhaps: