sig
  type t =
      (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
  exception IOError of int * exn
  val create : ?max_mem_waiting_gc:Byte_units.t -> int -> t
  val init : int -> f:(int -> char) -> t
  val of_string : ?pos:int -> ?len:int -> string -> t
  val to_string : ?pos:int -> ?len:int -> t -> string
  val check_args : loc:string -> pos:int -> len:int -> t -> unit
  val get_opt_len : t -> pos:int -> int option -> int
  val length : t -> int
  val sub : ?pos:int -> ?len:int -> t -> t
  val sub_shared : ?pos:int -> ?len:int -> t -> t
  val get : t -> int -> char
  val set : t -> int -> char -> unit
  external is_mmapped : t -> bool = "bigstring_is_mmapped_stub" "noalloc"
  type ('src, 'dst) blit =
      src:'src ->
      ?src_pos:int ->
      ?src_len:int -> dst:'dst -> ?dst_pos:int -> unit -> unit
  val blit : (t, t) blit
  val blit_string_bigstring : (string, t) blit
  val blit_bigstring_string : (t, string) blit
  val read :
    ?min_len:int -> Unix.file_descr -> ?pos:int -> ?len:int -> t -> int
  val really_read : Unix.file_descr -> ?pos:int -> ?len:int -> t -> unit
  val really_recv : Unix.file_descr -> ?pos:int -> ?len:int -> t -> unit
  val recvfrom_assume_fd_is_nonblocking :
    Unix.file_descr -> ?pos:int -> ?len:int -> t -> int * Unix.sockaddr
  val read_assume_fd_is_nonblocking :
    Unix.file_descr -> ?pos:int -> ?len:int -> t -> int
  val input : ?min_len:int -> in_channel -> ?pos:int -> ?len:int -> t -> int
  val really_input : in_channel -> ?pos:int -> ?len:int -> t -> unit
  val really_write : Unix.file_descr -> ?pos:int -> ?len:int -> t -> unit
  val really_send_no_sigpipe :
    (Unix.file_descr -> ?pos:int -> ?len:int -> t -> unit) Or_error.t
  val send_nonblocking_no_sigpipe :
    (Unix.file_descr -> ?pos:int -> ?len:int -> t -> int option) Or_error.t
  val sendto_nonblocking_no_sigpipe :
    (Unix.file_descr ->
     ?pos:int -> ?len:int -> t -> Unix.sockaddr -> int option)
    Or_error.t
  val write : Unix.file_descr -> ?pos:int -> ?len:int -> t -> int
  val write_assume_fd_is_nonblocking :
    Unix.file_descr -> ?pos:int -> ?len:int -> t -> int
  val writev :
    Unix.file_descr -> ?count:int -> t Unix.IOVec.t array -> int
  val writev_assume_fd_is_nonblocking :
    Unix.file_descr -> ?count:int -> t Unix.IOVec.t array -> int
  val sendmsg_nonblocking_no_sigpipe :
    (Unix.file_descr -> ?count:int -> t Unix.IOVec.t array -> int option)
    Or_error.t
  val output :
    ?min_len:int -> out_channel -> ?pos:int -> ?len:int -> t -> int
  val really_output : out_channel -> ?pos:int -> ?len:int -> t -> unit
  val map_file : shared:bool -> Unix.file_descr -> int -> t
  external unsafe_blit :
    src:t -> src_pos:int -> dst:t -> dst_pos:int -> len:int -> unit
    = "bigstring_blit_stub"
  external unsafe_blit_string_bigstring :
    src:string -> src_pos:int -> dst:t -> dst_pos:int -> len:int -> unit
    = "bigstring_blit_string_bigstring_stub" "noalloc"
  external unsafe_blit_bigstring_string :
    src:t -> src_pos:int -> dst:string -> dst_pos:int -> len:int -> unit
    = "bigstring_blit_bigstring_string_stub" "noalloc"
  external unsafe_read_assume_fd_is_nonblocking :
    Unix.file_descr -> pos:int -> len:int -> t -> int
    = "bigstring_read_assume_fd_is_nonblocking_stub"
  external unsafe_write : Unix.file_descr -> pos:int -> len:int -> t -> int
    = "bigstring_write_stub"
  external unsafe_write_assume_fd_is_nonblocking :
    Unix.file_descr -> pos:int -> len:int -> t -> int
    = "bigstring_write_assume_fd_is_nonblocking_stub"
  external unsafe_read :
    min_len:int -> Unix.file_descr -> pos:int -> len:int -> t -> int
    = "bigstring_read_stub"
  external unsafe_really_recv :
    Unix.file_descr -> pos:int -> len:int -> t -> unit
    = "bigstring_really_recv_stub"
  external unsafe_input :
    min_len:int -> in_channel -> pos:int -> len:int -> t -> int
    = "bigstring_input_stub"
  external unsafe_really_write :
    Unix.file_descr -> pos:int -> len:int -> t -> unit
    = "bigstring_really_write_stub"
  val unsafe_really_send_no_sigpipe :
    (Unix.file_descr -> pos:int -> len:int -> t -> unit) Or_error.t
  val unsafe_send_nonblocking_no_sigpipe :
    (Unix.file_descr -> pos:int -> len:int -> t -> int option) Or_error.t
  external unsafe_output :
    min_len:int -> out_channel -> pos:int -> len:int -> t -> int
    = "bigstring_output_stub"
  external unsafe_writev :
    Unix.file_descr -> t Unix.IOVec.t array -> int -> int
    = "bigstring_writev_stub"
  val unsafe_sendmsg_nonblocking_no_sigpipe :
    (Unix.file_descr -> t Unix.IOVec.t array -> int -> int option)
    Or_error.t
  val find : ?pos:int -> ?len:int -> char -> t -> int option
  external unsafe_destroy : t -> unit = "bigstring_destroy_stub"
  val unsafe_get_int16_le : t -> pos:int -> int
  val unsafe_get_int16_be : t -> pos:int -> int
  val unsafe_set_int16_le : t -> pos:int -> int -> unit
  val unsafe_set_int16_be : t -> pos:int -> int -> unit
  val unsafe_get_uint16_le : t -> pos:int -> int
  val unsafe_get_uint16_be : t -> pos:int -> int
  val unsafe_set_uint16_le : t -> pos:int -> int -> unit
  val unsafe_set_uint16_be : t -> pos:int -> int -> unit
  val unsafe_get_int32_le : t -> pos:int -> int
  val unsafe_get_int32_be : t -> pos:int -> int
  val unsafe_set_int32_le : t -> pos:int -> int -> unit
  val unsafe_set_int32_be : t -> pos:int -> int -> unit
  val unsafe_get_int64_le_exn : t -> pos:int -> int
  val unsafe_get_int64_be_exn : t -> pos:int -> int
  val unsafe_set_int64_le : t -> pos:int -> int -> unit
  val unsafe_set_int64_be : t -> pos:int -> int -> unit
  val unsafe_get_int32_t_le : t -> pos:int -> Int32.t
  val unsafe_get_int32_t_be : t -> pos:int -> Int32.t
  val unsafe_set_int32_t_le : t -> pos:int -> Int32.t -> unit
  val unsafe_set_int32_t_be : t -> pos:int -> Int32.t -> unit
  val unsafe_get_int64_t_le : t -> pos:int -> Int64.t
  val unsafe_get_int64_t_be : t -> pos:int -> Int64.t
  val unsafe_set_int64_t_le : t -> pos:int -> Int64.t -> unit
  val unsafe_set_int64_t_be : t -> pos:int -> Int64.t -> unit
  val t_of_sexp : Sexplib.Sexp.t -> t
  val sexp_of_t : t -> Sexplib.Sexp.t
  val bin_t : t Bin_prot.Type_class.t
  val bin_read_t : t Bin_prot.Read_ml.reader
  val bin_read_t_ : t Bin_prot.Unsafe_read_c.reader
  val bin_read_t__ : (int -> t) Bin_prot.Unsafe_read_c.reader
  val bin_reader_t : t Bin_prot.Type_class.reader
  val bin_size_t : t Bin_prot.Size.sizer
  val bin_write_t : t Bin_prot.Write_ml.writer
  val bin_write_t_ : t Bin_prot.Unsafe_write_c.writer
  val bin_writer_t : t Bin_prot.Type_class.writer
  val ounit_tests : unit -> OUnit.test
end