aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorfilliatr1999-10-18 14:56:56 +0000
committerfilliatr1999-10-18 14:56:56 +0000
commit71d73e9d7f3fd54d5a3264a93c74cd742e3d7de3 (patch)
tree4a6064526cff354ed77aa875bb8b35bd40a19534 /lib
parent154f0fc69c79383cc75795554eb7e0256c8299d8 (diff)
mise en place module Refiner
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@107 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'lib')
-rw-r--r--lib/util.ml9
-rw-r--r--lib/util.mli3
2 files changed, 12 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index be6f67dc16..440acd6ba2 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -125,6 +125,8 @@ let list_for_all_i p =
let list_except x l = List.filter (fun y -> not (x = y)) l
+let list_for_all2eq f l1 l2 = try List.for_all2 f l1 l2 with Failure _ -> false
+
(* Arrays *)
let array_exists f v =
@@ -262,6 +264,13 @@ let option_app f = function
| None -> None
| Some x -> Some (f x)
+let map_succeed f =
+ let rec map_f = function
+ | [] -> []
+ | h::t -> try (let x = f h in x :: map_f t) with Failure _ -> map_f t
+ in
+ map_f
+
(* Pretty-printing *)
let pr_spc () = [< 'sPC >];;
diff --git a/lib/util.mli b/lib/util.mli
index 484b2d61e7..ef56afeb27 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -40,6 +40,7 @@ val list_index : 'a -> 'a list -> int
val list_fold_left_i : (int -> 'a -> 'b -> 'a) -> int -> 'a -> 'b list -> 'a
val list_for_all_i : (int -> 'a -> bool) -> int -> 'a list -> bool
val list_except : 'a -> 'a list -> 'a list
+val list_for_all2eq : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
(*s Arrays. *)
@@ -78,6 +79,8 @@ module Intmap : Map.S with type key = int
val out_some : 'a option -> 'a
val option_app : ('a -> 'b) -> 'a option -> 'b option
+val map_succeed : ('a -> 'b) -> 'a list -> 'b list
+
(*s Pretty-printing. *)
val pr_spc : unit -> std_ppcmds