sclass SimpleLiveValue<A> extends LiveValue<A> is IVarWithNotify<A> { event change; Class<A> type; volatile A value; *(Class<A> *type) {} *(Class<A> *type, A *value) {} public Class<A> getType() { ret type; } public A get() { ret value; } void fireChanged { change(); } public void set(A a) { if (neq(value, a)) { value = a; fireChanged(); } } }