Ref.Permissionedinclude Ppx_sexp_conv_lib.Sexpable.S2 with type ('a, -'perms) t := ('a, 'perms) tval t_of_sexp : (Sexplib0.Sexp.t -> 'a) -> (Sexplib0.Sexp.t -> 'b) -> Sexplib0.Sexp.t -> ('a, 'b) tval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> ('b -> Sexplib0.Sexp.t) -> ('a, 'b) t -> Sexplib0.Sexp.tinclude Bin_prot.Binable.S2 with type ('a, -'perms) t := ('a, 'perms) tval bin_shape_t : Bin_prot.Shape.t -> Bin_prot.Shape.t -> Bin_prot.Shape.tval bin_size_t : ('a, 'b, ('a, 'b) t) Bin_prot.Size.sizer2val bin_write_t : ('a, 'b, ('a, 'b) t) Bin_prot.Write.writer2val bin_read_t : ('a, 'b, ('a, 'b) t) Bin_prot.Read.reader2val __bin_read_t__ : ('a, 'b, int -> ('a, 'b) t) Bin_prot.Read.reader2val bin_writer_t : ('a, 'b, ('a, 'b) t) Bin_prot.Type_class.S2.writerval bin_reader_t : ('a, 'b, ('a, 'b) t) Bin_prot.Type_class.S2.readerval bin_t : ('a, 'b, ('a, 'b) t) Bin_prot.Type_class.S2.tval create : 'a -> ('a, [< _ Perms.Export.perms ]) tval read_only : ('a, [> Perms.Export.read ]) t -> ('a, Perms.Export.read) tval (!) : ('a, [> Perms.Export.read ]) t -> 'aget and (!) are two names for the same function.
val get : ('a, [> Perms.Export.read ]) t -> 'aval set : ('a, [> Perms.Export.write ]) t -> 'a -> Base.Unit.tset and (:=) are two names for the same function.
val (:=) : ('a, [> Perms.Export.write ]) t -> 'a -> Base.Unit.tval of_ref : 'a Base.Ref.t -> ('a, [< Perms.Export.read_write ]) tval to_ref : ('a, [> Perms.Export.read_write ]) t -> 'a Base.Ref.tval swap : ('a, [> Perms.Export.read_write ]) t -> ('a, [> Perms.Export.read_write ]) t -> Base.Unit.tval replace : ('a, [> Perms.Export.read_write ]) t -> ('a -> 'a) -> Base.Unit.tval set_temporarily : ('a, [> Perms.Export.read_write ]) t -> 'a -> f:(Base.Unit.t -> 'b) -> 'b