W3cubDocs

/Haskell 8

Type.Reflection.Unsafe

Copyright (c) The University of Glasgow CWI 2001--2015
License BSD-style (see the file libraries/base/LICENSE)
Safe Haskell Safe
Language Haskell2010

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.

Type representations

data TypeRep (a :: k) Source

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

Instances

TestEquality k (TypeRep k)

Methods

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

Eq (TypeRep k a)

Since: 2.1

Methods

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

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

Ord (TypeRep k a)

Since: 4.4.0.0

Methods

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

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

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

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

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

max :: TypeRep k a -> TypeRep k a -> TypeRep k a Source

min :: TypeRep k a -> TypeRep k a -> TypeRep k a Source

Show (TypeRep k a)

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

someTypeRepFingerprint :: SomeTypeRep -> Fingerprint Source

Kind representations

data KindRep :: * Source

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

data TypeLitSort :: * Source

Constructors

TypeLitSymbol
TypeLitNat

Type constructors

data TyCon :: * Source

Instances

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

© The University of Glasgow and others
Licensed under a BSD-style license (see top of the page).
https://downloads.haskell.org/~ghc/8.2.1/docs/html/libraries/base-4.10.0.0/Type-Reflection-Unsafe.html