TysPrim

ghc-8.10.5: The GHC API

Safe Haskell | None
Language | Haskell2010

TysPrim

Contents

- SIMD

Description

This module defines TyCons that can't be expressed in Haskell. They are all, therefore, wired-in TyCons. C.f module TysWiredIn

Synopsis

- mkPrimTyConName :: FastString -> Unique -> TyCon -> Name
- mkTemplateKindVars :: [Kind] -> [TyVar]
- mkTemplateTyVars :: [Kind] -> [TyVar]
- mkTemplateTyVarsFrom :: Int -> [Kind] -> [TyVar]
- mkTemplateKiTyVars :: [Kind] -> ([Kind] -> [Kind]) -> [TyVar]
- mkTemplateKiTyVar :: Kind -> (Kind -> [Kind]) -> [TyVar]
- mkTemplateTyConBinders :: [Kind] -> ([Kind] -> [Kind]) -> [TyConBinder]
- mkTemplateKindTyConBinders :: [Kind] -> [TyConBinder]
- mkTemplateAnonTyConBinders :: [Kind] -> [TyConBinder]
- alphaTyVars :: [TyVar]
- alphaTyVar :: TyVar
- betaTyVar :: TyVar
- gammaTyVar :: TyVar
- deltaTyVar :: TyVar
- alphaTys :: [Type]
- alphaTy :: Type
- betaTy :: Type
- gammaTy :: Type
- deltaTy :: Type
- alphaTyVarsUnliftedRep :: [TyVar]
- alphaTyVarUnliftedRep :: TyVar
- alphaTysUnliftedRep :: [Type]
- alphaTyUnliftedRep :: Type
- runtimeRep1TyVar :: TyVar
- runtimeRep2TyVar :: TyVar
- runtimeRep1Ty :: Type
- runtimeRep2Ty :: Type
- openAlphaTy :: Type
- openBetaTy :: Type
- openAlphaTyVar :: TyVar
- openBetaTyVar :: TyVar
- tYPETyCon :: TyCon
- tYPETyConName :: Name
- tYPE :: Type -> Type
- primRepToRuntimeRep :: PrimRep -> Type
- funTyCon :: TyCon
- funTyConName :: Name
- unexposedPrimTyCons :: [TyCon]
- exposedPrimTyCons :: [TyCon]
- primTyCons :: [TyCon]
- charPrimTyCon :: TyCon
- charPrimTy :: Type
- charPrimTyConName :: Name
- intPrimTyCon :: TyCon
- intPrimTy :: Type
- intPrimTyConName :: Name
- wordPrimTyCon :: TyCon
- wordPrimTy :: Type
- wordPrimTyConName :: Name
- addrPrimTyCon :: TyCon
- addrPrimTy :: Type
- addrPrimTyConName :: Name
- floatPrimTyCon :: TyCon
- floatPrimTy :: Type
- floatPrimTyConName :: Name
- doublePrimTyCon :: TyCon
- doublePrimTy :: Type
- doublePrimTyConName :: Name
- voidPrimTyCon :: TyCon
- voidPrimTy :: Type
- statePrimTyCon :: TyCon
- mkStatePrimTy :: Type -> Type
- realWorldTyCon :: TyCon
- realWorldTy :: Type
- realWorldStatePrimTy :: Type
- proxyPrimTyCon :: TyCon
- mkProxyPrimTy :: Type -> Type -> Type
- arrayPrimTyCon :: TyCon
- mkArrayPrimTy :: Type -> Type
- byteArrayPrimTyCon :: TyCon
- byteArrayPrimTy :: Type
- arrayArrayPrimTyCon :: TyCon
- mkArrayArrayPrimTy :: Type
- smallArrayPrimTyCon :: TyCon
- mkSmallArrayPrimTy :: Type -> Type
- mutableArrayPrimTyCon :: TyCon
- mkMutableArrayPrimTy :: Type -> Type -> Type
- mutableByteArrayPrimTyCon :: TyCon
- mkMutableByteArrayPrimTy :: Type -> Type
- mutableArrayArrayPrimTyCon :: TyCon
- mkMutableArrayArrayPrimTy :: Type -> Type
- smallMutableArrayPrimTyCon :: TyCon
- mkSmallMutableArrayPrimTy :: Type -> Type -> Type
- mutVarPrimTyCon :: TyCon
- mkMutVarPrimTy :: Type -> Type -> Type
- mVarPrimTyCon :: TyCon
- mkMVarPrimTy :: Type -> Type -> Type
- tVarPrimTyCon :: TyCon
- mkTVarPrimTy :: Type -> Type -> Type
- stablePtrPrimTyCon :: TyCon
- mkStablePtrPrimTy :: Type -> Type
- stableNamePrimTyCon :: TyCon
- mkStableNamePrimTy :: Type -> Type
- compactPrimTyCon :: TyCon
- compactPrimTy :: Type
- bcoPrimTyCon :: TyCon
- bcoPrimTy :: Type
- weakPrimTyCon :: TyCon
- mkWeakPrimTy :: Type -> Type
- threadIdPrimTyCon :: TyCon
- threadIdPrimTy :: Type
- int8PrimTyCon :: TyCon
- int8PrimTy :: Type
- int8PrimTyConName :: Name
- word8PrimTyCon :: TyCon
- word8PrimTy :: Type
- word8PrimTyConName :: Name
- int16PrimTyCon :: TyCon
- int16PrimTy :: Type
- int16PrimTyConName :: Name
- word16PrimTyCon :: TyCon
- word16PrimTy :: Type
- word16PrimTyConName :: Name
- int32PrimTyCon :: TyCon
- int32PrimTy :: Type
- int32PrimTyConName :: Name
- word32PrimTyCon :: TyCon
- word32PrimTy :: Type
- word32PrimTyConName :: Name
- int64PrimTyCon :: TyCon
- int64PrimTy :: Type
- int64PrimTyConName :: Name
- word64PrimTyCon :: TyCon
- word64PrimTy :: Type
- word64PrimTyConName :: Name
- eqPrimTyCon :: TyCon
- eqReprPrimTyCon :: TyCon
- eqPhantPrimTyCon :: TyCon
- equalityTyCon :: Role -> TyCon
- int8X16PrimTy :: Type
- int8X16PrimTyCon :: TyCon
- int16X8PrimTy :: Type
- int16X8PrimTyCon :: TyCon
- int32X4PrimTy :: Type
- int32X4PrimTyCon :: TyCon
- int64X2PrimTy :: Type
- int64X2PrimTyCon :: TyCon
- int8X32PrimTy :: Type
- int8X32PrimTyCon :: TyCon
- int16X16PrimTy :: Type
- int16X16PrimTyCon :: TyCon
- int32X8PrimTy :: Type
- int32X8PrimTyCon :: TyCon
- int64X4PrimTy :: Type
- int64X4PrimTyCon :: TyCon
- int8X64PrimTy :: Type
- int8X64PrimTyCon :: TyCon
- int16X32PrimTy :: Type
- int16X32PrimTyCon :: TyCon
- int32X16PrimTy :: Type
- int32X16PrimTyCon :: TyCon
- int64X8PrimTy :: Type
- int64X8PrimTyCon :: TyCon
- word8X16PrimTy :: Type
- word8X16PrimTyCon :: TyCon
- word16X8PrimTy :: Type
- word16X8PrimTyCon :: TyCon
- word32X4PrimTy :: Type
- word32X4PrimTyCon :: TyCon
- word64X2PrimTy :: Type
- word64X2PrimTyCon :: TyCon
- word8X32PrimTy :: Type
- word8X32PrimTyCon :: TyCon
- word16X16PrimTy :: Type
- word16X16PrimTyCon :: TyCon
- word32X8PrimTy :: Type
- word32X8PrimTyCon :: TyCon
- word64X4PrimTy :: Type
- word64X4PrimTyCon :: TyCon
- word8X64PrimTy :: Type
- word8X64PrimTyCon :: TyCon
- word16X32PrimTy :: Type
- word16X32PrimTyCon :: TyCon
- word32X16PrimTy :: Type
- word32X16PrimTyCon :: TyCon
- word64X8PrimTy :: Type
- word64X8PrimTyCon :: TyCon
- floatX4PrimTy :: Type
- floatX4PrimTyCon :: TyCon
- doubleX2PrimTy :: Type
- doubleX2PrimTyCon :: TyCon
- floatX8PrimTy :: Type
- floatX8PrimTyCon :: TyCon
- doubleX4PrimTy :: Type
- doubleX4PrimTyCon :: TyCon
- floatX16PrimTy :: Type
- floatX16PrimTyCon :: TyCon
- doubleX8PrimTy :: Type
- doubleX8PrimTyCon :: TyCon

