code: public static void onEachOperator(Function<? super Publisher<Object>, ? extends Publisher<Object>> onEachOperator) {
  		onEachOperator(onEachOperator.toString(), onEachOperator);
  	}
docs: Add a {@link Publisher} operator interceptor for each operator created
  ({@link Flux} or {@link Mono}). The passed function is applied to the original
  operator {@link Publisher} and can return a different {@link Publisher},
  on the condition that it generically maintains the same data type as the original.
  Use of the {@link Flux}/{@link Mono} APIs is discouraged as it will recursively
  call this hook, leading to {@link StackOverflowError}.
  <p>
  Note that sub-hooks are cumulative, but invoking this method twice with the same instance
  (or any instance that has the same `toString`) will result in only a single instance
  being applied. See {@link #onEachOperator(String, Function)} for a variant that
  allows you to name the sub-hooks (and thus replace them or remove them individually
  later on). Can be fully reset via {@link #resetOnEachOperator()}.
  <p>
  This pointcut function cannot make use of {@link Flux}, {@link Mono} or
  {@link ParallelFlux} APIs as it would lead to a recursive call to the hook: the
  operator calls would effectively invoke onEachOperator from onEachOperator.
  
  @param onEachOperator the sub-hook: a function to intercept each operation call
  (e.g. {@code map (fn)} and {@code map(fn2)} in {@code flux.map(fn).map(fn2).subscribe()})
  
  @see #onEachOperator(String, Function)
  @see #resetOnEachOperator(String)
  @see #resetOnEachOperator()
  @see #onLastOperator(Function)