transient L onChange = syncList(); void change { pcallFAll(onChange); } selfType onChange(Runnable r) { onChange.add(r); this; } void removeChangeListener(Runnable r) { onChange.remove(r); }