code: @Pure
  	@Inline(value = "(new $3<$5, $6>($1, $2))", imported = UnmodifiableMergingMapView.class, constantExpression = true)
  	public static <K, V> Map<K, V> union(Map<? extends K, ? extends V> left, Map<? extends K, ? extends V> right) {
  		return new UnmodifiableMergingMapView<K, V>(left, right);
  	}
docs: Merge the given maps.
  
  <p>
  The replied map is a view on the given two maps.
  If a key exists in the two maps, the replied value is the value of the right operand.
  </p>
  
  <p>
  Even if the key of the right operand exists in the left operand, the value in the right operand is preferred.
  </p>
  
  <p>
  The replied map is unmodifiable.
  </p>
  
  @param <K> type of the map keys.
  @param <V> type of the map values.
  @param left the left map.
  @param right the right map.
  @return a map with the merged contents from the two maps.
  @since 2.15