definition: |
oEither :: (Data a, Data b) => Observer a -> Observer b -> Observer (Either a b) oEither observeA _ (Left a) = o1 observeA "Left" Left a oEither _ observeB (Right b) = o1 observeB "Right" Right b |
demand: |
argument 5 |
deterministic: |
possibly non-deterministic operation |
documentation: |
-- An observer combinator for the `Either` type. |
failfree: |
<FAILING> |
indeterministic: |
might be indeterministic |
infix: |
no fixity defined |
iotype: |
{(_,_,_,_,{Left}) |-> {o1} || (_,_,_,_,{Right}) |-> {o1}} |
name: |
oEither |
precedence: |
no precedence defined |
result-values: |
{o1} |
signature: |
(Prelude.Data a, Prelude.Data b) => (a -> String -> Prelude.Int -> [Prelude.Int] -> a) -> (b -> String -> Prelude.Int -> [Prelude.Int] -> b) -> Prelude.Either a b -> String -> Prelude.Int -> [Prelude.Int] -> Prelude.Either a b |
solution-complete: |
operation might suspend on free variables |
terminating: |
possibly non-terminating |
totally-defined: |
possibly non-reducible on same data term |