sig   module type S =     sig       type elt       type t       val empty : CCRingBuffer.Array.S.t       val make : int -> CCRingBuffer.Array.S.elt -> CCRingBuffer.Array.S.t       val length : CCRingBuffer.Array.S.t -> int       val get : CCRingBuffer.Array.S.t -> int -> CCRingBuffer.Array.S.elt       val set :         CCRingBuffer.Array.S.t -> int -> CCRingBuffer.Array.S.elt -> unit       val sub :         CCRingBuffer.Array.S.t -> int -> int -> CCRingBuffer.Array.S.t       val copy : CCRingBuffer.Array.S.t -> CCRingBuffer.Array.S.t       val blit :         CCRingBuffer.Array.S.t ->         int -> CCRingBuffer.Array.S.t -> int -> int -> unit       val iter :         (CCRingBuffer.Array.S.elt -> unit) -> CCRingBuffer.Array.S.t -> unit     end   module Byte :     sig       type elt = char       type t = Bytes.t       val empty : t       val make : int -> elt -> t       val length : t -> int       val get : t -> int -> elt       val set : t -> int -> elt -> unit       val sub : t -> int -> int -> t       val copy : t -> t       val blit : t -> int -> t -> int -> int -> unit       val iter : (elt -> unit) -> t -> unit     end   module Make :     functor (Elt : sig type t end->       sig         type elt = Elt.t         type t = Elt.t array         val empty : t         val make : int -> elt -> t         val length : t -> int         val get : t -> int -> elt         val set : t -> int -> elt -> unit         val sub : t -> int -> int -> t         val copy : t -> t         val blit : t -> int -> t -> int -> int -> unit         val iter : (elt -> unit) -> t -> unit       end end