docs: public static <K, V> MapDifference<K, V> difference(
        Map<? extends K, ? extends V> left,
        Map<? extends K, ? extends V> right,
        Equivalence<? super V> valueEquivalence) {
      Preconditions.checkNotNull(valueEquivalence);
  
      Map<K, V> onlyOnLeft = newLinkedHashMap();
      Map<K, V> onlyOnRight = new LinkedHashMap<K, V>(right); // will whittle it down
      Map<K, V> onBoth = newLinkedHashMap();
      Map<K, MapDifference.ValueDifference<V>> differences = newLinkedHashMap();
      doDifference(left, right, valueEquivalence, onlyOnLeft, onlyOnRight, onBoth, differences);
      return new MapDifferenceImpl<K, V>(onlyOnLeft, onlyOnRight, onBoth, differences);
    }