boolean equiv(Conf other) {
    if (this == other) return true;
    if (this.fastHashCode != other.fastHashCode) return false;
    Frame<BasicValue> currFr = this.frame;
    Frame<BasicValue> prevFr = other.frame;
    for (int i = currFr.getStackSize() - 1; i >= 0; i--) {
      if (!AbstractValues.equiv(currFr.getStack(i), prevFr.getStack(i))) {
        return false;
      }
    }
    for (int i = currFr.getLocals() - 1; i >= 0; i--) {
      if (!AbstractValues.equiv(currFr.getLocal(i), prevFr.getLocal(i))) {
        return false;
      }
    }
    return true;
  }
boolean equiv(Conf other)