]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/mathql_interpreter/union.ml
diff and sortedby implemented
[helm.git] / helm / ocaml / mathql_interpreter / union.ml
index 65f73503be9ce5c3b9b5743e9e785c2c12ce9f23..2e83b7a7df4f8b9537ca98addbd238899d3a50d1 100644 (file)
@@ -114,13 +114,16 @@ let rec union_ex l1 l2 =
      [],l
    | l,[] -> l
    | ({S.uri = uri1} as entry1)::tl1,
-     ({S.uri = uri2} as entry2)::_ when uri1 < uri2 || entry1 < entry2 ->
+     ({S.uri = uri2} as entry2)::_ when uri1 < uri2 ->
        entry1::(union_ex tl1 l2)
    | ({S.uri = uri1} as entry1)::_,
-     ({S.uri = uri2} as entry2)::tl2 when uri2 < uri1 || entry2 < entry1 ->
+     ({S.uri = uri2} as entry2)::tl2 when uri2 < uri1 ->
        entry2::(union_ex l1 tl2)
    | entry1::tl1,entry2::tl2 -> (* same entry *)
-     entry1::(union_ex tl1 tl2)
+      if entry1 = entry2 then (* same attributes *)
+       entry1::(union_ex tl1 tl2)
+      else
+       assert false
 ;;
 
 let union_ex l1 l2 =