jon.recoil.org

Module Stdlib.OptionSource

Option values.

Option values explicitly indicate the presence or absence of a value.

Options

Sourcetype ('a : value_or_null) t = 'a option =
  1. | None
  2. | Some of 'a

The type for option values. Either None or a value Some v.

Sourceval none : ('a : value_or_null). 'a option @@ portable

none is None.

Sourceval some : ('a : value_or_null). 'a -> 'a option @@ portable

some v is Some v.

Sourceval value : ('a : value_or_null). 'a option -> default:'a -> 'a @@ portable

value o ~default is v if o is Some v and default otherwise.

Sourceval get : ('a : value_or_null). 'a option -> 'a @@ portable

get o is v if o is Some v and raise otherwise.

Sourceval bind : ('a : value_or_null) ('b : value_or_null). 'a option -> ('a -> 'b option) -> 'b option @@ portable

bind o f is f v if o is Some v and None if o is None.

Sourceval join : ('a : value_or_null). 'a option option -> 'a option @@ portable

join oo is Some v if oo is Some (Some v) and None otherwise.

Sourceval map : ('a : value_or_null) ('b : value_or_null). ('a -> 'b) -> 'a option -> 'b option @@ portable

map f o is None if o is None and Some (f v) if o is Some v.

Sourceval fold : ('a : value_or_null) ('b : value_or_null). none:'a -> some:('b -> 'a) -> 'b option -> 'a @@ portable

fold ~none ~some o is none if o is None and some v if o is Some v.

Sourceval iter : ('a : value_or_null). ('a -> unit) -> 'a option -> unit @@ portable

iter f o is f v if o is Some v and () otherwise.

Predicates and comparisons

Sourceval is_none : ('a : value_or_null). 'a option -> bool @@ portable

is_none o is true if and only if o is None.

Sourceval is_some : ('a : value_or_null). 'a option -> bool @@ portable

is_some o is true if and only if o is Some o.

Sourceval equal : ('a : value_or_null). ('a -> 'a -> bool) -> 'a option -> 'a option -> bool @@ portable

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.

Sourceval compare : ('a : value_or_null). ('a -> 'a -> int) -> 'a option -> 'a option -> int @@ portable

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

Sourceval to_result : ('a : value_or_null) ('e : value_or_null). none:'e -> 'a option -> ('a, 'e) Stdlib.result @@ portable

to_result ~none o is Ok v if o is Some v and Error none otherwise.

Sourceval to_list : ('a : value_or_null). 'a option -> 'a list @@ portable

to_list o is [] if o is None and [v] if o is Some v.

Sourceval to_seq : ('a : value_or_null). 'a option -> 'a Stdlib.Seq.t @@ portable

to_seq o is o as a sequence. None is the empty sequence and Some v is the singleton sequence containing v.