sig
  val input_of_descr :
    ?autoclose:bool -> ?cleanup:bool -> Unix.file_descr -> BatInnerIO.input
  val output_of_descr :
    ?cleanup:bool -> Unix.file_descr -> unit BatInnerIO.output
  val descr_of_input : BatInnerIO.input -> Unix.file_descr
  val descr_of_output : unit BatInnerIO.output -> Unix.file_descr
  val open_process_in :
    ?autoclose:bool -> ?cleanup:bool -> string -> BatInnerIO.input
  val open_process_out : ?cleanup:bool -> string -> unit BatInnerIO.output
  val open_process :
    ?autoclose:bool ->
    ?cleanup:bool -> string -> BatInnerIO.input * unit BatInnerIO.output
  val open_process_full :
    ?autoclose:bool ->
    ?cleanup:bool ->
    string ->
    string array ->
    BatInnerIO.input * unit BatInnerIO.output * BatInnerIO.input
  val close_process_in : BatInnerIO.input -> Unix.process_status
  val close_process_out : unit BatInnerIO.output -> Unix.process_status
  val close_process :
    BatInnerIO.input * unit BatInnerIO.output -> Unix.process_status
  val close_process_full :
    BatInnerIO.input * unit BatInnerIO.output * BatInnerIO.input ->
    Unix.process_status
  val open_connection :
    ?autoclose:bool ->
    Unix.sockaddr -> BatInnerIO.input * unit BatInnerIO.output
  val shutdown_connection : BatInnerIO.input -> unit
  val establish_server :
    ?autoclose:bool ->
    ?cleanup:bool ->
    (BatInnerIO.input -> unit BatInnerIO.output -> unit) ->
    Unix.sockaddr -> unit
  val is_directory : string -> bool
  val lock : BatConcurrent.lock Pervasives.ref
  val in_channel_of_descr : Unix.file_descr -> BatInnerIO.input
  val out_channel_of_descr : Unix.file_descr -> unit BatInnerIO.output
  val descr_of_in_channel : BatInnerIO.input -> Unix.file_descr
  val descr_of_out_channel : unit BatInnerIO.output -> Unix.file_descr
end