functor (Base : Base->
  sig
    type base = Base.t
    type t
    val base : t -> base
    val pos : t -> int
    val length : t -> int
    val create : ?pos:int -> ?len:int -> base -> t
    val blit_to_string : t -> dst:string -> dst_pos:int -> unit
    val blit_to_bigstring : t -> dst:Bigstring.t -> dst_pos:int -> unit
    val blit_from_string : t -> src:string -> src_pos:int -> len:int -> unit
    val blit_from_bigstring :
      t -> src:Bigstring.t -> src_pos:int -> len:int -> unit
    val concat : t list -> t
    val concat_string : t list -> string
    val concat_bigstring : t list -> Bigstring.t
    val of_bigstring : Bigstring.t -> t
    val of_string : string -> t
    val to_bigstring : t -> Bigstring.t
    val to_string : t -> string
    val drop_prefix : t -> int -> t
    val drop_suffix : t -> int -> t
    val prefix : t -> int -> t
    val suffix : t -> int -> t
  end