summaryrefslogtreecommitdiff
path: root/src/util.mli
diff options
context:
space:
mode:
Diffstat (limited to 'src/util.mli')
-rw-r--r--src/util.mli13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/util.mli b/src/util.mli
index c565cdce..aa442ada 100644
--- a/src/util.mli
+++ b/src/util.mli
@@ -77,6 +77,12 @@ val option_bind : ('a -> 'b option) -> 'a option -> 'b option
whereas [option_default d (Some x)] returns [x]. *)
val option_default : 'a -> 'a option -> 'a
+(** [option_binop f None None] returns [None], while
+ [option_binop f (Some x) None] and [option_binop f None (Some x)]
+ return [Some x], and [option_binop f (Some x) (Some y)] returns
+ [Some (f x y)] *)
+val option_binop : ('a -> 'a -> 'a) -> 'a option -> 'a option -> 'a option
+
(** [option_get_exn exn None] throws the exception [exn],
whereas [option_get_exn exn (Some x)] returns [x]. *)
val option_get_exn : exn -> 'a option -> 'a
@@ -145,6 +151,9 @@ val undo_list_to_front : int -> 'a list -> 'a list
[l1] and [l2], with [length l1 = n] and [l1 @ l2 = l]. Fails if n is too small or large. *)
val split_after : int -> 'a list -> 'a list * 'a list
+(** [split3 l] splits a list of triples into a triple of lists *)
+val split3 : ('a * 'b * 'c) list -> 'a list * 'b list * 'c list
+
val compare_list : ('a -> 'b -> int) -> 'a list -> 'b list -> int
@@ -195,3 +204,7 @@ module ExtraSet : functor (S : Set.S) ->
(*Formatting functions*)
val string_of_list : string -> ('a -> string) -> 'a list -> string
+
+val string_of_option : ('a -> string) -> 'a option -> string
+
+val split_on_char : char -> string -> string list