sclass Ext extends DynamicObject implements IVar { *() {} *(A *v) {} //O equalityPredicate; // func(Ext, Ext) -> bool bool fullToString; // include values in toString !include #1023196 // Var public bool equals(O o) { ret o instanceof Ext && eq(o/Ext.v, v); } public int hashCode() { ret _hashCode(v); } toString { ret !fullToString ? super.toString() : extToString(this); } }