public boolean equals(Object o) { if (o == this) return true; if (o == null || !(o instanceof VarExprent)) return false; VarExprent ve = (VarExprent) o; return index == ve.getIndex() && version == ve.getVersion() && InterpreterUtil.equalObjects( getVartype(), ve.getVartype()); // FIXME: vartype comparison redundant? }