CCOptionSourceBasic operations on the option type.
This module replaces `CCOpt`.
The type for option values. Either None or a value Some v.
none is None.
some v is Some v.
value o ~default is v if o is Some v and default otherwise.
get o is v if o is Some v and raise otherwise.
bind o f is f v if o is Some v and None if o is None.
join oo is Some v if oo is Some (Some v) and None otherwise.
map f o is None if o is None and Some (f v) is o is Some v.
iter f o is f v if o is Some v and () otherwise.
is_none o is true if and only if o is None.
is_some o is true if and only if o is Some o.
equal eq o0 o1 is true if and only if o0 and o1 are both None or if they are Some v0 and Some v1 and eq v0 v1 is true.
compare cmp o0 o1 is a total order on options using cmp to compare values wrapped by Some _. None is smaller than Some _ values.
to_list o is [] if o is None and [v] if o is Some v.
to_seq o is o as a sequence. None is the empty sequence and Some v is the singleton sequence containing v.
map_or ~default f o is f x if o = Some x, default otherwise.
map_lazy default_fn f o is f x if o = Some x, default_fn () otherwise.
flat_map_l f o is [] if o is None, or f x if o is Some x.
Kleisli composition. Monadic equivalent of CCFun.compose
map2 f o1 o2 maps 'a option and 'b option to a 'c option using f.
fold f init o is f init x if o is Some x, or init if o is None. Fold on 0 or 1 element.
filter f o returns Some x if o is Some x and f x is true, or None if f x is false or if o is None. Filter on 0 or 1 element.
if_ f x is Some x if f x, None otherwise.
exists f o returns true iff there exists an element for which the provided function f evaluates to true.
for_all f o returns true iff the provided function f evaluates to true for all elements.
get_or ~default o extracts the value from o, or returns default if o is None.
apply_or f x returns the original x if f fails, or unwraps f x if it succeeds. Useful for piping preprocessing functions together (such as string processing), turning functions like "remove" into "remove_if_it_exists".
get_exn_or msg o returns x if o is Some x or fails with Invalid_argument msg if o is None.
get_lazy default_fn o unwraps o, but if o is None it returns default_fn () instead.
sequence_l [x1; x2; …; xn] returns Some [y1; y2; …; yn] if every xi is Some yi. Otherwise, if the list contains at least one None, the result is None.
wrap ?handler f x calls f x and returns Some y if f x = y. If f x raises any exception, the result is None. This can be useful to wrap functions such as Map.S.find.
wrap2 ?handler f x y is similar to wrap but for binary functions.
or_lazy ~else_ o is o if o is Some _, else_ () if o is None.
choice lo returns the first non-None element of the list lo, or None.
return_if b x applies Some or None depending on the boolean b. More precisely, return_if false x is None, and return_if true x is Some x.
include module type of Infixf <*> o returns Some (f x) if o is Some x and None if o is None.
of_list l returns Some x (x being the head of the list l), or None if l is the empty list.
to_result e o returns Ok x if o is Some x, or Error e if o is None.
to_result_lazy f o returns Ok x if o is Some x or Error f if o is None.
choice_iter iter is similar to choice, but works on iter. It returns the first Some x occurring in iter, or None otherwise.
choice_seq seq works on Seq.t. It returns the first Some x occurring in seq, or None otherwise.
to_gen o is o as a gen. Some x is the singleton gen containing x and None is the empty gen.
to_iter o returns an internal iterator, like in the library Iter.