CurryInfo: coosy-3.1.0 / Observe.oEither

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