Safe Haskell | None |
---|---|
Language | Haskell2010 |
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)
- 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 #
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'