Legend:
Library
Module
Module type
Parameter
Class
Class type
Syntax module for Option. This is intended to be opened locally in functions which use option for control-flow. Within the scope of this module, the code can include binding operators, leading to a let-style syntax.
See also Option
val return : 'a->'a option
return x is Some x.
val fail : 'a option
fail is None. It is also an alias for Option.none.
val return_unit : unit option
return_unit is Some ().
val return_nil : 'a list option
return_nil is Some [].
val return_true : bool option
return_true is Some true.
val return_false : bool option
return_false is Some false.
Note that we do not provide return_some nor return_none. Both of these functions are possible but somewhat confusing and rarely useful in practice. If you need to carry options within a Option-monad computation (yielding to values of the type 'a option option), you need to do so by hand: return (Some …) and return None.
val let* : 'a option->('a->'b option)->'b option
let* is a binding operator alias for Option.bind.
val and* : 'a option->'b option->('a * 'b) option
and* is a binding operator alias for both.
val let+ : 'a option->('a->'b)->'b option
let+ is a binding operator alias for Option.map.
val and+ : 'a option->'b option->('a * 'b) option
and+ is a binding operator alias for both.
val both : 'a option->'b option->('a * 'b) option
both is the joining of two optional non-unit values. both a b is Some (x, y) iff a is Some x and b is Some y.