code: public final <V> Flux<T> distinct(Function<? super T, ? extends V> keySelector) {
  		return distinct(keySelector, hashSetSupplier());
  	}
docs: For each {@link Subscriber}, track elements from this {@link Flux} that have been
  seen and filter out duplicates, as compared by a key extracted through the user
  provided {@link Function}.
  
  <p>
  <img class="marble" src="doc-files/marbles/distinctWithKey.svg" alt="">
  
  @reactor.discard This operator discards elements that don't match the distinct predicate,
  but you should use the version with a cleanup if you need discarding of keys
  categorized by the operator as "seen". See {@link #distinct(Function, Supplier, BiPredicate, Consumer)}.
  
  @param keySelector function to compute comparison key for each element
  @param <V> the type of the key extracted from each value in this sequence
  
  @return a filtering {@link Flux} only emitting values with distinct keys