Safe Haskell | None |
---|
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
:: (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)) |
:: (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