docs: public void mergeWith(UnconditionalValueDerefSet fact, @CheckForNull ValueNumber skipMe, ValueNumberFactory valueNumberFactory) {
          if (UnconditionalValueDerefAnalysis.DEBUG) {
              System.out.println("merge update of # " + System.identityHashCode(this) + " from " + System.identityHashCode(fact));
              System.out.println("update " + this);
              System.out.println("with " + fact);
  
          }
          boolean resultForSkippedValue = false;
          if (skipMe != null) {
              resultForSkippedValue = valueNumbersUnconditionallyDereferenced.get(skipMe.getNumber());
          }
          // Compute the intersection of the unconditionally dereferenced value
          // sets
          valueNumbersUnconditionallyDereferenced.and(fact.valueNumbersUnconditionallyDereferenced);
          if (skipMe != null) {
              valueNumbersUnconditionallyDereferenced.set(skipMe.getNumber(), resultForSkippedValue);
          }
  
          // For each unconditionally dereferenced value...
          for (int i = 0; i < numValueNumbersInMethod; i++) {
              ValueNumber vn = valueNumberFactory.forNumber(i);
              if (vn.equals(skipMe)) {
                  continue;
              }
              Set<Location> factDerefLocationSet = fact.derefLocationSetMap.get(vn);
              if (valueNumbersUnconditionallyDereferenced.get(i)) {
                  if (factDerefLocationSet != null && !factDerefLocationSet.isEmpty()) {
                      // Compute the union of the dereference locations for
                      // this value number.
                      Set<Location> derefLocationSet = derefLocationSetMap.get(vn);
                      if (derefLocationSet == null) {
                          derefLocationSet = new HashSet<>();
                          derefLocationSetMap.put(vn, derefLocationSet);
                      }
                      derefLocationSet.addAll(fact.derefLocationSetMap.get(vn));
                  }
              } else {
                  Set<Location> removed = derefLocationSetMap.remove(vn);
                  // The value number is not in the fact:
                  // remove its location set
                  if (removed != null) {
                      if (UnconditionalValueDerefAnalysis.DEBUG) {
                          System.out.println("Goodbye: " + removed);
                      }
                  }
              }
          }
      }