For non-flat types (where values may be partially defined, rather than
necessarily bottom or fully defined) and information merging, see the
lub package, http://haskell.org/haskellwiki/Lub.
|Purely functional unambiguous choice
|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.
|Some useful special applications of unamb
|Yield a value if a condition is true. Otherwise undefined.
|The value of agreeing values (or undefined/bottom)
|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.
|parIdentity :: Eq a => (a -> a -> a) -> a -> a -> a -> a||Source|
|Binary operation with left & right identity element. For instance, (*) & 1,
(&&) & True, (||) & False, min & maxBound, max & minBound.
Tests either argument as identity, in parallel.
|parAnnihilator :: Eq a => (a -> a -> a) -> a -> a -> a -> a||Source|
|Binary operation with annihilator element. For instance, (*) & 0,
(&&) & False, (||) & True, min & minBound, max & maxBound.
Tests either argument as annihilator, in parallel.
|Parallel min with minBound short-circuit
|Parallel max with maxBound short-circuit
|Parallel multiplication with 0 short-circuit
|Some related imperative tools
|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.
|Produced by Haddock version 2.4.2|