Module for the type ref
, mutable indirection cells r
containing a value of type 'a
, accessed with !r
and set by r := a
.
type 'a t
= 'a Base__.Import.Caml .ref
=
{
}
val compare : ('a -> 'a -> int) -> 'a t -> 'a t -> int
val equal : ('a -> 'a -> bool) -> 'a t -> 'a t -> bool
val t_sexp_grammar : Base.Sexp.Private.Raw_grammar.t
val create : 'a -> 'a t
val (!) : 'a t -> 'a
val (:=) : 'a t -> 'a -> unit
val swap : 'a t -> 'a t -> unit
swap t1 t2
swaps the values in t1
and t2
.
val replace : 'a t -> ('a -> 'a ) -> unit
replace t f
is t := f !t
val set_temporarily : 'a t -> 'a -> f:(unit -> 'b ) -> 'b
set_temporarily t a ~f
sets t
to a
, calls f ()
, and then restores t
to its value prior to set_temporarily
being called, whether f
returns or raises.
val sets_temporarily : And_value.t list -> f:(unit -> 'a ) -> 'a
sets_temporarily [ ...; T (ti, ai); ... ] ~f
sets each ti
to ai
, calls f ()
, and then restores all ti
to their value prior to sets_temporarily
being called, whether f
returns or raises.