code: public static <I, O> Function<? super Publisher<I>, ? extends Publisher<O>> liftPublisher(
  			BiFunction<Publisher, ? super CoreSubscriber<? super O>, ? extends CoreSubscriber<? super I>> lifter) {
  		return LiftFunction.liftPublisher(null, lifter);
  	}
docs: Create a function that can be used to support a custom operator via
  {@link CoreSubscriber} decoration. The function is compatible with
  {@link Flux#transform(Function)}, {@link Mono#transform(Function)},
  {@link Hooks#onEachOperator(Function)} and {@link Hooks#onLastOperator(Function)},
  and works with the raw {@link Publisher} as input, which is useful if you need to
  detect the precise type of the source (eg. instanceof checks to detect Mono, Flux,
  true Scannable, etc...).
  
  @param lifter the bifunction taking the raw {@link Publisher} and
  {@link CoreSubscriber}. The publisher can be double-checked (including with
  {@code instanceof}, and the function must return a receiving {@link CoreSubscriber}
  that will immediately subscribe to the {@link Publisher}.
  
  @param <I> the input type
  @param <O> the output type
  
  @return a new {@link Function}