CurryInfo: coosy-3.1.0 / Coosy.ShowObserve.constructTermV

definition:
constructTermV :: EventID -> [Event] -> Term
constructTermV _ [] = Bottom
constructTermV parentRef (Value arity cname ref parent _ :events)
   | parent == parentRef =
         Cons cname [constructTermD ref arg events | arg<-[1..arity]]
   | otherwise = constructTermV parentRef events

constructTermV parentRef (Fun ref parent _:events)
   | parent == parentRef
   = let [a1,a2]=[constructTermD ref arg events | arg<-[1..2]] in
       case constructTermV parentRef events of
         FunTerm mappings -> FunTerm ((a1,a2):mappings)
         Black (FunTerm mappings) -> Black (FunTerm ((a1,a2):mappings))
         Bottom           -> FunTerm [(a1,a2)]
         Black Bottom     -> FunTerm [(a1,a2)]
   | otherwise = constructTermV parentRef events

constructTermV parentRef (LogVar ref parent _:events)
   | parent == parentRef
   = LogVarTerm (constructTermV ref events)
   | otherwise = constructTermV parentRef events

constructTermV parentRef (Demand _ _ _ _:events) 
   = constructTermV parentRef events

constructTermV parentRef (Separator:events) 
   = Black $ constructTermV parentRef events
demand:
argument 2
deterministic:
deterministic operation
failfree:
<FAILING>
indeterministic:
referentially transparent operation
infix:
no fixity defined
iotype:
{(_,{[]}) |-> {Bottom} || (_,{:}) |-> _}
name:
constructTermV
precedence:
no precedence defined
result-values:
_
signature:
Prelude.Int -> [Coosy.Trace.Event] -> Term
solution-complete:
operation might suspend on free variables
terminating:
possibly non-terminating
totally-defined:
possibly non-reducible on same data term