Safe Haskell | None |
---|---|
Language | Haskell2010 |
- type Strategy a = a -> Eval a
- data Conf a = Conf (Strategy a)
- defaultConf :: NFData b => [arr a b] -> Conf b
- stratToConf :: [arr a b] -> Strategy b -> Conf b
- module Parrows.Definition
- module Parrows.Future
- module Control.DeepSeq
Documentation
type Strategy a = a -> Eval a #
A Strategy
is a function that embodies a parallel evaluation strategy.
The function traverses (parts of) its argument, evaluating subexpressions
in parallel or in sequence.
A Strategy
may do an arbitrary amount of evaluation of its
argument, but should not return a value different from the one it
was passed.
Parallel computations may be discarded by the runtime system if the
program no longer requires their result, which is why a Strategy
function returns a new value equivalent to the old value. The
intention is that the program applies the Strategy
to a
structure, and then uses the returned value, discarding the old
value. This idiom is expressed by the using
function.
ArrowChoice arr => ArrowParallel arr a b (Conf b) Source # | |
(ArrowChoice arr, ArrowParallel arr a b (Conf b)) => ArrowLoopParallel arr a b (Conf b) Source # | |
Future BasicFuture a (Conf a) Source # | |
defaultConf :: NFData b => [arr a b] -> Conf b Source #
stratToConf :: [arr a b] -> Strategy b -> Conf b Source #
module Parrows.Definition
module Parrows.Future
module Control.DeepSeq