CurryInfo: coosy-3.1.0 / Observe.oFun

definition:
oFun :: (Data a, Data b) => Observer a -> Observer b -> Observer (a -> b)
oFun observeA observeB f label parent preds arg =
  (unsafePerformIO $ do
    (eventID,newPreds) <- recordEvent label Fun parent preds
    return (\x -> (observer observeB 2
                     (f (observer observeA 1 x label eventID newPreds))
                     label eventID newPreds)))
  arg
demand:
no demanded arguments
deterministic:
possibly non-deterministic operation
documentation:
-- Construct an observer for functions where the argument and result might be
-- a free variable.
failfree:
<FAILING>
indeterministic:
might be indeterministic
infix:
no fixity defined
iotype:
{(_,_,_,_,_,_,_,_,_) |-> _}
name:
oFun
precedence:
no precedence defined
result-values:
_
signature:
(Prelude.Data a, Prelude.Data b) => (a -> String -> Prelude.Int -> [Prelude.Int]
-> a) -> (b -> String -> Prelude.Int -> [Prelude.Int] -> b) -> (a -> b)
-> String -> Prelude.Int -> [Prelude.Int] -> a -> b
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term