sig
  module Array : Array.S
  type t
  exception Empty
  val create : ?bounded:bool -> int -> CCRingBuffer.S.t
  val copy : CCRingBuffer.S.t -> CCRingBuffer.S.t
  val capacity : CCRingBuffer.S.t -> int
  val max_capacity : CCRingBuffer.S.t -> int option
  val length : CCRingBuffer.S.t -> int
  val blit_from : CCRingBuffer.S.t -> Array.t -> int -> int -> unit
  val blit_into : CCRingBuffer.S.t -> Array.t -> int -> int -> int
  val append : CCRingBuffer.S.t -> into:CCRingBuffer.S.t -> unit
  val to_list : CCRingBuffer.S.t -> Array.elt list
  val clear : CCRingBuffer.S.t -> unit
  val reset : CCRingBuffer.S.t -> unit
  val is_empty : CCRingBuffer.S.t -> bool
  val junk_front : CCRingBuffer.S.t -> unit
  val junk_back : CCRingBuffer.S.t -> unit
  val skip : CCRingBuffer.S.t -> int -> unit
  val iter : CCRingBuffer.S.t -> f:(Array.elt -> unit) -> unit
  val iteri : CCRingBuffer.S.t -> f:(int -> Array.elt -> unit) -> unit
  val get_front : CCRingBuffer.S.t -> int -> Array.elt
  val get_back : CCRingBuffer.S.t -> int -> Array.elt
  val push_back : CCRingBuffer.S.t -> Array.elt -> unit
  val peek_front : CCRingBuffer.S.t -> Array.elt
  val peek_back : CCRingBuffer.S.t -> Array.elt
  val take_back : CCRingBuffer.S.t -> Array.elt option
  val take_back_exn : CCRingBuffer.S.t -> Array.elt
  val take_front : CCRingBuffer.S.t -> Array.elt option
  val take_front_exn : CCRingBuffer.S.t -> Array.elt
  val of_array : Array.t -> CCRingBuffer.S.t
  val to_array : CCRingBuffer.S.t -> Array.t
end