public MapStream<K, V> distinctValues(BinaryOperator<K> merger) {
        requireNonNull(merger);
        return MapStream.flip(MapStream.flip(this).distinctKeys(merger));
    }
Returns a stream consisting of the distinct elements (according to
{@link Object#equals(Object)}) of this stream based on the value only. If 
the same value is encountered multiple times, the specified key merger 
will be used to determine which value can pass.
<p>
This operation will consume the wrapped stream and produce a new one. The
complexity of this operation is therefore O(n).
<p>
This is a stateful intermediate operation.

@param merger  the merging operation to use
@return        the new stream
@throws NullPointerException if any of the provided parameters are {@code null}
common-parent/mapstream/src/main/java/com/speedment/common/mapstream/MapStream.java