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