A concrete representation of a (monomorphic) type. TypeRep
supports reasonably efficient equality.
Constructors
TypeRep !Fingerprint TyCon [TypeRep]Instances
Eq TypeRep Ord TypeRep Show TypeRep Typeable TypeRepdata Fingerprint Source
Constructors
Fingerprint !Word64 !Word64Instances
Eq Fingerprint Ord Fingerprint Storable FingerprintAn abstract representation of a type constructor. TyCon
objects can be built using mkTyCon
.
Constructors
TyConFields
Instances
Eq TyCon Ord TyCon Show TyCon Typeable TyConmkTyCon :: Word# -> Word# -> String -> String -> String -> TyConSource
Arguments
:: Stringpackage name
-> Stringmodule name
-> Stringthe name of the type constructor
-> TyConA unique TyCon
object
Builds a TyCon
object representing a type constructor. An implementation of Data.Typeable should ensure that the following holds:
A==A' ^ B==B' ^ C==C' ==> mkTyCon A B C == mkTyCon A' B' C'
mkTyConApp :: TyCon -> [TypeRep] -> TypeRepSource
Applies a type constructor to a sequence of types
mkAppTy :: TypeRep -> TypeRep -> TypeRepSource
Adds a TypeRep argument to a TypeRep.
typeRepTyCon :: TypeRep -> TyConSource
Observe the type constructor of a type representation
typeOfDefault :: forall t a. (Typeable1 t, Typeable a) => t a -> TypeRepSource
For defining a Typeable
instance from any Typeable1
instance.
typeOf1Default :: forall t a b. (Typeable2 t, Typeable a) => t a b -> TypeRepSource
For defining a Typeable1
instance from any Typeable2
instance.
typeOf2Default :: forall t a b c. (Typeable3 t, Typeable a) => t a b c -> TypeRepSource
For defining a Typeable2
instance from any Typeable3
instance.
typeOf3Default :: forall t a b c d. (Typeable4 t, Typeable a) => t a b c d -> TypeRepSource
For defining a Typeable3
instance from any Typeable4
instance.
typeOf4Default :: forall t a b c d e. (Typeable5 t, Typeable a) => t a b c d e -> TypeRepSource
For defining a Typeable4
instance from any Typeable5
instance.
typeOf5Default :: forall t a b c d e f. (Typeable6 t, Typeable a) => t a b c d e f -> TypeRepSource
For defining a Typeable5
instance from any Typeable6
instance.
typeOf6Default :: forall t a b c d e f g. (Typeable7 t, Typeable a) => t a b c d e f g -> TypeRepSource
For defining a Typeable6
instance from any Typeable7
instance.
The class Typeable
allows a concrete representation of a type to be calculated.
Methods
Takes a value of type a
and returns a concrete representation of that type. The value of the argument should be ignored by any instance of Typeable
, so that it is safe to pass undefined
as the argument.
Instances
Typeable Bool Typeable Char Typeable Double Typeable Float Typeable Int Typeable Int8 Typeable Int16 Typeable Int32 Typeable Int64 Typeable Integer Typeable Ordering Typeable RealWorld Typeable Word Typeable Word8 Typeable Word16 Typeable Word32 Typeable Word64 Typeable () Typeable TyCon Typeable TypeRep Typeable ArithException Typeable ErrorCall Typeable SomeException Typeable IOException Typeable CUIntMax Typeable CIntMax Typeable CUIntPtr Typeable CIntPtr Typeable CSUSeconds Typeable CUSeconds Typeable CTime Typeable CClock Typeable CSigAtomic Typeable CWchar Typeable CSize Typeable CPtrdiff Typeable CDouble Typeable CFloat Typeable CULLong Typeable CLLong Typeable CULong Typeable CLong Typeable CUInt Typeable CInt Typeable CUShort Typeable CShort Typeable CUChar Typeable CSChar Typeable CChar Typeable Dynamic Typeable IntPtr Typeable WordPtr Typeable Handle__ Typeable Handle Typeable ExitCode Typeable ArrayException Typeable AsyncException Typeable AssertionFailed Typeable Deadlock Typeable BlockedIndefinitelyOnSTM Typeable BlockedIndefinitelyOnMVar Typeable ThreadId Typeable NestedAtomically Typeable NonTermination Typeable NoMethodError Typeable RecUpdError Typeable RecConError Typeable RecSelError Typeable PatternMatchFail Typeable Fd Typeable CRLim Typeable CTcflag Typeable CSpeed Typeable CCc Typeable CUid Typeable CNlink Typeable CGid Typeable CSsize Typeable CPid Typeable COff Typeable CMode Typeable CIno Typeable CDev Typeable FD Typeable SpecConstrAnnotation Typeable BlockedIndefinitely Typeable BlockedOnDeadMVar Typeable Unique Typeable QSem Typeable QSemN Typeable Timeout Typeable E12 Typeable E9 Typeable E6 Typeable E3 Typeable E2 Typeable E1 Typeable E0 Typeable Version (Typeable1 s, Typeable a) => Typeable (s a)One Typeable instance for all Typeable1 instances
Variant for unary type constructors
Methods
typeOf1 :: t a -> TypeRepSource
Instances
Typeable1 [] Typeable1 Ratio Typeable1 StablePtr Typeable1 IO Typeable1 Ptr Typeable1 FunPtr Typeable1 Maybe Typeable1 MVar Typeable1 IORef Typeable1 ForeignPtr Typeable1 Weak Typeable1 TVar Typeable1 STM Typeable1 Chan Typeable1 SampleVar Typeable1 Complex Typeable1 Fixed Typeable1 StableName (Typeable2 s, Typeable a) => Typeable1 (s a)One Typeable1 instance for all Typeable2 instances
Variant for binary type constructors
Methods
typeOf2 :: t a b -> TypeRepSource
Instances
Typeable2 (->) Typeable2 Either Typeable2 (,) Typeable2 ST Typeable2 Array Typeable2 IOArray Typeable2 STRef (Typeable3 s, Typeable a) => Typeable2 (s a)One Typeable2 instance for all Typeable3 instances
Variant for 3-ary type constructors
Methods
typeOf3 :: t a b c -> TypeRepSource
Instances
Typeable3 (,,) Typeable3 STArray (Typeable4 s, Typeable a) => Typeable3 (s a)One Typeable3 instance for all Typeable4 instances
Variant for 4-ary type constructors
Methods
typeOf4 :: t a b c d -> TypeRepSource
Instances
Typeable4 (,,,) (Typeable5 s, Typeable a) => Typeable4 (s a)One Typeable4 instance for all Typeable5 instances
Variant for 5-ary type constructors
Methods
typeOf5 :: t a b c d e -> TypeRepSource
Instances
Typeable5 (,,,,) (Typeable6 s, Typeable a) => Typeable5 (s a)One Typeable5 instance for all Typeable6 instances
Variant for 6-ary type constructors
Methods
typeOf6 :: t a b c d e f -> TypeRepSource
Instances
Typeable6 (,,,,,) (Typeable7 s, Typeable a) => Typeable6 (s a)One Typeable6 instance for all Typeable7 instances
Variant for 7-ary type constructors
Methods
typeOf7 :: t a b c d e f g -> TypeRepSource
Instances
Typeable7 (,,,,,,)mkFunTy :: TypeRep -> TypeRep -> TypeRepSource
A special case of mkTyConApp
, which applies the function type constructor to a pair of types.
splitTyConApp :: TypeRep -> (TyCon, [TypeRep])Source
Splits a type constructor application
funResultTy :: TypeRep -> TypeRep -> Maybe TypeRepSource
Applies a type to a function type. Returns:
if the first argument represents a function of type Just
ut -> u
and the second argument represents a function of type t
. Otherwise, returns Nothing
.
typeRepArgs :: TypeRep -> [TypeRep]Source
Observe the argument types of a type representation
showsTypeRep :: TypeRep -> ShowSSource
tyConString :: TyCon -> StringSource
Deprecated: renamed to tyConName; tyConModule and tyConPackage are also available.
Observe string encoding of a type representation
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4