`join' collapses (Some (Some a)) down to (Some a), and gives Nothing otherwise.

Signed-off-by: Matthias Görgens <[email protected]>


 stdext/opt.ml  |  5 +++++
 stdext/opt.mli |  1 +
 2 files changed, 6 insertions(+), 0 deletions(-)


# HG changeset patch
# User Matthias Görgens <[email protected]>
# Date 1265126831 0
# Node ID 452da349aea2e41bcfb19af353850c542eaa799c
# Parent  c3c6244bb7d6387caed5c200ead5b20fab27485f
Adds `join' to the Opt module

`join' collapses (Some (Some a)) down to (Some a), and gives Nothing otherwise.

Signed-off-by: Matthias Görgens <[email protected]>

diff -r c3c6244bb7d6 -r 452da349aea2 stdext/opt.ml
--- a/stdext/opt.ml
+++ b/stdext/opt.ml
@@ -54,3 +54,8 @@
 	| None -> accu
 
 let cat_options a = List.map unbox (List.filter is_boxed a)
+
+let join = function
+    | Some (Some a) -> Some a
+    | _ -> None
+
diff -r c3c6244bb7d6 -r 452da349aea2 stdext/opt.mli
--- a/stdext/opt.mli
+++ b/stdext/opt.mli
@@ -20,3 +20,4 @@
 val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b option -> 'a
 val fold_right : ('a -> 'b -> 'b) -> 'a option -> 'b -> 'b
 val cat_options : 'a option list -> 'a list
+val join : ('a option) option -> 'a option
_______________________________________________
xen-api mailing list
[email protected]
http://lists.xensource.com/mailman/listinfo/xen-api

Reply via email to