Safe Haskell | None |
---|---|
Language | Haskell2010 |
Documentation
type CleanDemand = JointDmd StrDmd UseDmd Source #
mkProdDmd :: [Demand] -> CleanDemand Source #
mkOnceUsedDmd :: CleanDemand -> Demand Source #
mkManyUsedDmd :: CleanDemand -> Demand Source #
toCleanDmd :: Demand -> Type -> (DmdShell, CleanDemand) Source #
catchArgDmd :: Demand Source #
strictenDmd :: Demand -> CleanDemand Source #
bothCleanDmd :: CleanDemand -> CleanDemand -> CleanDemand Source #
dmdTypeDepth :: DmdType -> Arity Source #
bothDmdType :: DmdType -> BothDmdArg -> DmdType Source #
nopDmdType :: DmdType Source #
botDmdType :: DmdType Source #
removeDmdTyArgs :: DmdType -> DmdType Source #
type BothDmdArg = (DmdEnv, Termination ()) Source #
mkBothDmdArg :: DmdEnv -> BothDmdArg Source #
toBothDmdArg :: DmdType -> BothDmdArg Source #
cprProdRes :: [DmdType] -> DmdResult Source #
vanillaCprProdRes :: Arity -> DmdResult Source #
isBottomingSig :: StrictSig -> Bool Source #
pprIfaceStrictSig :: StrictSig -> SDoc Source #
mkStrictSig :: DmdType -> StrictSig Source #
cprProdSig :: Arity -> StrictSig Source #
seqDemandList :: [Demand] -> () Source #
seqDmdType :: DmdType -> () Source #
seqStrictSig :: StrictSig -> () Source #
cleanEvalProdDmd :: Arity -> CleanDemand Source #
isStrictDmd :: Demand -> Bool Source #
deferAfterIO :: DmdType -> DmdType Source #
postProcessUnsat :: DmdShell -> DmdType -> DmdType Source #
postProcessDmdType :: DmdShell -> DmdType -> BothDmdArg Source #
peelCallDmd :: CleanDemand -> (CleanDemand, DmdShell) Source #
mkCallDmd :: CleanDemand -> CleanDemand Source #
dmdTransformSig :: StrictSig -> CleanDemand -> DmdType Source #
dmdTransformDataConSig :: Arity -> StrictSig -> CleanDemand -> DmdType Source #
dmdTransformDictSelSig :: StrictSig -> CleanDemand -> DmdType Source #
argOneShots :: OneShotInfo -> Demand -> [OneShotInfo] Source #
argsOneShots :: StrictSig -> Arity -> [[OneShotInfo]] Source #
isUsedOnce :: Demand -> Bool Source #
zapUsageDemand :: Demand -> Demand Source #