sig
  type t
  val create : int -> Netbuffer.t
  val contents : Netbuffer.t -> string
  val sub : Netbuffer.t -> int -> int -> string
  val blit : Netbuffer.t -> int -> string -> int -> int -> unit
  val length : Netbuffer.t -> int
  val add_string : Netbuffer.t -> string -> unit
  val add_sub_string : Netbuffer.t -> string -> int -> int -> unit
  val add_inplace :
    ?len:int -> Netbuffer.t -> (string -> int -> int -> int) -> int
  val insert_string : Netbuffer.t -> int -> string -> unit
  val insert_sub_string : Netbuffer.t -> int -> string -> int -> int -> unit
  val insert_char : Netbuffer.t -> int -> char -> unit
  val delete : Netbuffer.t -> int -> int -> unit
  val clear : Netbuffer.t -> unit
  val try_shrinking : Netbuffer.t -> unit
  val index_from : Netbuffer.t -> int -> char -> int
  val unsafe_buffer : Netbuffer.t -> string
  val print_buffer : Netbuffer.t -> unit
end