@Override
 public Exprent copy() {
   VarExprent var = new VarExprent(index, getVartype(), processor);
   var.setDefinition(definition);
   var.setVersion(version);
   var.setClassdef(classdef);
   var.setStack(stack);
   return var;
 }
  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?
  }