# Documentation

mkPrimTyConName :: FastString -> Unique -> TyCon -> Name Source #

mkTemplateKindVars :: [Kind] -> [TyVar] Source #

mkTemplateTyVars :: [Kind] -> [TyVar] Source #

mkTemplateTyVarsFrom :: Int -> [Kind] -> [TyVar] Source #

mkTemplateKiTyVars :: [Kind] -> ([Kind] -> [Kind]) -> [TyVar] Source #

mkTemplateKiTyVar :: Kind -> (Kind -> [Kind]) -> [TyVar] Source #

mkTemplateTyConBinders :: [Kind] -> ([Kind] -> [Kind]) -> [TyConBinder] Source #

mkTemplateKindTyConBinders :: [Kind] -> [TyConBinder] Source #

mkTemplateAnonTyConBinders :: [Kind] -> [TyConBinder] Source #

alphaTyVars :: [TyVar] Source #

alphaTyVar :: TyVar Source #

betaTyVar :: TyVar Source #

gammaTyVar :: TyVar Source #

deltaTyVar :: TyVar Source #

alphaTys :: [Type] Source #

alphaTy :: Type Source #

betaTy :: Type Source #

gammaTy :: Type Source #

deltaTy :: Type Source #

alphaTyVarsUnliftedRep :: [TyVar] Source #

