| Safe Haskell | None |
|---|
Feldspar.Core.Constructs.Binding
Description
Interpretation of binding constructs
- module Language.Syntactic.Constructs.Binding
- optimizeLambda :: (CLambda Type :<: dom, OptimizeSuper dom) => (ASTF (dom :|| Typeable) b -> Opt (ASTF (Decor Info (dom :|| Typeable)) b)) -> Info a -> CLambda Type (b :-> Full (a -> b)) -> Args (AST (dom :|| Typeable)) (b :-> Full (a -> b)) -> Opt (ASTF (Decor Info (dom :|| Typeable)) (a -> b))
- optimizeFunction :: (CLambda Type :<: dom, OptimizeSuper dom) => (ASTF (dom :|| Typeable) b -> Opt (ASTF (Decor Info (dom :|| Typeable)) b)) -> Info a -> ASTF (dom :|| Typeable) (a -> b) -> Opt (ASTF (Decor Info (dom :|| Typeable)) (a -> b))
- prjLambda :: Project (CLambda Type) dom => dom sig -> Maybe (CLambda Type sig)
- betaReduce :: (Constrained dom, CLambda Type :<: dom, (Variable :|| Type) :<: dom) => ASTF (dom :|| Typeable) a -> ASTF (dom :|| Typeable) (a -> b) -> ASTF (dom :|| Typeable) b
- cLambda :: Type a => VarId -> CLambda Type (b :-> Full (a -> b))
Documentation
Arguments
| :: (CLambda Type :<: dom, OptimizeSuper dom) | |
| => (ASTF (dom :|| Typeable) b -> Opt (ASTF (Decor Info (dom :|| Typeable)) b)) | Optimization of the body |
| -> Info a | |
| -> CLambda Type (b :-> Full (a -> b)) | |
| -> Args (AST (dom :|| Typeable)) (b :-> Full (a -> b)) | |
| -> Opt (ASTF (Decor Info (dom :|| Typeable)) (a -> b)) |
Arguments
| :: (CLambda Type :<: dom, OptimizeSuper dom) | |
| => (ASTF (dom :|| Typeable) b -> Opt (ASTF (Decor Info (dom :|| Typeable)) b)) | Optimization of the body |
| -> Info a | |
| -> ASTF (dom :|| Typeable) (a -> b) -> Opt (ASTF (Decor Info (dom :|| Typeable)) (a -> b)) |
Assumes that the expression is a Lambda