sclass WithTimestamp extends Var { long timestamp; *() {} *(long *timestamp, A value) { super(value); } *(A value) { this(now(), value); } toString { ret toStringWithTimestamp(super.toString()); } S toStringQuoted() { ret toStringWithTimestamp(quote(super.toString())); } S toStringWithTimestamp(S s) { ret s + " at " + localDateWithSeconds(timestamp); } bool olderThanMinutes(double minutes) { ret elapsedMinutes_timestamp(timestamp) >= minutes; } bool olderThanSeconds(double seconds) { ret elapsedSeconds_timestamp(timestamp) >= seconds; } }