|
definition: |
updateSemEq :: Ord a => (SemEq a -> SemEq a -> Bool)
-> SemEq a -> SemInt a -> SemInt a
updateSemEq _ x [] = [x]
updateSemEq lessSpecificEq x (y:ys)
| x == y = y : ys
| lessSpecificEq y x = updateSemEq lessSpecificEq x ys
| lessSpecificEq x y = y : ys
| x <= y = x : y : ys
| otherwise = y : updateSemEq lessSpecificEq x ys
|
|
demand: |
argument 4 |
|
deterministic: |
deterministic operation |
|
documentation: |
Generic ordered insertion of semantic equations into an interpretation
where existing equations with less information are removed from the
interpretation. Thus, the resulting interpretation contains
equations with more specific abstract values.
First argument: ordering relation on abstract terms (used to order
all equations of the interpretation)
Second argument: less-specific ordering on equations
|
|
failfree: |
(_, _, _, _) |
|
indeterministic: |
referentially transparent operation |
|
infix: |
no fixity defined |
|
iotype: |
{(_,_,_,{[]}) |-> {:} || (_,_,_,{:}) |-> {:}}
|
|
name: |
updateSemEq |
|
precedence: |
no precedence defined |
|
result-values: |
{:}
|
|
signature: |
Prelude.Ord a => (SemEq a -> SemEq a -> Prelude.Bool) -> SemEq a -> [SemEq a] -> [SemEq a] |
|
solution-complete: |
operation might suspend on free variables |
|
terminating: |
possibly non-terminating |
|
totally-defined: |
possibly non-reducible on same data term |