sclass FieldVar extends VarWithNotify { IHasChangeListeners containingObject; S fieldName; IF0 getter; IVF1 setter; *(IHasChangeListeners *containingObject, S *fieldName, IF0 *getter, IVF1 *setter) { containingObject.onChangeAndNow(l0 _updateFromObject); } void _updateFromObject { set(getter!); } public void fireChange :: after { setter.get(get()); } }