sclass FieldAsVar extends VarWithNotify { IHasChangeListeners containingObject; S fieldName; IF0 getter; IVF1 setter; *(IHasChangeListeners *containingObject, S *fieldName, IF0 *getter, IVF1 *setter) { containingObject.onChange(l0 _updateFromObject); } void _updateFromObject { set(getter!); } void fireChange { super.fireChange(); setter.set(get()); } }