public final <R> Mono<R> publish(Function<? super Mono<T>, ? extends Mono<? extends
			R>> transform) {
    """
	Share a {@link Mono} for the duration of a function that may transform it and
	consume it as many times as necessary without causing multiple subscriptions
	to the upstream.
	
	@param transform the transformation function
	@param <R> the output value type
	
	@return a new {@link Mono}
    """
		return onAssembly(new MonoPublishMulticast<>(this, transform));
	}
public final <R> Mono<R> publish(Function<? super Mono<T>, ? extends Mono<? extends
			R>> transform) {
		return onAssembly(new MonoPublishMulticast<>(this, transform));
	}
public final < R > Mono < R > publish ( Function < ? super Mono < T > , ? extends Mono < ? extends R > > transform ) { return onAssembly ( new MonoPublishMulticast <> ( this , transform ) ) ; }
Share a {@link Mono} for the duration of a function that may transform it and
consume it as many times as necessary without causing multiple subscriptions
to the upstream.

@param transform the transformation function
@param <R> the output value type

@return a new {@link Mono}
Share a { @link Mono } for the duration of a function that may transform it and consume it as many times as necessary without causing multiple subscriptions to the upstream .