sig
  type 'buf t = private { buf : 'buf; pos : int; len : int; }
  type 'buf kind
  type bigstring =
      (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t
  val string_kind : string Unix.IOVec.kind
  val bigstring_kind : Unix.IOVec.bigstring Unix.IOVec.kind
  val empty : 'buf Unix.IOVec.kind -> 'buf Unix.IOVec.t
  val of_string : ?pos:int -> ?len:int -> string -> string Unix.IOVec.t
  val of_bigstring :
    ?pos:int ->
    ?len:int ->
    Unix.IOVec.bigstring -> Unix.IOVec.bigstring Unix.IOVec.t
  val drop : 'buf Unix.IOVec.t -> int -> 'buf Unix.IOVec.t
  val max_iovecs : int
  val t_of_sexp :
    (Sexplib.Sexp.t -> 'buf) -> Sexplib.Sexp.t -> 'buf Unix.IOVec.t
  val sexp_of_t :
    ('buf -> Sexplib.Sexp.t) -> 'buf Unix.IOVec.t -> Sexplib.Sexp.t
end