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 |