diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/util.ml | 7 | ||||
-rw-r--r-- | lib/util.mli | 1 |
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 |