code: @Pure
  	public static <K, V> Map<K, V> operator_minus(Map<K, V> left, final Pair<? extends K, ? extends V> right) {
  		return Maps.filterEntries(left, new Predicate<Entry<K, V>>() {
  			@Override
  			public boolean apply(Entry<K, V> input) {
  				return !Objects.equal(input.getKey(), right.getKey()) || !Objects.equal(input.getValue(), right.getValue());
  			}
  		});
  	}
docs: Remove the given pair from a given map for obtaining a new map.
  
  <p>
  If the given key is inside the map, but is not mapped to the given value, the
  map will not be changed.
  </p>
  
  <p>
  The replied map is a view on the given map. It means that any change
  in the original map is reflected to the result of this operation.
  </p>
  
  @param <K> type of the map keys.
  @param <V> type of the map values.
  @param left the map to consider.
  @param right the entry (key, value) to remove from the map.
  @return an immutable map with the content of the map and with the given entry.
  @throws IllegalArgumentException - when the right operand key exists in the left operand.
  @since 2.15