sclass WithTimestamp extends Var { long timestamp; Timestamp getTimestamp aka timestamp aka timeStamp() { ret timestamp == 0 ? null : Timestamp(timestamp); } *() {} *(long *timestamp, A value) { super(value); } *(A value) { this(now(), value); } Timestamp timestampObj() { ret timestamp == 0 ? null : Timestamp(timestamp); } long unixDate() { ret timestamp; } 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; } }