aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorEmilio Jesus Gallego Arias2018-12-25 19:53:50 +0100
committerEmilio Jesus Gallego Arias2018-12-25 19:53:50 +0100
commit599696d804eb7c40661615a49c5d729e7d6ff373 (patch)
tree8d74c5c301a09430c3bd23900e46d9bb8f18e317 /lib
parentad5fb5a948bdfd408b825e2bdf0ee4ba6b91f395 (diff)
parent7c1b36356c14b2571b5cb559d09586839703c660 (diff)
Merge PR #9249: Fixing printing bug due to using equality wrongly checking hash keys of kernel names (or checking wrong hash keys?)
Diffstat (limited to 'lib')
-rw-r--r--lib/util.ml6
-rw-r--r--lib/util.mli4
2 files changed, 10 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index 38d73d3453..0389336258 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -20,6 +20,12 @@ let on_pi1 f (a,b,c) = (f a,b,c)
let on_pi2 f (a,b,c) = (a,f b,c)
let on_pi3 f (a,b,c) = (a,b,f c)
+(* Comparing pairs *)
+
+let pair_compare cmpx cmpy (x1,y1 as p1) (x2,y2 as p2) =
+ if p1 == p2 then 0 else
+ let c = cmpx x1 x2 in if c == 0 then cmpy y1 y2 else c
+
(* Projections from triplets *)
let pi1 (a,_,_) = a
diff --git a/lib/util.mli b/lib/util.mli
index 1eb60f509a..fa3b622621 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -17,6 +17,10 @@ val on_fst : ('a -> 'b) -> 'a * 'c -> 'b * 'c
val on_snd : ('a -> 'b) -> 'c * 'a -> 'c * 'b
val map_pair : ('a -> 'b) -> 'a * 'a -> 'b * 'b
+(** Comparing pairs *)
+
+val pair_compare : ('a -> 'a -> int) -> ('b -> 'b -> int) -> ('a * 'b -> 'a * 'b -> int)
+
(** Mapping under triple *)
val on_pi1 : ('a -> 'b) -> 'a * 'c * 'd -> 'b * 'c * 'd