sig
  type 'a gen = unit -> 'a option
  type 'a sequence = ('-> unit) -> unit
  type 'a printer = Format.formatter -> '-> unit
  type t =
      (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
  val create : int -> Bigstring.t
  val empty : Bigstring.t
  val init : int -> (int -> char) -> Bigstring.t
  val fill : Bigstring.t -> char -> unit
  val fill_slice : Bigstring.t -> char -> int -> int -> unit
  val size : Bigstring.t -> int
  val length : Bigstring.t -> int
  val get : Bigstring.t -> int -> char
  val unsafe_get : Bigstring.t -> int -> char
  val set : Bigstring.t -> int -> char -> unit
  val unsafe_set : Bigstring.t -> int -> char -> unit
  val blit : Bigstring.t -> int -> Bigstring.t -> int -> int -> unit
  val copy : Bigstring.t -> Bigstring.t
  val sub : Bigstring.t -> int -> int -> Bigstring.t
  val fold : ('-> char -> 'a) -> '-> Bigstring.t -> 'a
  val foldi : ('-> int -> char -> 'a) -> '-> Bigstring.t -> 'a
  val iter : (char -> unit) -> Bigstring.t -> unit
  val iteri : (int -> char -> unit) -> Bigstring.t -> unit
  val equal : Bigstring.t -> Bigstring.t -> bool
  val compare : Bigstring.t -> Bigstring.t -> int
  val to_bytes : Bigstring.t -> Bytes.t
  val of_bytes : Bytes.t -> Bigstring.t
  val of_bytes_slice : Bytes.t -> int -> int -> Bigstring.t
  val sub_bytes : Bigstring.t -> int -> int -> Bytes.t
  val blit_to_bytes : Bigstring.t -> int -> Bytes.t -> int -> int -> unit
  val blit_of_bytes : Bytes.t -> int -> Bigstring.t -> int -> int -> unit
  val blit_of_buffer : Buffer.t -> int -> Bigstring.t -> int -> int -> unit
  val to_string : Bigstring.t -> string
  val of_string : string -> Bigstring.t
  val of_string_slice : string -> int -> int -> Bigstring.t
  val of_buffer : Buffer.t -> Bigstring.t
  val of_gen : char Bigstring.gen -> Bigstring.t
  val sub_string : Bigstring.t -> int -> int -> string
  val blit_of_string : string -> int -> Bigstring.t -> int -> int -> unit
  val to_seq : Bigstring.t -> char Bigstring.sequence
  val to_gen : Bigstring.t -> char Bigstring.gen
  val to_seq_slice : Bigstring.t -> int -> int -> char Bigstring.sequence
  val to_gen_slice : Bigstring.t -> int -> int -> char Bigstring.gen
  val to_buffer : Bigstring.t -> Buffer.t -> unit
  val print : Bigstring.t Bigstring.printer
  val concat : string -> Bigstring.t list -> Bigstring.t
  val map : f:(char -> char) -> Bigstring.t -> Bigstring.t
  val mapi : f:(int -> char -> char) -> Bigstring.t -> Bigstring.t
  val lowercase : Bigstring.t -> Bigstring.t
  val uppercase : Bigstring.t -> Bigstring.t
  val trim : Bigstring.t -> Bigstring.t
  val index : Bigstring.t -> c:char -> int
  val rindex : Bigstring.t -> c:char -> int
  val index_pred : f:(char -> bool) -> Bigstring.t -> int
  val rindex_pred : f:(char -> bool) -> Bigstring.t -> int
  val contains : Bigstring.t -> c:char -> bool
  val for_all : f:(char -> bool) -> Bigstring.t -> bool
  val exists : f:(char -> bool) -> Bigstring.t -> bool
  val split : by:char -> Bigstring.t -> Bigstring.t list
  val split_gen : by:char -> Bigstring.t -> Bigstring.t Bigstring.gen
  val lines : Bigstring.t -> Bigstring.t list
  val lines_gen : Bigstring.t -> Bigstring.t Bigstring.gen
  val with_map_file :
    ?pos:int64 ->
    ?len:int ->
    ?mode:int ->
    ?flags:Pervasives.open_flag list ->
    ?shared:bool -> string -> (Bigstring.t -> 'a) -> 'a
  val map_file_descr :
    ?pos:int64 -> ?shared:bool -> Unix.file_descr -> int -> Bigstring.t
end