ddc-core-flow- Disciplined Disciple Compiler data flow compiler.

Safe HaskellNone




data Process Source

A process applies some series operators and produces some non-series result.

We get one of these for each top-level series function in the original program.




processName :: Name

Name of whole process. This is taken from the function name in the original source code.

processParamTypes :: [BindF]

Type parameters to process. These are the type parameters of the original function.

processParamValues :: [BindF]

Value parameters to process. These are the value parameters of the original function.

processContexts :: [Context]

Flow contexts in this process. This contains a ContextRate entry for all the Rate variables in the parameters, along with an entry for all the nested contexts introduced by the process itself.

processOperators :: [Operator]

Flow operators in this process.

processStmts :: [LetsF]

Top-level statements that don't invoke stream operators. These are typically statements that combine reduction results, like the addition in (fold (+) 0 s1 + fold (*) 1 s1).

INVARIANT: The worker functions for stream operators do not mention any of the bound variables.

processResultType :: TypeF
processResult :: ExpF