Safe Haskell | None |
---|---|
Language | GHC2021 |
Synopsis
- mkDictFunId :: Name -> [TyVar] -> ThetaType -> Class -> [Type] -> Id
- mkDictSelId :: Name -> Class -> Id
- mkDictSelRhs :: Class -> Int -> CoreExpr
- mkFCallId :: Unique -> ForeignCall -> Type -> Id
- unwrapNewTypeBody :: TyCon -> [Type] -> CoreExpr -> CoreExpr
- wrapFamInstBody :: TyCon -> [Type] -> CoreExpr -> CoreExpr
- newtype DataConBoxer = DCB ([Type] -> [Var] -> UniqSM ([Var], [CoreBind]))
- vanillaDataConBoxer :: DataConBoxer
- mkDataConRep :: DataConBangOpts -> FamInstEnvs -> Name -> DataCon -> UniqSM (DataConRep, [HsImplBang], [StrictnessMark])
- mkDataConWorkId :: Name -> DataCon -> Id
- data DataConBangOpts
- data BangOpts = BangOpts {}
- unboxedUnitExpr :: CoreExpr
- wiredInIds :: [Id]
- ghcPrimIds :: [Id]
- realWorldPrimId :: Id
- voidPrimId :: Id
- voidArgId :: Id
- nullAddrId :: Id
- seqId :: Id
- lazyId :: Id
- lazyIdKey :: Unique
- coercionTokenId :: Id
- coerceId :: Id
- proxyHashId :: Id
- nospecId :: Id
- nospecIdName :: Name
- noinlineId :: Id
- noinlineIdName :: Name
- noinlineConstraintId :: Id
- noinlineConstraintIdName :: Name
- coerceName :: Name
- leftSectionName :: Name
- rightSectionName :: Name
- pcRepPolyId :: Name -> Type -> (Name -> ConcreteTyVars) -> IdInfo -> Id
- mkRepPolyIdConcreteTyVars :: [((Type, Position 'Neg), TyVar)] -> Name -> ConcreteTyVars
Documentation
newtype DataConBoxer Source #
Data Constructor Boxer
mkDataConRep :: DataConBangOpts -> FamInstEnvs -> Name -> DataCon -> UniqSM (DataConRep, [HsImplBang], [StrictnessMark]) Source #
data DataConBangOpts Source #
FixedBangOpts [HsImplBang] | Used for imported data constructors See Note [Bangs on imported data constructors] |
SrcBangOpts !BangOpts |
BangOpts | |
|
wiredInIds :: [Id] Source #
ghcPrimIds :: [Id] Source #
realWorldPrimId :: Id Source #
voidPrimId :: Id Source #
nullAddrId :: Id Source #
coercionTokenId :: Id Source #
proxyHashId :: Id Source #
nospecIdName :: Name Source #
noinlineId :: Id Source #
coerceName :: Name Source #
pcRepPolyId :: Name -> Type -> (Name -> ConcreteTyVars) -> IdInfo -> Id Source #
mkRepPolyIdConcreteTyVars Source #
:: [((Type, Position 'Neg), TyVar)] | ((ty, pos), tv)
|
-> Name | |
-> ConcreteTyVars |
Directly specify which outer forall'd type variables of a
representation-polymorphic Id
such become concrete metavariables when
instantiated.