ghc-7.6.3: The GHC API

Safe Haskell | None

Demand

# Documentation

data Demand

Constructors

Top |
Abs |
Call Demand |
Eval Demands |
Defer Demands |
Box Demand |
Bot |

Instances

Eq Demand |
Outputable Demand |
Binary Demand |

topDmd :: Demand

lazyDmd :: Demand

seqDmd :: Demand

evalDmd :: Demand

errDmd :: Demand

isStrictDmd :: Demand -> Bool

isTop :: Demand -> Bool

isAbsent :: Demand -> Bool

seqDemand :: Demand -> ()

data DmdType

Constructors

DmdType DmdEnv [Demand] DmdResult |

Instances

Eq DmdType |
Outputable DmdType |
Binary DmdType |

topDmdType :: DmdType

botDmdType :: DmdType

mkDmdType :: DmdEnv -> [Demand] -> DmdResult -> DmdType

mkTopDmdType :: [Demand] -> DmdResult -> DmdType

dmdTypeDepth :: DmdType -> Arity

seqDmdType :: DmdType -> ()

type DmdEnv = VarEnv Demand

emptyDmdEnv :: VarEnv Demand

data DmdResult

Constructors

TopRes |
RetCPR |
BotRes |

Instances

Eq DmdResult |
Show DmdResult |
Outputable DmdResult |
Binary DmdResult |

retCPR :: DmdResult

isBotRes :: DmdResult -> Bool

returnsCPR :: DmdResult -> Bool

resTypeArgDmd :: DmdResult -> Demand

data Demands

Constructors

Poly Demand |
Prod [Demand] |

Instances

Eq Demands |
Outputable Demands |
Binary Demands |

mapDmds :: (Demand -> Demand) -> Demands -> Demands

zipWithDmds :: (Demand -> Demand -> Demand) -> Demands -> Demands -> Demands

allTop :: Demands -> Bool

seqDemands :: Demands -> ()

newtype StrictSig

Constructors

StrictSig DmdType |

Instances

Eq StrictSig |
Outputable StrictSig |
Binary StrictSig |

mkStrictSig :: DmdType -> StrictSig

topSig :: StrictSig

botSig :: StrictSig

cprSig :: StrictSig

isTopSig :: StrictSig -> Bool

splitStrictSig :: StrictSig -> ([Demand], DmdResult)

increaseStrictSigArity :: Int -> StrictSig -> StrictSig

pprIfaceStrictSig :: StrictSig -> SDoc

appIsBottom :: StrictSig -> Int -> Bool

isBottomingSig :: StrictSig -> Bool

seqStrictSig :: StrictSig -> ()