@Override
  public boolean equals(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?
  }
@Override
  public boolean equals(Object o)