code: @SafeVarargs
  	public static <T> Mono<T> first(Mono<? extends T>... monos) {
  		return onAssembly(new MonoFirst<>(monos));
  	}
docs: Pick the first {@link Mono} to emit any signal (value, empty completion or error)
  and replay that signal, effectively behaving like the fastest of these competing
  sources.
  <p>
  <img class="marble" src="doc-files/marbles/firstForMono.svg" alt="">
  <p>
  @param monos The deferred monos to use.
  @param <T> The type of the function result.
  
  @return a new {@link Mono} behaving like the fastest of its sources.