Core_kernel.Set_onceA 'a Set_once.t is like an 'a option ref that can only be set once. A Set_once.t starts out as None, the first set transitions it to Some, and subsequent sets fail.
val sexp_of_t : ('a -> Ppx_sexp_conv_lib.Sexp.t) -> 'a t -> Ppx_sexp_conv_lib.Sexp.tPasses when unset.
include Base.Invariant.S1 with type 'a t := 'a tval invariant : ('a -> unit) -> 'a t -> unitval create : Base.Unit.t -> _ tval set : 'a t -> Source_code_position.t -> 'a -> Base.Unit.t Or_error.tval set_exn : 'a t -> Source_code_position.t -> 'a -> Base.Unit.tval set_if_none : 'a t -> Source_code_position.t -> 'a -> Base.Unit.tset_if_none t here a will do nothing if is_some t, otherwise it will set_exn t
here a.
val get : 'a t -> 'a Base.Option.tval get_exn : 'a t -> Source_code_position.t -> 'aval is_none : _ t -> Base.Bool.tval is_some : _ t -> Base.Bool.tval iter : 'a t -> f:('a -> Base.Unit.t) -> Base.Unit.tmodule Optional_syntax : Optional_syntax.S1 with type 'a t := 'a t with type 'a value := 'amodule Unstable : sig ... endmodule Stable : sig ... end