let error_to_string = function
| `Process (`Exec (bin, cmd), how) ->
  fmt "Executing %S[%s]: %s"
    bin (String.concat ~sep:", " (List.map cmd ~f:(fmt "%S")))
    (match how with
     | `Exn e -> fmt "Exn %s" @@ Printexc.to_string e
     | `Non_zero s -> fmt "Non-zero: %s" s)