Base.RefModule for the type ref, mutable indirection cells r containing a value of type 'a, accessed with !r and set by r := a.
include Sexpable.S1 with type 'a t := 'a tval t_of_sexp : ( Sexplib0__.Sexp.t -> 'a ) -> Sexplib0__.Sexp.t -> 'a tval sexp_of_t : ( 'a -> Sexplib0__.Sexp.t ) -> 'a t -> Sexplib0__.Sexp.tval t_sexp_grammar : Sexp.Private.Raw_grammar.tval create : 'a -> 'a tval (!) : 'a t -> 'aval (:=) : 'a t -> 'a -> unitval replace : 'a t -> ( 'a -> 'a ) -> unitreplace t f is t := f !t
val set_temporarily : 'a t -> 'a -> f:( unit -> 'b ) -> 'bset_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.
module And_value : sig ... endval sets_temporarily : And_value.t list -> f:( unit -> 'a ) -> 'asets_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.