For non-flat types (where values may be partially defined, rather than
necessarily bottom or fully defined) and information merging, see the
|Unambiguous choice operator. Equivalent to the ambiguous choice
operator, but with arguments restricted to be equal where not bottom,
so that the choice doesn't matter. See also amb.
|Yield a value if a condition is true. Otherwise wait forever.
|The value of agreeing values (or hang)
|Ambiguous choice operator. Yield either value. Evaluates in
separate threads and picks whichever finishes first. See also
unamb and race.
|Race two actions against each other in separate threads, and pick
whichever finishes first. See also amb.
|Some useful special applications of amb
|parCommute :: (a -> a -> b) -> a -> a -> b||Source|
|Turn a binary commutative operation into that tries both orders in
parallel. Useful when there are special cases that don't require
evaluating both arguments. For non-flat types and information merging,
see parCommute in the lub package.
|parAnnihilator :: Eq a => (a -> a -> a) -> a -> a -> a -> a||Source|
|Commutative operation with annihilator, in parallel. For instance,
'(*)'0, '(&&)'False, '(||)'/'True', 'min'/'minBound', 'max'/'maxBound'.
|Parallel min with minBound short-circuit
|Parallel max with minBound short-circuit
|Parallel multiplication with 0 short-circuit
|Produced by Haddock version 2.4.2|