alphaTyVarUnliftedRep :: TyVar Source #

alphaTysUnliftedRep :: [Type] Source #

alphaTyUnliftedRep :: Type Source #

runtimeRep1TyVar :: TyVar Source #

runtimeRep2TyVar :: TyVar Source #

runtimeRep1Ty :: Type Source #

runtimeRep2Ty :: Type Source #

openAlphaTy :: Type Source #

openBetaTy :: Type Source #

openAlphaTyVar :: TyVar Source #

openBetaTyVar :: TyVar Source #

tYPETyCon :: TyCon Source #

tYPETyConName :: Name Source #

tYPE :: Type -> Type Source #

Given a RuntimeRep, applies TYPE to it. see Note [TYPE and RuntimeRep]

primRepToRuntimeRep :: PrimRep -> Type Source #

Convert a `PrimRep` to a `Type` of kind RuntimeRep Defined here to avoid (more) module loops

funTyCon :: TyCon Source #

The `(->)` type constructor.

    (->) :: forall (rep1 :: RuntimeRep) (rep2 :: RuntimeRep).
            TYPE rep1 -> TYPE rep2 -> *

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 #

charPrimTyCon :: TyCon Source #

charPrimTy :: Type Source #

charPrimTyConName :: Name Source #

intPrimTyCon :: TyCon Source #

intPrimTy :: Type Source #

intPrimTyConName :: Name Source #

wordPrimTyCon :: TyCon Source #

wordPrimTy :: Type Source #

wordPrimTyConName :: Name Source #

addrPrimTyCon :: TyCon Source #

addrPrimTy :: Type Source #

addrPrimTyConName :: Name Source #

floatPrimTyCon :: TyCon Source #

floatPrimTy :: Type Source #

floatPrimTyConName :: Name Source #

doublePrimTyCon :: TyCon Source #

doublePrimTy :: Type Source #

doublePrimTyConName :: Name Source #

voidPrimTyCon :: TyCon Source #

voidPrimTy :: Type Source #

statePrimTyCon :: TyCon Source #

mkStatePrimTy :: Type -> Type Source #

realWorldTyCon :: TyCon Source #

realWorldTy :: Type Source #

realWorldStatePrimTy :: Type Source #

proxyPrimTyCon :: TyCon Source #

mkProxyPrimTy :: Type -> Type -> Type Source #

arrayPrimTyCon :: TyCon Source #

mkArrayPrimTy :: Type -> Type Source #

byteArrayPrimTyCon :: TyCon Source #

byteArrayPrimTy :: Type Source #

arrayArrayPrimTyCon :: TyCon Source #

mkArrayArrayPrimTy :: Type Source #

smallArrayPrimTyCon :: TyCon Source #

mkSmallArrayPrimTy :: Type -> Type Source #

mutableArrayPrimTyCon :: TyCon Source #

mkMutableArrayPrimTy :: Type -> Type -> Type Source #

mutableByteArrayPrimTyCon :: TyCon Source #

mkMutableByteArrayPrimTy :: Type -> Type Source #

mutableArrayArrayPrimTyCon :: TyCon Source #

mkMutableArrayArrayPrimTy :: Type -> Type Source #

smallMutableArrayPrimTyCon :: TyCon Source #

mkSmallMutableArrayPrimTy :: Type -> Type -> Type Source #

mutVarPrimTyCon :: TyCon Source #

mkMutVarPrimTy :: Type -> Type -> Type Source #

mVarPrimTyCon :: TyCon Source #

mkMVarPrimTy :: Type -> Type -> Type Source #

tVarPrimTyCon :: TyCon Source #

mkTVarPrimTy :: Type -> Type -> Type Source #

stablePtrPrimTyCon :: TyCon Source #

mkStablePtrPrimTy :: Type -> Type Source #

stableNamePrimTyCon :: TyCon Source #

