docs: public static <T1, T2, R> CompletableFuture<R> zip(final CompletableFuture<? extends T1> f, final Iterable<? extends T2> v,
              final BiFunction<? super T1, ? super T2, ? extends R> fn) {
          return narrow(Future.of(f)
                               .zip(v, fn)
                               .getFuture());
      }