sclass Timed extends Var { double ms; settable S description; *() {} *(A value, long *ms) { super(value); } *(A value, double *ms) { super(value); } toString { ret "[" + renderedTime() + "] " + joinNemptiesWithComma(description, super.toString()); } double ms() { ret ms; } double nanos() { ret msToNanos(ms); } S renderedTime aka renderTime() { ret renderElapsedSecondsPleasantly(msToSeconds(ms)); } }