sig   val filename : string -> string -> string   val pp_to_file : string -> (Format.formatter -> unit) -> unit   val pp_from_file : Format.formatter -> string -> unit   val bincopy :     bytes -> Pervasives.in_channel -> Pervasives.out_channel -> unit   val copy : string -> string -> unit   val read_file : string -> (Pervasives.in_channel -> 'a) -> 'a   val read_lines : string -> (string -> unit) -> unit   val write_file : string -> (Pervasives.out_channel -> 'a) -> 'a   val print_file : string -> (Format.formatter -> 'a) -> 'a   type timer = float Pervasives.ref   type 'a result = Result of '| Error of exn   val catch : ('-> 'b) -> '-> 'Command.result   val return : 'Command.result -> 'a   val time :     ?rmax:Command.timer -> ?radd:Command.timer -> ('-> 'b) -> '-> 'b   val full_command :     string ->     string array ->     stdin:Unix.file_descr ->     stdout:Unix.file_descr -> stderr:Unix.file_descr -> Unix.process_status   type process_result =       Not_ready of (unit -> unit)     | Result of Unix.process_status   val full_command_async :     string ->     string array ->     stdin:Unix.file_descr ->     stdout:Unix.file_descr ->     stderr:Unix.file_descr -> unit -> Command.process_result   val command_async :     ?stdout:Buffer.t ->     ?stderr:Buffer.t ->     string -> string array -> unit -> Command.process_result   val command :     ?timeout:int ->     ?stdout:Buffer.t ->     ?stderr:Buffer.t -> string -> string array -> Unix.process_status end