concept G22Variable extends ConceptWithChangeListeners is IPersistenceInfo { S name; settableWithVar volatile O value; settable bool persistent; public Map _persistenceInfo() { ret litmap("value", persistent); } O get() { ret value; } void setValueIfNull(O defaultValue) { if (value == null) value(defaultValue); } }