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; }
}