code: public final Mono<T> retryWhen(Function<Flux<Throwable>, ? extends Publisher<?>> whenFactory) {
  		return onAssembly(new MonoRetryWhen<>(this, whenFactory));
  	}
docs: Retries this {@link Mono} when a companion sequence signals
  an item in response to this {@link Mono} error signal
  <p>If the companion sequence signals when the {@link Mono} is active, the retry
  attempt is suppressed and any terminal signal will terminate the {@link Mono} source with the same signal
  immediately.
  
  <p>
  <img class="marble" src="doc-files/marbles/retryWhenForMono.svg" alt="">
  <p>
  Note that if the companion {@link Publisher} created by the {@code whenFactory}
  emits {@link Context} as trigger objects, the content of these Context will be added
  to the operator's own {@link Context}.
  
  @param whenFactory the {@link Function} that returns the associated {@link Publisher}
  companion, given a {@link Flux} that signals each onError as a {@link Throwable}.
  
  @return a {@link Mono} that retries on onError when the companion {@link Publisher} produces an
  onNext signal