From 25660ee2c19c7089c7a1beff8f9ea9f611b283b9 Mon Sep 17 00:00:00 2001 From: Simon Cruanes Date: Sat, 19 Jun 2021 18:43:17 -0400 Subject: [PATCH] add `CCOpt.{some,none}` close #382 --- src/core/CCOpt.ml | 2 ++ src/core/CCOpt.mli | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/src/core/CCOpt.ml b/src/core/CCOpt.ml index 7527077a..8e1461c8 100644 --- a/src/core/CCOpt.ml +++ b/src/core/CCOpt.ml @@ -37,6 +37,8 @@ let equal f o1 o2 = match o1, o2 with | Some x, Some y -> f x y let return x = Some x +let some = return +let none = None let[@inline] flat_map f o = match o with | None -> None diff --git a/src/core/CCOpt.mli b/src/core/CCOpt.mli index 56af8a04..39a3597a 100644 --- a/src/core/CCOpt.mli +++ b/src/core/CCOpt.mli @@ -34,6 +34,14 @@ val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool val return : 'a -> 'a t (** [return x] is a monadic return, that is [return x = Some x]. *) +val some : 'a -> 'a t +(** Alias to {!return}. + @since NEXT_RELEASE *) + +val none : 'a t +(** Alias to {!None}. + @since NEXT_RELEASE *) + val (>|=) : 'a t -> ('a -> 'b) -> 'b t (** [o >|= f] is the infix version of {!map}. *)