docs: public static <T1, T2, R1, R2, R> Mono<R> forEach3(Mono<? extends T1> value1,
              Function<? super T1, ? extends Mono<R1>> value2,
              BiFunction<? super T1, ? super R1, ? extends Mono<R2>> value3,
              Function3<? super T1, ? super R1, ? super R2, ? extends R> yieldingFunction) {
  
          Future<? extends R> res = Future.fromPublisher(value1).flatMap(in -> {
  
              Future<R1> a = Future.fromPublisher(value2.apply(in));
              return a.flatMap(ina -> {
                  Future<R2> b = Future.fromPublisher(value3.apply(in, ina));
  
  
                  return b.map(in2 -> yieldingFunction.apply(in, ina, in2));
  
  
              });
  
          });
          return Mono.from(res);
  
      }