Module Core.Ref

This module extends Base.Ref.

type ('a : value_or_null) t = 'a Base.Ref.t = {
  1. mutable contents : 'a;
}
val bin_shape_t : Bin_prot.Shape.t -> Bin_prot.Shape.t
val bin_size_t : 'a. ('a : value_or_null) Bin_prot.Size.sizer -> ('a : value_or_null) t Bin_prot.Size.sizer
val bin_size_t__local : 'a. ('a : value_or_null) Bin_prot.Size.sizer__local -> ('a : value_or_null) t Bin_prot.Size.sizer__local
val bin_write_t : 'a. ('a : value_or_null) Bin_prot.Write.writer -> ('a : value_or_null) t Bin_prot.Write.writer
val bin_write_t__local : 'a. ('a : value_or_null) Bin_prot.Write.writer__local -> ('a : value_or_null) t Bin_prot.Write.writer__local
val bin_writer_t : 'a. ('a : value_or_null) Bin_prot.Type_class.writer -> ('a : value_or_null) t Bin_prot.Type_class.writer
val bin_read_t : 'a. ('a : value_or_null) Bin_prot.Read.reader -> ('a : value_or_null) t Bin_prot.Read.reader
val __bin_read_t__ : 'a. ('a : value_or_null) Bin_prot.Read.reader -> ('a : value_or_null) t Bin_prot.Read.vtag_reader
val bin_reader_t : 'a. ('a : value_or_null) Bin_prot.Type_class.reader -> ('a : value_or_null) t Bin_prot.Type_class.reader
val bin_t : 'a. ('a : value_or_null) Bin_prot.Type_class.t -> ('a : value_or_null) t Bin_prot.Type_class.t
val quickcheck_generator : 'a. ('a : value_or_null) Ppx_quickcheck_runtime.Base_quickcheck.Generator.t -> ('a : value_or_null) t Ppx_quickcheck_runtime.Base_quickcheck.Generator.t
val quickcheck_observer : 'a. ('a : value_or_null) Ppx_quickcheck_runtime.Base_quickcheck.Observer.t -> ('a : value_or_null) t Ppx_quickcheck_runtime.Base_quickcheck.Observer.t
val quickcheck_shrinker : 'a. ('a : value_or_null) Ppx_quickcheck_runtime.Base_quickcheck.Shrinker.t -> ('a : value_or_null) t Ppx_quickcheck_runtime.Base_quickcheck.Shrinker.t
val typerep_of_t : 'a Typerep_lib.Std.Typerep.t -> 'a t Typerep_lib.Std.Typerep.t @@ portable
val typename_of_t : 'a Typerep_lib.Std.Typename.t -> 'a t Typerep_lib.Std.Typename.t @@ portable
val compare : 'a. (('a : value_or_null) -> ('a : value_or_null) -> int) -> ('a : value_or_null) t -> ('a : value_or_null) t -> int
val compare__local : 'a. (('a : value_or_null) @ local -> (('a : value_or_null) @ local -> int) @ local) -> ('a : value_or_null) t @ local -> (('a : value_or_null) t @ local -> int) @ local
val equal : 'a. (('a : value_or_null) -> ('a : value_or_null) -> bool) -> ('a : value_or_null) t -> ('a : value_or_null) t -> bool
val equal__local : 'a. (('a : value_or_null) @ local -> (('a : value_or_null) @ local -> bool) @ local) -> ('a : value_or_null) t @ local -> (('a : value_or_null) t @ local -> bool) @ local
val globalize : 'a. ('a @ local -> 'a) -> 'a t @ local -> 'a t
val sexp_of_t : 'a. (('a : value_or_null) -> Sexplib0.Sexp.t) -> ('a : value_or_null) t -> Sexplib0.Sexp.t
val sexp_of_t__stack : 'a. (('a : value_or_null) @ local -> Sexplib0.Sexp.t @ local) -> ('a : value_or_null) t @ local -> Sexplib0.Sexp.t @ local
val t_of_sexp : 'a. (Sexplib0.Sexp.t -> ('a : value_or_null)) -> Sexplib0.Sexp.t -> ('a : value_or_null) t
val t_sexp_grammar : 'a. ('a : value_or_null) Sexplib0.Sexp_grammar.t -> ('a : value_or_null) t Sexplib0.Sexp_grammar.t @@ portable
val create : 'a. 'a -> 'a t @@ portable
val (!) : 'a. 'a t -> 'a @@ portable
val (:=) : 'a. 'a t -> 'a -> unit @@ portable
val swap : 'a. 'a t -> 'a t -> unit @@ portable

swap t1 t2 swaps the values in t1 and t2.

val replace : 'a. 'a t -> ('a -> 'a) @ local -> unit @@ portable

replace t f is t := f !t

val set_temporarily : 'a 'b. 'a t -> 'a -> f:(unit -> 'b) @ local -> 'b @@ portable

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.

module And_value = Base.Ref.And_value
val sets_temporarily : And_value.t list -> f:(unit -> 'a) @ local -> 'a @@ portable

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.

module Permissioned : sig ... end