GHC.Builtin.Types.Prim
This module defines TyCons that can't be expressed in Haskell. They are all, therefore, wired-in TyCons. C.f module GHC.Builtin.Types
Documentation
mkTemplateKindVar :: Kind -> TyVar Source #
mkTemplateKindVars :: [Kind] -> [TyVar] Source #
mkTemplateTyVars :: [Kind] -> [TyVar] Source #
mkTemplateTyConBinders :: [Kind] -> ([Kind] -> [Kind]) -> [TyConBinder] Source #
mkTemplateKindTyConBinders :: [Kind] -> [TyConBinder] Source #
mkTemplateAnonTyConBinders :: [Kind] -> [TyConBinder] Source #
alphaTyVars :: [TyVar] Source #
alphaTyVar :: TyVar Source #
gammaTyVar :: TyVar Source #
deltaTyVar :: TyVar Source #
alphaTysUnliftedRep :: [Type] Source #
runtimeRep1Ty :: Type Source #
runtimeRep2Ty :: Type Source #
runtimeRep3Ty :: Type Source #
levity1TyVar :: TyVar Source #
levity2TyVar :: TyVar Source #
openAlphaTy :: Type Source #
openBetaTy :: Type Source #
openGammaTy :: Type Source #
levPolyBetaTy :: Type Source #
tYPETyConName :: Name Source #
functionWithMultiplicity :: Type -> Type Source #
The FUN
type constructor.
FUN :: forall (m :: Multiplicity) -> forall {rep1 :: RuntimeRep} {rep2 :: RuntimeRep}. TYPE rep1 -> TYPE rep2 -> *
The runtime representations quantification is left inferred. This
means they cannot be specified with -XTypeApplications
.
This is a deliberate choice to allow future extensions to the function arrow. To allow visible application a type synonym can be defined:
type Arr :: forall (rep1 :: RuntimeRep) (rep2 :: RuntimeRep). TYPE rep1 -> TYPE rep2 -> Type type Arr = FUN 'Many
funTyConName :: Name Source #
unexposedPrimTyCons :: [TyCon] Source #
Primitive TyCon
s that are defined in GHC.Prim but not exposed.
It's important to keep these separate as we don't want users to be able to
write them (see #15209) or see them in GHCi's :browse
output
(see #12023).
exposedPrimTyCons :: [TyCon] Source #
Primitive TyCon
s that are defined in, and exported from, GHC.Prim.
primTyCons :: [TyCon] Source #
charPrimTy :: Type Source #
intPrimTyCon :: TyCon Source #
wordPrimTy :: Type Source #
addrPrimTy :: Type Source #
floatPrimTy :: Type Source #
doublePrimTy :: Type Source #
mkStatePrimTy :: Type -> Type Source #
realWorldTy :: Type Source #
mkArrayPrimTy :: Type -> Type Source #
mkSmallArrayPrimTy :: Type -> Type Source #
mkMutableByteArrayPrimTy :: Type -> Type Source #
mkStablePtrPrimTy :: Type -> Type Source #
mkStableNamePrimTy :: Type -> Type Source #
compactPrimTy :: Type Source #
bcoPrimTyCon :: TyCon Source #
mkWeakPrimTy :: Type -> Type Source #
int8PrimTy :: Type Source #
word8PrimTy :: Type Source #
int16PrimTy :: Type Source #
word16PrimTy :: Type Source #
int32PrimTy :: Type Source #
word32PrimTy :: Type Source #
int64PrimTy :: Type Source #
word64PrimTy :: Type Source #
eqPrimTyCon :: TyCon Source #
equalityTyCon :: Role -> TyCon Source #
Given a Role, what TyCon is the type of equality predicates at that role?
SIMD
int8X16PrimTy :: Type Source #
int16X8PrimTy :: Type Source #
int32X4PrimTy :: Type Source #
int64X2PrimTy :: Type Source #
int8X32PrimTy :: Type Source #
int32X8PrimTy :: Type Source #
int64X4PrimTy :: Type Source #
int8X64PrimTy :: Type Source #
int64X8PrimTy :: Type Source #
floatX4PrimTy :: Type Source #
floatX8PrimTy :: Type Source #