feldspar-language-0.6.0.3: A functional embedded language for DSP and parallelism

Safe HaskellNone

Feldspar.Core.Constructs.Binding

Description

Interpretation of binding constructs

Synopsis

Documentation

optimizeLambdaSource

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)) 

optimizeFunctionSource

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

prjLambda :: Project (CLambda Type) dom => dom sig -> Maybe (CLambda Type sig)Source

betaReduceSource

Arguments

:: (Constrained dom, CLambda Type :<: dom, (Variable :|| Type) :<: dom) 
=> ASTF (dom :|| Typeable) a

Argument

-> ASTF (dom :|| Typeable) (a -> b)

Function to be reduced

-> ASTF (dom :|| Typeable) b 

cLambda :: Type a => VarId -> CLambda Type (b :-> Full (a -> b))Source