aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/util.ml4
-rw-r--r--lib/util.mli2
2 files changed, 6 insertions, 0 deletions
diff --git a/lib/util.ml b/lib/util.ml
index a8dd17e8f2..885278da7a 100644
--- a/lib/util.ml
+++ b/lib/util.ml
@@ -559,6 +559,10 @@ let option_app f = function
| None -> None
| Some x -> Some (f x)
+let option_fold_left2 f e a b = match (a,b) with
+ | Some x, Some y -> f e x y
+ | _ -> e
+
let option_compare f a b = match (a,b) with
| None, None -> true
| Some a', Some b' -> f a' b'
diff --git a/lib/util.mli b/lib/util.mli
index d7194e389d..85ae3f2eb0 100644
--- a/lib/util.mli
+++ b/lib/util.mli
@@ -174,6 +174,8 @@ val interval : int -> int -> int list
val in_some : 'a -> 'a option
val out_some : 'a option -> 'a
val option_app : ('a -> 'b) -> 'a option -> 'b option
+val option_fold_left2 :
+ ('a -> 'b -> 'c -> 'a) -> 'a -> 'b option -> 'c option -> 'a
val option_iter : ('a -> unit) -> 'a option -> unit
val option_compare : ('a -> 'b -> bool) -> 'a option -> 'b option -> bool
val option_smartmap : ('a -> 'a) -> 'a option -> 'a option