sig
type nonrec 'a t =
'a RingBuffer.Committed.t = {
mutable contents : 'a RingBuffer.t;
mutable mark : int option;
}
type mark = Weak of int | Uniq of int
val pp_with_mark : Format.formatter -> int * int * 'a t -> unit
val pp : Format.formatter -> 'a t -> unit
val copy : 'a t -> int -> 'a RingBuffer.t
val prepare : 'a t -> int -> 'a RingBuffer.t
val equal : mark -> mark -> bool
val mark : 'a t -> mark
val unmark : mark -> 'a t -> unit
val forget : mark -> 'a t -> unit
val write : 'a t -> 'a Internal_buffer.t -> int -> int -> unit
val write_string : 'a t -> string -> int -> int -> unit
val create_bytes : int -> Internal_buffer.st t
val create_bigstring : int -> Internal_buffer.bs t
val create_by : proof:'a Internal_buffer.t -> int -> 'a t
val size : 'a t -> int
val peek : 'a t -> 'a Internal_buffer.t -> int -> int -> unit
val read : 'a t -> 'a Internal_buffer.t -> int -> int -> unit
val read_space : 'a t -> ('a Internal_buffer.t * int * int) option
val write_space : 'a t -> ('a Internal_buffer.t * int * int) option
val transmit : 'a t -> ('a Internal_buffer.t -> int -> int -> int) -> int
val ravailable : 'a t -> int
val wavailable : 'a t -> int
val radvance : 'a t -> int -> unit
val wadvance : 'a t -> int -> unit
val get : 'a t -> char
val rollback : 'a t -> 'a Internal_buffer.t -> unit
val proof : 'a t -> 'a Internal_buffer.t
val savailable : 'a t -> int
end