code: public final <V> Mono<V> compose(Function<? super Mono<T>, ? extends Publisher<V>> transformer) {
  		return defer(() -> from(transformer.apply(this)));
  	}
docs: Defer the given transformation to this {@link Mono} in order to generate a
  target {@link Mono} type. A transformation will occur for each
  {@link Subscriber}. For instance:
  
  <blockquote><pre>
  mono.compose(original -> original.log());
  </pre></blockquote>
  <p>
  <img class="marble" src="doc-files/marbles/composeForMono.svg" alt="">
  
  @param transformer the {@link Function} to lazily map this {@link Mono} into a target {@link Mono}
  instance upon subscription.
  @param <V> the item type in the returned {@link Publisher}
  
  @return a new {@link Mono}
  @see #as as() for a loose conversion to an arbitrary type
  @see #transform(Function)