base-4.20.0.1: Core data structures and operations
Copyright(c) The University of Glasgow CWI 2001--2015
LicenseBSD-style (see the file libraries/base/LICENSE)
Safe HaskellNone
LanguageHaskell2010

Type.Reflection.Unsafe

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 #

TypeRep is a concrete representation of a (monomorphic) type. TypeRep supports reasonably efficient equality. See Note [Grand plan for Typeable] in GHC.Tc.Instance.Typeable

Instances

Instances details
TestEquality (TypeRep :: k -> Type) 
Instance details

Defined in GHC.Internal.Data.Typeable.Internal

Methods

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

Show (TypeRep a) 
Instance details

Defined in GHC.Internal.Data.Typeable.Internal

Eq (TypeRep a)

Since: base-2.1

Instance details

Defined in GHC.Internal.Data.Typeable.Internal

Methods

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

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

Ord (TypeRep a)

Since: base-4.4.0.0

Instance details

Defined in GHC.Internal.Data.Typeable.Internal

mkTrApp :: forall k1 k2 (a :: k1 -> k2) (b :: k1). TypeRep a -> TypeRep b -> TypeRep (a b) Source #

Construct a representation for a type application.

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 :: forall {k} (a :: k). TypeRep a -> Fingerprint Source #

Observe the Fingerprint of a type representation

Since: base-4.8.0.0

Kind representations

data KindRep Source #

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

Bundled Patterns

pattern KindRepTypeLit :: TypeLitSort -> String -> KindRep 

Instances

Instances details
Show KindRep 
Instance details

Defined in GHC.Internal.Show

data TypeLitSort Source #

Instances

Instances details
Show TypeLitSort

Since: base-4.11.0.0

Instance details

Defined in GHC.Internal.Show

Type constructors

data TyCon Source #

Instances

Instances details
Show TyCon

Since: base-2.1

Instance details

Defined in GHC.Internal.Show

Eq TyCon 
Instance details

Defined in GHC.Classes

Methods

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

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

Ord TyCon 
Instance details

Defined in GHC.Classes

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.