sclass TargetAndActual extends MetaWithChangeListeners { settableWithVar A target; settableWithVar A actual; toString { ret commaCombine( target == null ?: "Target: " + target, value == null ?: "Value: " + value); } }