val create : 'a -> 'a t
val (!) : 'a t -> 'a
val (:=) : 'a t -> 'a -> unit
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.