sclass RunResultWithTimestamps { settable Timestamp started; settable Timestamp ended; settable OKOrError result; settable CharSequence printOutput; selfType run(IF0 f) { ret setPrintOutput(hijackPrint_tee(r { started(tsNow()); result(okOrError(f)); ended(tsNow()); })); } }