sig
  type flag = MOVE | NONBLOCK | MORE | GIFT
  type flags
  val make_flags :
    Extended_linux.Splice.flag array -> Extended_linux.Splice.flags
  val splice :
    (?assume_fd_is_nonblocking:bool ->
     fd_in:Core.Std.Unix.File_descr.t ->
     ?off_in:int ->
     fd_out:Core.Std.Unix.File_descr.t ->
     ?off_out:int ->
     len:int -> Extended_linux.Splice.flags -> int * int * int)
    Core.Std.Or_error.t
  val tee :
    (?assume_fd_is_nonblocking:bool ->
     fd_in:Core.Std.Unix.File_descr.t ->
     fd_out:Core.Std.Unix.File_descr.t ->
     int -> Extended_linux.Splice.flags -> int)
    Core.Std.Or_error.t
  val vmsplice :
    (?assume_fd_is_nonblocking:bool ->
     Core.Std.Unix.File_descr.t ->
     Core.Std.Bigstring.t Core.Std.Unix.IOVec.t array ->
     ?count:int -> Extended_linux.Splice.flags -> int)
    Core.Std.Or_error.t
  val bin_flag : Extended_linux.Splice.flag Core.Std.Bin_prot.Type_class.t
  val bin_read_flag :
    Extended_linux.Splice.flag Core.Std.Bin_prot.Read.reader
  val __bin_read_flag__ :
    (int -> Extended_linux.Splice.flag) Core.Std.Bin_prot.Read.reader
  val bin_reader_flag :
    Extended_linux.Splice.flag Core.Std.Bin_prot.Type_class.reader
  val bin_size_flag : Extended_linux.Splice.flag Core.Std.Bin_prot.Size.sizer
  val bin_write_flag :
    Extended_linux.Splice.flag Core.Std.Bin_prot.Write.writer
  val bin_writer_flag :
    Extended_linux.Splice.flag Core.Std.Bin_prot.Type_class.writer
  val flag_of_sexp : Sexplib.Sexp.t -> Extended_linux.Splice.flag
  val sexp_of_flag : Extended_linux.Splice.flag -> Sexplib.Sexp.t
end