code: public final Flux<T> mergeOrderedWith(Publisher<? extends T> other,
  			Comparator<? super T> otherComparator) {
  		if (this instanceof FluxMergeOrdered) {
  			FluxMergeOrdered<T> fluxMerge = (FluxMergeOrdered<T>) this;
  			return fluxMerge.mergeAdditionalSource(other, otherComparator);
  		}
  		return mergeOrdered(otherComparator, this, other);
  	}
docs: Merge data from this {@link Flux} and a {@link Publisher} into a reordered merge
  sequence, by picking the smallest value from each sequence as defined by a provided
  {@link Comparator}. Note that subsequent calls are combined, and their comparators are
  in lexicographic order as defined by {@link Comparator#thenComparing(Comparator)}.
  <p>
  The combination step is avoided if the two {@link Comparator Comparators} are
  {@link Comparator#equals(Object) equal} (which can easily be achieved by using the
  same reference, and is also always true of {@link Comparator#naturalOrder()}).
  <p>
  Note that merge is tailored to work with asynchronous sources or finite sources. When dealing with
  an infinite source that doesn't already publish on a dedicated Scheduler, you must isolate that source
  in its own Scheduler, as merge would otherwise attempt to drain it before subscribing to
  another source.
  <p>
  <img class="marble" src="doc-files/marbles/mergeOrderedWith.svg" alt="">
  
  @param other the {@link Publisher} to merge with
  @param otherComparator the {@link Comparator} to use for merging
  
  @return a new {@link Flux}