package stdune

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

Optional values

type 'a t = 'a option =
  1. | None
  2. | Some of 'a
module O : sig ... end
val map : 'a t -> f:('a -> 'b) -> 'b t
val bind : 'a t -> f:('a -> 'b t) -> 'b t
val iter : 'a t -> f:('a -> unit) -> unit
val forall : 'a t -> f:('a -> bool) -> bool
val value : 'a t -> default:'a -> 'a
val value_exn : 'a t -> 'a
val some : 'a -> 'a t
val some_if : bool -> 'a -> 'a t
val is_some : _ t -> bool
val is_none : _ t -> bool
val both : 'a t -> 'b t -> ('a * 'b) t
val split : ('a * 'b) t -> 'a t * 'b t
val to_list : 'a t -> 'a list
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
val hash : ('a -> int) -> 'a t -> int
val first_some : 'a t -> 'a t -> 'a t

first_some t1 t2 returns t1 if it has an underlying value, or t2 otherwise.

val compare : ('a -> 'a -> Ordering.t) -> 'a t -> 'a t -> Ordering.t
val try_with : (unit -> 'a) -> 'a option
module List : sig ... end
val merge : 'a t -> 'a t -> f:('a -> 'a -> 'a) -> 'a t
module Unboxed : sig ... end

A poor man's unboxed option type. The value stored must not be immediate, unless it is a non-negative integer. In particular, unboxed options cannot be nested.

OCaml

Innovation. Community. Security.