Module Core_kernel.Set_once

This module implements an option ref that starts out as None, and may be set only once. If one tries to set it twice a run time error is generated.

exception Already_set
type 'a t
include sig ... end
val t_of_sexp : (Sexplib.Sexp.t ‑> 'a) ‑> Sexplib.Sexp.t ‑> 'a t
val sexp_of_t : ('a ‑> Sexplib.Sexp.t) ‑> 'a t ‑> Sexplib.Sexp.t
val bin_read_t : 'a Bin_prot.Read.reader ‑> 'a t Bin_prot.Read.reader
val bin_size_t : 'a Bin_prot.Size.sizer ‑> 'a t Bin_prot.Size.sizer
val bin_write_t : 'a Bin_prot.Write.writer ‑> 'a t Bin_prot.Write.writer
val bin_shape_t : Bin_prot.Shape.t ‑> Bin_prot.Shape.t

Passes when unset.

include Core_kernel__.Import.Invariant.S1 with type t := a t
type 'a t
val create : Core_kernel__.Import.unit ‑> 'a t
val set : 'a t ‑> 'a ‑> (Core_kernel__.Import.unitCore_kernel__.Import.stringResult.t
val set_exn : 'a t ‑> 'a ‑> Core_kernel__.Import.unit
val get : 'a t ‑> 'a Core_kernel__.Import.option
val get_exn : 'a t ‑> 'a