module Process:sig..end
   This is low-level enough that you should probably be using Shell instead
   to dispatch processes.
module Status:sig..end
module Command_result:sig..end
val kill : ?is_child:bool ->
       ?wait_for:Core.Std.Time.Span.t ->
       ?signal:Core.Std.Signal.t -> Core.Pid.t -> unitsignal; waiting for wait_for and then
    sending a sigkill.
    You need to set is_child to true when killing child processes or run waitpid
    on them in another.val run : ?timeout:Core.Std.Time.Span.t ->
       ?use_extra_path:bool ->
       ?working_dir:string ->
       ?setuid:int ->
       ?setgid:int ->
       ?env:[ `Extend of (string * string) list | `Replace of (string * string) list ] ->
       ?input:string ->
       ?keep_open:bool ->
       ?stdoutf:(string -> int -> unit) ->
       ?stderrf:(string -> int -> unit) ->
       ?tail_len:int ->
       prog:string -> args:string list -> unit -> Command_result.t