`sig module Op : sig type 'a job = Done of 'a | Run of OpamProcess.command * (OpamProcess.result -> 'a OpamProcess.Job.Op.job) val ( @@> ) : OpamProcess.command -> (OpamProcess.result -> 'a OpamProcess.Job.Op.job) -> 'a OpamProcess.Job.Op.job val ( @@+ ) : 'a OpamProcess.Job.Op.job -> ('a -> 'b OpamProcess.Job.Op.job) -> 'b OpamProcess.Job.Op.job val ( @@| ) : 'a OpamProcess.Job.Op.job -> ('a -> 'b) -> 'b OpamProcess.Job.Op.job end val run : 'a OpamProcess.Job.Op.job -> 'a val dry_run : 'a OpamProcess.Job.Op.job -> 'a val catch : (exn -> 'a OpamProcess.Job.Op.job) -> 'a OpamProcess.Job.Op.job -> 'a OpamProcess.Job.Op.job val ignore_errors : default:'a -> ?message:string -> 'a OpamProcess.Job.Op.job -> 'a OpamProcess.Job.Op.job val finally : (unit -> unit) -> 'a OpamProcess.Job.Op.job -> 'a OpamProcess.Job.Op.job val of_list : ?keep_going:bool -> OpamProcess.command list -> (OpamProcess.command * OpamProcess.result) option OpamProcess.Job.Op.job val with_text : string -> 'a OpamProcess.Job.Op.job -> 'a OpamProcess.Job.Op.job end`