// only works when owning concept is subclass of ConceptWithChangeListeners sclass ConceptRefVar is IVarWithNotify { Concept.Ref ref; event fireChange; *(Concept.Ref *ref) { ((ConceptWithChangeListeners) ref.concept()).onChange(l0 fireChange); } public void set(A a) { ref.set(a); } public A get() { ret ref!; } }