aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/util.ml7
-rw-r--r--lib/util.mli1
2 files changed, 8 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index 76d9c6728..67ff2a501 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -399,6 +399,13 @@ let rec list_compare cmp l1 l2 =
| 0 -> list_compare cmp l1 l2
| c -> c)
+let rec list_equal cmp l1 l2 =
+ match l1, l2 with
+ | [], [] -> true
+ | x1 :: l1, x2 :: l2 ->
+ cmp x1 x2 && list_equal cmp l1 l2
+ | _ -> false
+
let list_intersect l1 l2 =
List.filter (fun x -> List.mem x l2) l1
diff --git a/lib/util.mli b/lib/util.mli
index baa116489..458eb1d05 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -116,6 +116,7 @@ val ascii_of_ident : string -> string
(** {6 Lists. } *)
val list_compare : ('a -> 'a -> int) -> 'a list -> 'a list -> int
+val list_equal : ('a -> 'a -> bool) -> 'a list -> 'a list -> bool
val list_add_set : 'a -> 'a list -> 'a list
val list_eq_set : 'a list -> 'a list -> bool
val list_intersect : 'a list -> 'a list -> 'a list