sig
  type t = Core_extended.Shell.Process.t
  type status =
      [ `Exited of int
      | `Signaled of Async.Std.Signal.t
      | `Timeout of Core_extended.Std.Time.Span.t ]
  type result =
    Core_extended.Shell.Process.result = {
    command : Async_shell.Process.t;
    status : Async_shell.Process.status;
    stdout : string;
    stderr : string;
  }
  exception Failed of Async_shell.Process.result
  val status_to_string : Async_shell.Process.status -> string
  val format_failed : Async_shell.Process.result -> string
end