mkStableNamePrimTy :: Type -> Type Source #

compactPrimTyCon :: TyCon Source #

compactPrimTy :: Type Source #

bcoPrimTyCon :: TyCon Source #

bcoPrimTy :: Type Source #

weakPrimTyCon :: TyCon Source #

mkWeakPrimTy :: Type -> Type Source #

threadIdPrimTyCon :: TyCon Source #

threadIdPrimTy :: Type Source #

int8PrimTyCon :: TyCon Source #

int8PrimTy :: Type Source #

int8PrimTyConName :: Name Source #

word8PrimTyCon :: TyCon Source #

word8PrimTy :: Type Source #

word8PrimTyConName :: Name Source #

int16PrimTyCon :: TyCon Source #

int16PrimTy :: Type Source #

int16PrimTyConName :: Name Source #

word16PrimTyCon :: TyCon Source #

word16PrimTy :: Type Source #

word16PrimTyConName :: Name Source #

int32PrimTyCon :: TyCon Source #

int32PrimTy :: Type Source #

int32PrimTyConName :: Name Source #

word32PrimTyCon :: TyCon Source #

word32PrimTy :: Type Source #

word32PrimTyConName :: Name Source #

int64PrimTyCon :: TyCon Source #

int64PrimTy :: Type Source #

int64PrimTyConName :: Name Source #

word64PrimTyCon :: TyCon Source #

word64PrimTy :: Type Source #

word64PrimTyConName :: Name Source #

eqPrimTyCon :: TyCon Source #

eqReprPrimTyCon :: TyCon Source #

eqPhantPrimTyCon :: TyCon Source #

equalityTyCon :: Role -> TyCon Source #

Given a Role, what TyCon is the type of equality predicates at that role?

# SIMD

int8X16PrimTy :: Type Source #

int8X16PrimTyCon :: TyCon Source #

int16X8PrimTy :: Type Source #

int16X8PrimTyCon :: TyCon Source #

int32X4PrimTy :: Type Source #

int32X4PrimTyCon :: TyCon Source #

int64X2PrimTy :: Type Source #

int64X2PrimTyCon :: TyCon Source #

int8X32PrimTy :: Type Source #

int8X32PrimTyCon :: TyCon Source #

int16X16PrimTy :: Type Source #

int16X16PrimTyCon :: TyCon Source #

int32X8PrimTy :: Type Source #

int32X8PrimTyCon :: TyCon Source #

int64X4PrimTy :: Type Source #

int64X4PrimTyCon :: TyCon Source #

int8X64PrimTy :: Type Source #

int8X64PrimTyCon :: TyCon Source #

int16X32PrimTy :: Type Source #

int16X32PrimTyCon :: TyCon Source #

int32X16PrimTy :: Type Source #

int32X16PrimTyCon :: TyCon Source #

int64X8PrimTy :: Type Source #

int64X8PrimTyCon :: TyCon Source #

word8X16PrimTy :: Type Source #

word8X16PrimTyCon :: TyCon Source #

word16X8PrimTy :: Type Source #

word16X8PrimTyCon :: TyCon Source #

word32X4PrimTy :: Type Source #

word32X4PrimTyCon :: TyCon Source #

word64X2PrimTy :: Type Source #

word64X2PrimTyCon :: TyCon Source #

word8X32PrimTy :: Type Source #

word8X32PrimTyCon :: TyCon Source #

word16X16PrimTy :: Type Source #

word16X16PrimTyCon :: TyCon Source #

word32X8PrimTy :: Type Source #

word32X8PrimTyCon :: TyCon Source #

word64X4PrimTy :: Type Source #

word64X4PrimTyCon :: TyCon Source #

word8X64PrimTy :: Type Source #

word8X64PrimTyCon :: TyCon Source #

word16X32PrimTy :: Type Source #

word16X32PrimTyCon :: TyCon Source #

word32X16PrimTy :: Type Source #

word32X16PrimTyCon :: TyCon Source #

word64X8PrimTy :: Type Source #

word64X8PrimTyCon :: TyCon Source #

floatX4PrimTy :: Type Source #

floatX4PrimTyCon :: TyCon Source #

doubleX2PrimTy :: Type Source #

doubleX2PrimTyCon :: TyCon Source #

floatX8PrimTy :: Type Source #

floatX8PrimTyCon :: TyCon Source #

doubleX4PrimTy :: Type Source #

doubleX4PrimTyCon :: TyCon Source #

floatX16PrimTy :: Type Source #

floatX16PrimTyCon :: TyCon Source #

doubleX8PrimTy :: Type Source #

doubleX8PrimTyCon :: TyCon Source #