Module Ref.Permissioned

type ('a, -'perms) t
include Ppx_sexp_conv_lib.Sexpable.S2 with type ('a, -'perms) t := ('a'perms) t
val t_of_sexp : (Sexplib0.Sexp.t -> 'a) -> (Sexplib0.Sexp.t -> 'b) -> Sexplib0.Sexp.t -> ('a'b) t
val sexp_of_t : ('a -> Sexplib0.Sexp.t) -> ('b -> Sexplib0.Sexp.t) -> ('a'b) t -> Sexplib0.Sexp.t
include Bin_prot.Binable.S2 with type ('a, -'perms) t := ('a'perms) t
val bin_size_t : ('a'b('a'b) t) Bin_prot.Size.sizer2
val bin_write_t : ('a'b('a'b) t) Bin_prot.Write.writer2
val bin_read_t : ('a'b('a'b) t) Bin_prot.Read.reader2
val __bin_read_t__ : ('a'bint -> ('a'b) t) Bin_prot.Read.reader2
val bin_writer_t : ('a'b('a'b) t) Bin_prot.Type_class.S2.writer
val bin_reader_t : ('a'b('a'b) t) Bin_prot.Type_class.S2.reader
val bin_t : ('a'b('a'b) t) Bin_prot.Type_class.S2.t
val create : 'a -> ('a[< _ Perms.Export.perms ]) t
val read_only : ('a[> Perms.Export.read ]) t -> ('aPerms.Export.read) t
val (!) : ('a[> Perms.Export.read ]) t -> 'a

get and (!) are two names for the same function.

val get : ('a[> Perms.Export.read ]) t -> 'a
val set : ('a[> Perms.Export.write ]) t -> 'a -> Base.Unit.t

set and (:=) are two names for the same function.

val (:=) : ('a[> Perms.Export.write ]) t -> 'a -> Base.Unit.t
val of_ref : 'a Base.Ref.t -> ('a[< Perms.Export.read_write ]) t
val to_ref : ('a[> Perms.Export.read_write ]) t -> 'a Base.Ref.t
val swap : ('a[> Perms.Export.read_write ]) t -> ('a[> Perms.Export.read_write ]) t -> Base.Unit.t
val replace : ('a[> Perms.Export.read_write ]) t -> ('a -> 'a) -> Base.Unit.t
val set_temporarily : ('a[> Perms.Export.read_write ]) t -> 'a -> f:(Base.Unit.t -> 'b) -> 'b