Module Stdlib.OptionSource
Option values.
Option values explicitly indicate the presence or absence of a value.
Options
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.
val bind :
('a : value_or_null) ('b : value_or_null). 'a option ->
('a -> 'b option) ->
'b option @@ portablebind 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.
val map :
('a : value_or_null) ('b : value_or_null). ('a -> 'b) ->
'a option ->
'b option @@ portablemap f o is None if o is None and Some (f v) if o is Some v.
val fold :
('a : value_or_null) ('b : value_or_null). none:'a ->
some:('b -> 'a) ->
'b option ->
'a @@ portablefold ~none ~some o is none if o is None and some v if o is Some v.
iter f o is f v if o is Some v and () otherwise.
Predicates and comparisons
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.
val equal :
('a : value_or_null). ('a -> 'a -> bool) ->
'a option ->
'a option ->
bool @@ portableequal 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.
val compare :
('a : value_or_null). ('a -> 'a -> int) ->
'a option ->
'a option ->
int @@ portablecompare cmp o0 o1 is a total order on options using cmp to compare values wrapped by Some _. None is smaller than Some _ values.
Converting
val to_result :
('a : value_or_null) ('e : value_or_null). none:'e ->
'a option ->
('a, 'e) Stdlib.result @@ portableto_result ~none o is Ok v if o is Some v and Error none otherwise.
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.