| Safe Haskell | None | 
|---|---|
| Language | Haskell2010 | 
CoreArity
Description
Arity and eta expansion
- manifestArity :: CoreExpr -> Arity
 - joinRhsArity :: CoreExpr -> JoinArity
 - exprArity :: CoreExpr -> Arity
 - typeArity :: Type -> [OneShotInfo]
 - exprEtaExpandArity :: DynFlags -> CoreExpr -> Arity
 - findRhsArity :: DynFlags -> Id -> CoreExpr -> Arity -> Arity
 - type CheapFun = CoreExpr -> Maybe Type -> Bool
 - etaExpand :: Arity -> CoreExpr -> CoreExpr
 - etaExpandToJoinPoint :: JoinArity -> CoreExpr -> ([CoreBndr], CoreExpr)
 - etaExpandToJoinPointRule :: JoinArity -> CoreRule -> CoreRule
 - exprBotStrictness_maybe :: CoreExpr -> Maybe (Arity, StrictSig)
 
Documentation
manifestArity :: CoreExpr -> Arity Source #
manifestArity sees how many leading value lambdas there are, after looking through casts
joinRhsArity :: CoreExpr -> JoinArity Source #
typeArity :: Type -> [OneShotInfo] Source #
findRhsArity :: DynFlags -> Id -> CoreExpr -> Arity -> Arity Source #
The Arity returned is the number of value args the expression can be applied to without doing much work
Arguments
| :: Arity | Result should have this number of value args  | 
| -> CoreExpr | Expression to expand  | 
| -> CoreExpr | 
etaExpand n e returns an expression with
 the same meaning as e, but with arity n.
Given:
e' = etaExpand n e
We should have that:
ty = exprType e = exprType e'