boolean (Object o) { if (o == this) return true; if (!(o instanceof VarExprent ve)) return false; return index == ve.getIndex() && version == ve.getVersion() && Objects.equals(getVarType(), ve.getVarType()); // FIXME: varType comparison redundant? }