-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/
-- | GpH based backend for @Parallel-Arrows-Definition@ in a multicore variant.
--
-- GpH based backend for Parallel-Arrows-Definition in a
-- multicore variant. Use this backend for shared-memory programs.
@package Parallel-Arrows-Multicore
@version 0.1.1.0
module Parrows.Multicore
-- | 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.
type Strategy a = a -> Eval a
data Conf a
Conf :: (Strategy a) -> Conf a
defaultConf :: (NFData b) => [arr a b] -> Conf b
stratToConf :: [arr a b] -> Strategy b -> Conf b
instance Control.Arrow.ArrowChoice arr => Parrows.Definition.ArrowParallel arr a b (Parrows.Multicore.Conf b)
instance (Control.Arrow.ArrowChoice arr, Parrows.Definition.ArrowParallel arr a b (Parrows.Multicore.Conf b)) => Parrows.Definition.ArrowLoopParallel arr a b (Parrows.Multicore.Conf b)
instance Parrows.Future.Future Parrows.Future.BasicFuture a (Parrows.Multicore.Conf a)
module Parrows.Multicore.Simple
instance (Control.DeepSeq.NFData b, Control.Arrow.ArrowChoice arr, Parrows.Definition.ArrowParallel arr a b (Parrows.Multicore.Conf b)) => Parrows.Definition.ArrowParallel arr a b ()
instance (Control.DeepSeq.NFData b, Control.Arrow.ArrowChoice arr, Parrows.Definition.ArrowParallel arr a b (), Parrows.Definition.ArrowLoopParallel arr a b (Parrows.Multicore.Conf b)) => Parrows.Definition.ArrowLoopParallel arr a b ()
instance Parrows.Future.Future Parrows.Future.BasicFuture b ()