static boolean equiv(BasicValue curr, BasicValue prev) {
    if (curr == prev) return true;
    if (curr.getClass() == prev.getClass()) {
      if (curr instanceof CallResultValue currRes && prev instanceof CallResultValue prevRes) {
        List<EKey> keys1 = prevRes.inters;
        List<EKey> keys2 = currRes.inters;
        return keys1.size() == keys2.size() && keys1.containsAll(keys2);
      }
      else return true;
    }
    else return false;
  }
static boolean equiv(BasicValue curr, BasicValue prev)