Type.Reflection.Unsafe
The representations of the types TyCon
and TypeRep
, and the function
mkTyCon
which is used by derived instances of Typeable
to construct
TyCon
s.
Be warned, these functions can be used to construct ill-kinded type representations.
Type representations
A concrete representation of a (monomorphic) type.
TypeRep
supports reasonably efficient equality.
Instances
TestEquality (TypeRep :: k -> Type) Source # | |
Defined in Data.Typeable.Internal | |
Show (TypeRep a) Source # | |
Eq (TypeRep a) Source # | Since: base-2.1 |
Ord (TypeRep a) Source # | Since: base-4.4.0.0 |
Defined in Data.Typeable.Internal |
mkTrApp :: forall k1 k2 (a :: k1 -> k2) (b :: k1). TypeRep (a :: k1 -> k2) -> TypeRep (b :: k1) -> TypeRep (a b) Source #
Construct a representation for a type application.
Arguments
:: String | package name |
-> String | module name |
-> String | the name of the type constructor |
-> Int | number of kind variables |
-> KindRep | kind representation |
-> TyCon | A unique |
Exquisitely unsafe.
typeRepFingerprint :: TypeRep a -> Fingerprint Source #
Observe the Fingerprint
of a type representation
Since: base-4.8.0.0
Kind representations
The representation produced by GHC for conjuring up the kind of a
TypeRep
.
Constructors
KindRepTyConApp TyCon [KindRep] | |
KindRepVar !KindBndr | |
KindRepApp KindRep KindRep | |
KindRepFun KindRep KindRep | |
KindRepTYPE !RuntimeRep | |
KindRepTypeLitS TypeLitSort Addr# | |
KindRepTypeLitD TypeLitSort [Char] |
Bundled Patterns
pattern KindRepTypeLit :: TypeLitSort -> String -> KindRep |
data TypeLitSort Source #
Constructors
TypeLitSymbol | |
TypeLitNat | |
TypeLitChar |
Type constructors
mkTrCon :: forall k (a :: k). TyCon -> [SomeTypeRep] -> TypeRep a Source #
Construct a representation for a type constructor applied at a monomorphic kind.
Note that this is unsafe as it allows you to construct ill-kinded types.
tyConKindRep :: TyCon -> KindRep Source #
tyConKindArgs :: TyCon -> Int Source #
tyConFingerprint :: TyCon -> Fingerprint Source #