Safe Haskell | None |
---|---|
Language | Haskell2010 |
Demand
Documentation
data UseDmd
type Demand = JointDmd ArgStr ArgUse
type CleanDemand = JointDmd StrDmd UseDmd
getStrDmd :: JointDmd s u -> s
getUseDmd :: JointDmd s u -> u
mkProdDmd :: [Demand] -> CleanDemand
mkOnceUsedDmd :: CleanDemand -> Demand
mkManyUsedDmd :: CleanDemand -> Demand
toCleanDmd :: Demand -> Type -> (DmdShell, CleanDemand)
peelUseCall :: UseDmd -> Maybe (Count, UseDmd)
cleanUseDmd_maybe :: Demand -> Maybe UseDmd
strictenDmd :: Demand -> 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
seqDemandList :: [Demand] -> ()
seqDmdType :: DmdType -> ()
seqStrictSig :: StrictSig -> ()
cleanEvalProdDmd :: Arity -> CleanDemand
isStrictDmd :: Demand -> Bool
splitDmdTy :: DmdType -> (Demand, DmdType)
deferAfterIO :: DmdType -> DmdType
postProcessUnsat :: DmdShell -> DmdType -> DmdType
postProcessDmdType :: DmdShell -> DmdType -> BothDmdArg
splitProdDmd_maybe :: Demand -> Maybe [Demand]
peelCallDmd :: CleanDemand -> (CleanDemand, DmdShell)
mkCallDmd :: CleanDemand -> CleanDemand
dmdTransformSig :: StrictSig -> CleanDemand -> DmdType
dmdTransformDataConSig :: Arity -> StrictSig -> CleanDemand -> DmdType
argOneShots :: OneShotInfo -> Demand -> [OneShotInfo]
argsOneShots :: StrictSig -> Arity -> [[OneShotInfo]]
trimToType :: Demand -> TypeShape -> Demand
isUsedOnce :: Demand -> Bool
killUsageDemand :: DynFlags -> Demand -> Demand
killUsageSig :: DynFlags -> StrictSig -> StrictSig
zapUsageDemand :: Demand -> Demand
strictifyDictDmd :: Type -> Demand -> Demand