| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
CoreArity
Description
Arity and eta expansion
Synopsis
- manifestArity :: CoreExpr -> Arity
- joinRhsArity :: CoreExpr -> JoinArity
- exprArity :: CoreExpr -> Arity
- typeArity :: Type -> [OneShotInfo]
- exprEtaExpandArity :: DynFlags -> CoreExpr -> Arity
- findRhsArity :: DynFlags -> Id -> CoreExpr -> Arity -> (Arity, 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 #
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'