Safe Haskell | None |
---|
- data Process = Process {
- processName :: Name
- processParamTypes :: [BindF]
- processParamValues :: [BindF]
- processContexts :: [Context]
- processOperators :: [Operator]
- processStmts :: [LetsF]
- processResultType :: TypeF
- processResult :: ExpF
- data Operator
- = OpId { }
- | OpCreate { }
- | OpMap {
- opArity :: Int
- opResultSeries :: BindF
- opInputRate :: TypeF
- opInputSeriess :: [BoundF]
- opWorkerParams :: [BindF]
- opWorkerBody :: ExpF
- | OpFold { }
- | OpPack { }
Documentation
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.
Process | |
|
An abstract series operator.
Each of the constructors holds all the information we need to produce code for that operator.
OpId | Connect a series from one place to another. These don't come from the source program, but are useful for during code generation. |
| |
OpCreate | Convert a series to a manifest vector. |
| |
OpMap | Apply a function to corresponding elements in several input series
of the same rate, producing a new series. This subsumes the regular
|
| |
OpFold | Fold all the elements of a series. |
| |
OpPack | Pack a series according to a selector. |
|