sig
  type elt
  type buffer = Ringbuffer.R.elt array
  type t
  val create : int -> Ringbuffer.R.t
  val read_space : Ringbuffer.R.t -> int
  val write_space : Ringbuffer.R.t -> int
  val read_advance : Ringbuffer.R.t -> int -> unit
  val write_advance : Ringbuffer.R.t -> int -> unit
  val read : Ringbuffer.R.t -> Ringbuffer.R.buffer -> int -> int -> unit
  val peek : Ringbuffer.R.t -> Ringbuffer.R.buffer -> int -> int -> unit
  val write : Ringbuffer.R.t -> Ringbuffer.R.buffer -> int -> int -> unit
  val transmit :
    Ringbuffer.R.t -> (Ringbuffer.R.buffer -> int -> int -> int) -> int
end