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());
}));
}
A get() { ret result!!; }
}