static boolean isInstance(BasicValue curr, BasicValue prev) {
    if (prev instanceof ParamValue) {
      return curr instanceof ParamValue;
    }
    if (InstanceOfCheckValue == prev) {
      return InstanceOfCheckValue == curr;
    }
    if (TrueValue == prev) {
      return TrueValue == curr;
    }
    if (FalseValue == prev) {
      return FalseValue == curr;
    }
    if (NullValue == prev) {
      return NullValue == curr;
    }
    if (prev instanceof NotNullValue) {
      return curr instanceof NotNullValue;
    }
    if (prev instanceof CallResultValue prevCall) {
      return curr instanceof CallResultValue currCall && prevCall.inters.size() == currCall.inters.size() &&
        prevCall.inters.containsAll(currCall.inters);
    }
    return true;
  }
static boolean isInstance(BasicValue curr, BasicValue prev)