ghc-7.4.1: The GHC API

Safe Haskell | Safe-Infered

TysWiredIn

Contents

- All wired in things
- Bool
- Ordering
- Char
- Double
- Float
- Int
- Word
- List
- Tuples
- Unit
- Parallel arrays
- Equality predicates
- Implicit parameter predicates

Description

This module is about types that can be defined in Haskell, but which must be wired into the compiler nonetheless. C.f module TysPrim

Synopsis

- wiredInTyCons :: [TyCon]
- boolTy :: Type
- boolTyCon :: TyCon
- boolTyCon_RDR, eqTyCon_RDR, parrTyCon_RDR, consDataCon_RDR, listTyCon_RDR, intDataCon_RDR, charTyCon_RDR, intTyCon_RDR, true_RDR, false_RDR :: RdrName
- boolTyConName :: Name
- falseDataCon, trueDataCon :: DataCon
- falseDataConId, trueDataConId :: Id
- ltDataCon, gtDataCon, eqDataCon :: DataCon
- ltDataConId, gtDataConId, eqDataConId :: Id
- charTyCon :: TyCon
- charDataCon :: DataCon
- charTy :: Type
- stringTy :: Type
- charTyConName, intTyConName :: Name
- integerGmpSDataCon :: DataCon
- doubleTyCon :: TyCon
- doubleDataCon :: DataCon
- doubleTy :: Type
- floatTyConName, doubleTyConName :: Name
- floatTyCon :: TyCon
- floatDataCon :: DataCon
- floatTy :: Type
- intTyCon :: TyCon
- intDataCon :: DataCon
- intTy :: Type
- wordTyCon :: TyCon
- wordDataCon :: DataCon
- wordTyConName :: Name
- wordTy :: Type
- listTyCon :: TyCon
- nilDataCon :: DataCon
- consDataCon :: DataCon
- listTyConName :: Name
- mkListTy :: Type -> Type
- mkTupleTy :: TupleSort -> [Type] -> Type
- mkBoxedTupleTy :: [Type] -> Type
- tupleTyCon :: TupleSort -> Arity -> TyCon
- tupleCon :: TupleSort -> Arity -> DataCon
- unitTyCon :: TyCon
- unitDataCon :: DataCon
- unitDataConId :: Id
- pairTyCon :: TyCon
- unboxedSingletonTyCon :: TyCon
- unboxedSingletonDataCon :: DataCon
- unboxedPairTyCon :: TyCon
- unboxedPairDataCon :: DataCon
- unitTy :: Type
- mkPArrTy :: Type -> Type
- parrTyCon :: TyCon
- parrFakeCon :: Arity -> DataCon
- isPArrTyCon :: TyCon -> Bool
- isPArrFakeCon :: DataCon -> Bool
- parrTyConName :: Name
- eqTyCon :: TyCon
- eqTyConName :: Name
- eqBoxDataCon :: DataCon
- mkIPName :: FastString -> Unique -> Unique -> Unique -> Unique -> IPName Name

# All wired in things

wiredInTyCons :: [TyCon]

# Bool

boolTy :: Type

boolTyCon :: TyCon

boolTyCon_RDR, eqTyCon_RDR, parrTyCon_RDR, consDataCon_RDR, listTyCon_RDR, intDataCon_RDR, charTyCon_RDR, intTyCon_RDR, true_RDR, false_RDR :: RdrName

boolTyConName :: Name

falseDataCon, trueDataCon :: DataCon

falseDataConId, trueDataConId :: Id

# Ordering

ltDataCon, gtDataCon, eqDataCon :: DataCon

ltDataConId, gtDataConId, eqDataConId :: Id

# Char

charTyCon :: TyCon

charDataCon :: DataCon

charTy :: Type

stringTy :: Type

charTyConName, intTyConName :: Name

integerGmpSDataCon :: DataCon

# Double

doubleTyCon :: TyCon

doubleDataCon :: DataCon

doubleTy :: Type

floatTyConName, doubleTyConName :: Name

# Float

floatTyCon :: TyCon

floatDataCon :: DataCon

floatTy :: Type

# Int

intTyCon :: TyCon

intDataCon :: DataCon

intTy :: Type

# Word

wordTyCon :: TyCon

wordDataCon :: DataCon

wordTyConName :: Name

wordTy :: Type

# List

listTyCon :: TyCon

nilDataCon :: DataCon

consDataCon :: DataCon

listTyConName :: Name

mkListTy :: Type -> Type

# Tuples

mkTupleTy :: TupleSort -> [Type] -> Type

mkBoxedTupleTy :: [Type] -> Type

Build the type of a small tuple that holds the specified type of thing

tupleTyCon :: TupleSort -> Arity -> TyCon

tupleCon :: TupleSort -> Arity -> DataCon

unitTyCon :: TyCon

unitDataCon :: DataCon

unitDataConId :: Id

pairTyCon :: TyCon

unboxedSingletonTyCon :: TyCon

unboxedSingletonDataCon :: DataCon

unboxedPairTyCon :: TyCon

unboxedPairDataCon :: DataCon

# Unit

unitTy :: Type

# Parallel arrays

mkPArrTy :: Type -> Type

Construct a type representing the application of the parallel array constructor

parrTyCon :: TyCon

Represents the type constructor of parallel arrays

- This must match the definition in `PrelPArr`

NB: Although the constructor is given here, it will not be accessible in user code as it is not in the environment of any compiled module except `PrelPArr`.

parrFakeCon :: Arity -> DataCon

Fake array constructors

- These constructors are never really used to represent array values; however, they are very convenient during desugaring (and, in particular, in the pattern matching compiler) to treat array pattern just like yet another constructor pattern

isPArrTyCon :: TyCon -> Bool

Check whether a type constructor is the constructor for parallel arrays

isPArrFakeCon :: DataCon -> Bool

Checks whether a data constructor is a fake constructor for parallel arrays

parrTyConName :: Name

# Equality predicates

eqTyCon :: TyCon

eqTyConName :: Name

eqBoxDataCon :: DataCon

# Implicit parameter predicates

mkIPName :: FastString -> Unique -> Unique -> Unique -> Unique -> IPName Name