aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/util.ml5
-rw-r--r--lib/util.mli1
2 files changed, 6 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index 0f900ff923..62a86b55f5 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -146,6 +146,11 @@ let list_try_find_i f =
in
try_find_f
+let rec list_uniquize = function
+ | [] -> []
+ | h::t -> if List.mem h t then list_uniquize t else h::(list_uniquize t)
+
+
(* Arrays *)
let array_exists f v =
diff --git a/lib/util.mli b/lib/util.mli
index 7998dde2a2..4075a70451 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -44,6 +44,7 @@ val list_for_all2eq : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
val list_map_i : (int -> 'a -> 'b) -> int -> 'a list -> 'b list
val list_sep_last : 'a list -> 'a * 'a list
val list_try_find_i : (int -> 'a -> 'b) -> int -> 'a list -> 'b
+val list_uniquize : 'a list -> 'a list
(*s Arrays. *)