sig
  type base = Bigstring.t
  type t
  val base : t -> base
  val pos : t -> int
  val length : t -> int
  val create : base -> pos:int -> len:int -> t
  val blit_to_string : t -> dst:string -> dst_pos:int -> unit
  val blit_to_bigstring :
    t -> dst:Substring_intf.bigstring -> dst_pos:int -> unit
  val blit_from_string : t -> src:string -> src_pos:int -> len:int -> unit
  val blit_from_bigstring :
    t -> src:Substring_intf.bigstring -> src_pos:int -> len:int -> unit
  val concat : t list -> t
  val concat_string : t list -> string
  val concat_bigstring : t list -> Substring_intf.bigstring
  val of_bigstring : Substring_intf.bigstring -> t
  val of_string : string -> t
  val to_bigstring : t -> Substring_intf.bigstring
  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