Module Option
module Option:sig
..end
Option values.
Option values explicitly indicate the presence or absence of a value.
- Since 4.08
Options
type'a
t ='a option
=
| |
None |
| |
Some of |
The type for option values. Either None
or a value Some v
.
val none : 'a option
none
is None
.
val some : 'a -> 'a option
some v
is Some v
.
val value : 'a option -> default:'a -> 'a
value o ~default
is v
if o
is Some v
and default
otherwise.
val get : 'a option -> 'a
get o
is v
if o
is Some v
and
- Raises
Invalid_argument
otherwise.
val bind : 'a option -> ('a -> 'b option) -> 'b option
bind o f
is f v
if o
is Some v
and None
if o
is None
.
val join : 'a option option -> 'a option
join oo
is Some v
if oo
is Some (Some v)
and None
otherwise.
val map : ('a -> 'b) -> 'a option -> 'b option
map f o
is None
if o
is None
and Some (f v)
is o
is Some v
.
val fold : none:'a -> some:('b -> 'a) -> 'b option -> 'a
fold ~none ~some o
is none
if o
is None
and some v
if o
is
Some v
.
val iter : ('a -> unit) -> 'a option -> unit
iter f o
is f v
if o
is Some v
and ()
otherwise.
Predicates and comparisons
val is_none : 'a option -> bool
is_none o
is true
iff o
is None
.
val is_some : 'a option -> bool
is_some o
is true
iff o
is Some o
.
val equal : ('a -> 'a -> bool) -> 'a option -> 'a option -> bool
equal eq o0 o1
is true
iff o0
and o1
are both None
or if
they are Some v0
and Some v1
and eq v0 v1
is true
.
val compare : ('a -> 'a -> int) -> 'a option -> 'a option -> int
compare 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 : none:'e -> 'a option -> ('a, 'e) result
to_result ~none o
is Ok v
if o
is Some v
and Error none
otherwise.
val to_list : 'a option -> 'a list
to_list o
is []
if o
is None
and [v]
if o
is Some v
.
val to_seq : 'a option -> 'a Seq.t
to_seq o
is o
as a sequence. None
is the empty sequence and
Some v
is the singleton sequence containing v
.