]> matita.cs.unibo.it Git - helm.git/commitdiff
A case was missing
authorAndrea Asperti <andrea.asperti@unibo.it>
Thu, 5 Nov 2009 15:44:43 +0000 (15:44 +0000)
committerAndrea Asperti <andrea.asperti@unibo.it>
Thu, 5 Nov 2009 15:44:43 +0000 (15:44 +0000)
helm/software/components/extlib/hExtlib.ml

index 13dd2f2665da9fa8f8aed93c542d18b20ebf2c15..0536a1d6e2d76719017d0c9bb93682c6e28f16dc 100644 (file)
@@ -343,16 +343,18 @@ let rec rm_assoc n = function
 let merge canonicals elements n m =
   let cn,canonicals = rm_assoc n canonicals in
   let cm,canonicals = rm_assoc m canonicals in
-  let ln,elements = rm_assoc cn elements in
-  let lm,elements = rm_assoc cm elements in
-  let canonicals = 
-    (n,cm)::(m,cm)::List.map 
-      (fun ((x,xc) as p)  -> 
-        if xc = cn then (x,cm) else p) canonicals
-  in 
-  let elements = (cm,ln@lm)::elements 
-  in
-    canonicals,elements
+  if cn=cm then (n,cm)::(m,cm)::canonicals, elements
+  else
+    let ln,elements = rm_assoc cn elements in
+    let lm,elements = rm_assoc cm elements in
+    let canonicals = 
+      (n,cm)::(m,cm)::List.map 
+       (fun ((x,xc) as p)  -> 
+          if xc = cn then (x,cm) else p) canonicals
+    in 
+    let elements = (cm,ln@lm)::elements 
+    in
+      canonicals,elements
 ;;
 
 (* f x gives the direct dependencies of x;