package tezos-protocol-environment

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Make.OptionSource

Option values.

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

  • since 4.08

Options

Sourcetype 'a t = 'a option =
  1. | None
  2. | Some of 'a

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

Sourceval none : 'a option

none is None.

Sourceval some : 'a -> 'a option

some v is Some v.

Sourceval value : 'a option -> default:'a -> 'a

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

Sourceval 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.

Sourceval join : 'a option option -> 'a option

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

Sourceval 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.

Sourceval 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.

Sourceval iter : ('a -> unit) -> 'a option -> unit

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

Predicates and comparisons

Sourceval is_none : 'a option -> bool

is_none o is true iff o is None.

Sourceval is_some : 'a option -> bool

is_some o is true iff o is Some o.

Sourceval 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.

Sourceval 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

Sourceval to_result : none:'e -> 'a option -> ('a, 'e) Pervasives.result

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

Sourceval to_list : 'a option -> 'a list

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

Sourceval (>>=) : 'a option -> ('a -> 'b option) -> 'b option

x >>= f is an infix notation for apply ~f x

Sourceval (>>|) : 'a option -> ('a -> 'b) -> 'b option

x >>| f is an infix notation for map ~f x

Sourceval first_some : 'a option -> 'a option -> 'a option

First input of form Some x, or None if both are None

Sourceval pp : ?default:string -> (Format.formatter -> 'a -> unit) -> Format.formatter -> 'a option -> unit

pp ~default pp fmt x pretty-print value x using pp or default ("None" by default) string if there is no value.

OCaml

Innovation. Community. Security.