This module is about types that can be defined in Haskell, but which must be wired into the compiler nonetheless. C.f module TysPrim
- wiredInTyCons :: [TyCon]
- boolTy :: Type
- boolTyCon :: TyCon
- boolTyCon_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
- charTyCon :: TyCon
- charDataCon :: DataCon
- charTy :: Type
- stringTy :: Type
- charTyConName, intTyConName :: Name
- 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 :: Boxity -> [Type] -> Type
- mkBoxedTupleTy :: [Type] -> Type
- tupleTyCon :: Boxity -> Arity -> TyCon
- tupleCon :: Boxity -> 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
All wired in things
wiredInTyCons :: [TyCon]Source
Bool
boolTyCon_RDR, parrTyCon_RDR, consDataCon_RDR, listTyCon_RDR, intDataCon_RDR, charTyCon_RDR, intTyCon_RDR, true_RDR, false_RDR :: RdrNameSource
Char
Double
Float
Int
Word
List
Tuples
mkBoxedTupleTy :: [Type] -> TypeSource
Build the type of a small tuple that holds the specified type of thing
tupleTyCon :: Boxity -> Arity -> TyConSource
Unit
Parallel arrays
mkPArrTy :: Type -> TypeSource
Construct a type representing the application of the parallel array constructor
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 -> DataConSource
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 -> BoolSource
Check whether a type constructor is the constructor for parallel arrays
isPArrFakeCon :: DataCon -> BoolSource
Checks whether a data constructor is a fake constructor for parallel arrays