GHC.Builtin.Types
This module is about types that can be defined in Haskell, but which must be wired into the compiler nonetheless. C.f module GHC.Builtin.Types.Prim
Helper functions defined here
mkWiredInTyConName :: BuiltInSyntax -> Module -> FastString -> Unique -> TyCon -> Name Source #
mkWiredInIdName :: Module -> FastString -> Unique -> Id -> Name Source #
All wired in things
wiredInTyCons :: [TyCon] Source #
isBuiltInOcc_maybe :: OccName -> Maybe Name Source #
Built-in syntax isn't "in scope" so these OccNames map to wired-in Names with BuiltInSyntax. However, this should only be necessary while resolving names produced by Template Haskell splices since we take care to encode built-in syntax names specially in interface files. See Note [Symbol table representation of names].
Moreover, there is no need to include names of things that the user can't write (e.g. type representation bindings like $tc(,,,)).
Bool
boolTyConName :: Name Source #
trueDataConId :: Id Source #
falseDataConId :: Id Source #
Ordering
ordLTDataConId :: Id Source #
ordEQDataConId :: Id Source #
ordGTDataConId :: Id Source #
Boxing primitive types
Char
charTyConName :: Name Source #
Double
doubleTyCon :: TyCon Source #
Float
floatTyCon :: TyCon Source #
Int
intDataCon :: DataCon Source #
intTyConName :: Name Source #
Word
wordTyConName :: Name Source #
Word8
word8TyCon :: TyCon Source #
List
listTyConName :: Name Source #
nilDataCon :: DataCon Source #
Make a *promoted* list.
NonEmpty
Maybe
maybeTyCon :: TyCon Source #
Tuples
mkTupleTy :: Boxity -> [Type] -> Type Source #
Make a tuple type. The list of types should not include any RuntimeRep specifications. Boxed 1-tuples are flattened. See Note [One-tuples]
mkTupleTy1 :: Boxity -> [Type] -> Type Source #
Make a tuple type. The list of types should not include any RuntimeRep specifications. Boxed 1-tuples are *not* flattened. See Note [One-tuples] and Note [Don't flatten tuples from HsSyn] in GHC.Core.Make
mkBoxedTupleTy :: [Type] -> Type Source #
Build the type of a small tuple that holds the specified type of thing Flattens 1-tuples. See Note [One-tuples].
unitDataConId :: Id Source #
unboxedUnitTy :: Type Source #
unboxedTupleKind :: [Type] -> Kind Source #
Specialization of unboxedTupleSumKind
for tuples
unboxedSumKind :: [Type] -> Kind Source #
Specialization of unboxedTupleSumKind
for sums
filterCTuple :: RdrName -> RdrName Source #
Replaces constraint tuple names with corresponding boxed ones.
Constraint tuples
cTupleTyCon :: Arity -> TyCon Source #
cTupleTyConName :: Arity -> Name Source #
cTupleTyConNames :: [Name] Source #
isCTupleTyConName :: Name -> Bool Source #
cTupleTyConNameArity_maybe :: Name -> Maybe Arity Source #
If the given name is that of a constraint tuple, return its arity.
cTupleDataCon :: Arity -> DataCon Source #
cTupleDataConName :: Arity -> Name Source #
cTupleDataConNames :: [Name] Source #
Any
anyTypeOfKind :: Kind -> Type Source #
Recovery TyCon
makeRecoveryTyCon :: TyCon -> TyCon Source #
Make a fake, recovery TyCon
from an existing one.
Used when recovering from errors in type declarations
Sums
sumDataCon :: ConTag -> Arity -> DataCon Source #
Data constructor for i-th alternative of a n-ary unboxed sum.
Kinds
isLiftedTypeKindTyConName :: Name -> Bool Source #
liftedRepTyCon :: TyCon Source #
type LiftedRep = 'BoxedRep 'Lifted
unliftedRepTyCon :: TyCon Source #
type UnliftedRep = 'BoxedRep 'Unlifted
unliftedTypeKindTyCon :: TyCon Source #
type UnliftedType = TYPE ('BoxedRep 'Unlifted)
Equality predicates
heqTyConName :: Name Source #
heqDataCon :: DataCon Source #
eqTyConName :: Name Source #
RuntimeRep and friends
levityTyCon :: TyCon Source #
vecElemTyCon :: TyCon Source #
runtimeRepTy :: Type Source #
liftedRepTy :: Type Source #
unliftedRepTy :: Type Source #
zeroBitRepTy :: Type Source #
vec2DataConTy :: Type Source #
vec4DataConTy :: Type Source #
vec8DataConTy :: Type Source #
Multiplicity and friends
oneDataCon :: DataCon Source #
oneDataConTy :: Type Source #
manyDataConTy :: Type Source #
multMulTyCon :: TyCon Source #
Bignum
integerTyCon :: TyCon Source #
naturalTyCon :: TyCon Source #