base-4.10.0.0: Basic libraries

Copyright(c) The University of Glasgow CWI 2001--2015
LicenseBSD-style (see the file libraries/base/LICENSE)
Safe HaskellSafe
LanguageHaskell2010

Type.Reflection.Unsafe

Contents

Description

The representations of the types TyCon and TypeRep, and the function mkTyCon which is used by derived instances of Typeable to construct TyCons.

Be warned, these functions can be used to construct ill-kinded type representations.

Synopsis

Type representations

data TypeRep (a :: k) Source #

A concrete representation of a (monomorphic) type. TypeRep supports reasonably efficient equality.

Instances

TestEquality k (TypeRep k) Source # 

Methods

testEquality :: f a -> f b -> Maybe ((TypeRep k :~: a) b) Source #

Eq (TypeRep k a) Source #

Since: 2.1

Methods

(==) :: TypeRep k a -> TypeRep k a -> Bool #

(/=) :: TypeRep k a -> TypeRep k a -> Bool #

Ord (TypeRep k a) Source #

Since: 4.4.0.0

Methods

compare :: TypeRep k a -> TypeRep k a -> Ordering #

(<) :: TypeRep k a -> TypeRep k a -> Bool #

(<=) :: TypeRep k a -> TypeRep k a -> Bool #

(>) :: TypeRep k a -> TypeRep k a -> Bool #

(>=) :: TypeRep k a -> TypeRep k a -> Bool #

max :: TypeRep k a -> TypeRep k a -> TypeRep k a #

min :: TypeRep k a -> TypeRep k a -> TypeRep k a #

Show (TypeRep k a) Source # 

Methods

showsPrec :: Int -> TypeRep k a -> ShowS Source #

show :: TypeRep k a -> String Source #

showList :: [TypeRep k a] -> ShowS Source #

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.

Note that this is known-key to the compiler, which uses it in desugar Typeable evidence.

mkTyCon Source #

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 TyCon object Used when the strings are dynamically allocated, eg from binary deserialisation

Exquisitely unsafe.

typeRepFingerprint :: TypeRep a -> Fingerprint Source #

Observe the Fingerprint of a type representation

Since: 4.8.0.0

Kind representations

data KindRep :: * #

The representation produced by GHC for conjuring up the kind of a TypeRep.

data TypeLitSort :: * #

Constructors

TypeLitSymbol 
TypeLitNat 

Type constructors

data TyCon :: * #

Instances

Eq TyCon 

Methods

(==) :: TyCon -> TyCon -> Bool #

(/=) :: TyCon -> TyCon -> Bool #

Ord TyCon 

Methods

compare :: TyCon -> TyCon -> Ordering #

(<) :: TyCon -> TyCon -> Bool #

(<=) :: TyCon -> TyCon -> Bool #

(>) :: TyCon -> TyCon -> Bool #

(>=) :: TyCon -> TyCon -> Bool #

max :: TyCon -> TyCon -> TyCon #

min :: TyCon -> TyCon -> TyCon #

Show TyCon Source #

Since: 2.1

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.