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