Make Type have terms, i.e. type.
so we could have terms of type Type
.
The Dependent Haskell work will sooner or later force this. I'd hope to it happen sooner.
Some libraries (e.g. singletons
) reflect Type
to TypeRep
, which works to some degree, but TypeRep
cannot represent all the types yet. OTOH, there is a term-level type representation. (And TypeRep a
in Type.Reflection
is kind of a singleton, i.e. it would made sense to call it SType (a :: Type
).