Safe Haskell | None |
---|---|
Language | Haskell2010 |
Demand
Documentation
data UseDmd
type Demand = JointDmd
data CleanDemand
Instances
mkProdDmd :: [JointDmd] -> CleanDemand
mkOnceUsedDmd :: CleanDemand -> JointDmd
mkManyUsedDmd :: CleanDemand -> JointDmd
oneifyDmd :: JointDmd -> JointDmd
getUsage :: CleanDemand -> UseDmd
toCleanDmd :: Demand -> Type -> (CleanDemand, DeferAndUseM)
absDmd :: JointDmd
topDmd :: JointDmd
botDmd :: JointDmd
seqDmd :: JointDmd
lubDmd :: JointDmd -> JointDmd -> JointDmd
bothDmd :: JointDmd -> JointDmd -> JointDmd
peelUseCall :: UseDmd -> Maybe (Count, UseDmd)
cleanUseDmd_maybe :: JointDmd -> Maybe UseDmd
strictenDmd :: JointDmd -> CleanDemand
bothCleanDmd :: CleanDemand -> CleanDemand -> CleanDemand
addCaseBndrDmd :: Demand -> [Demand] -> [Demand]
data DmdType
dmdTypeDepth :: DmdType -> Arity
lubDmdType :: DmdType -> DmdType -> DmdType
bothDmdType :: DmdType -> BothDmdArg -> DmdType
removeDmdTyArgs :: DmdType -> DmdType
type BothDmdArg = (DmdEnv, Termination ())
mkBothDmdArg :: DmdEnv -> BothDmdArg
toBothDmdArg :: DmdType -> BothDmdArg
findIdDemand :: DmdType -> Var -> Demand
data CPRResult
cprProdRes :: [DmdType] -> DmdResult
vanillaCprProdRes :: Arity -> DmdResult
appIsBottom :: StrictSig -> Int -> Bool
isBottomingSig :: StrictSig -> Bool
pprIfaceStrictSig :: StrictSig -> SDoc
trimCPRInfo :: Bool -> Bool -> DmdResult -> DmdResult
returnsCPR_maybe :: DmdResult -> Maybe ConTag
newtype StrictSig
mkStrictSig :: DmdType -> StrictSig
mkClosedStrictSig :: [Demand] -> DmdResult -> StrictSig
cprProdSig :: Arity -> StrictSig
splitStrictSig :: StrictSig -> ([Demand], DmdResult)
increaseStrictSigArity :: Int -> StrictSig -> StrictSig
seqDemand :: JointDmd -> ()
seqDemandList :: [JointDmd] -> ()
seqDmdType :: DmdType -> ()
seqStrictSig :: StrictSig -> ()
evalDmd :: JointDmd
cleanEvalProdDmd :: Arity -> CleanDemand
isStrictDmd :: Demand -> Bool
splitDmdTy :: DmdType -> (Demand, DmdType)
deferAfterIO :: DmdType -> DmdType
postProcessUnsat :: DeferAndUse -> DmdType -> DmdType
postProcessDmdTypeM :: DeferAndUseM -> DmdType -> BothDmdArg
splitProdDmd_maybe :: JointDmd -> Maybe [JointDmd]
peelCallDmd :: CleanDemand -> (CleanDemand, DeferAndUse)
mkCallDmd :: CleanDemand -> CleanDemand
dmdTransformSig :: StrictSig -> CleanDemand -> DmdType
dmdTransformDataConSig :: Arity -> StrictSig -> CleanDemand -> DmdType
argOneShots :: OneShotInfo -> JointDmd -> [OneShotInfo]
argsOneShots :: StrictSig -> Arity -> [[OneShotInfo]]
trimToType :: JointDmd -> TypeShape -> JointDmd
isSingleUsed :: JointDmd -> Bool
killUsageDemand :: DynFlags -> Demand -> Demand
killUsageSig :: DynFlags -> StrictSig -> StrictSig
zapUsageDemand :: Demand -> Demand
strictifyDictDmd :: Type -> Demand -> Demand