CurryInfo: coosy-3.1.0 / Coosy.ShowObserve.separate

definition:
separate :: [EventID] -> [(Event,Bool)] -> ([(Event,Bool)],Trace)
separate _ [] = ([],[])
separate toFind ((dv,flag):ts)
  | elem (getRef dv) toFind
  = let 
      newToFind = getParent dv : getPred dv : filter (/=(getRef dv)) toFind
      (newts,termEvent) = separate newToFind ts 
    in ((dv,True):newts,dv:termEvent)
  | otherwise 
  = let 
      (newts,termEvent) = separate toFind ts 
    in ((dv,flag):newts,termEvent) 
demand:
argument 2
deterministic:
deterministic operation
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,{[]}) |-> {(,)} || (_,{:}) |-> {(,)}}
name:
separate
precedence:
no precedence defined
result-values:
{(,)}
signature:
[Prelude.Int] -> [(Coosy.Trace.Event, Prelude.Bool)]
-> ([(Coosy.Trace.Event, Prelude.Bool)], [Coosy.Trace.Event])
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term