code: public static <T1, T2, I extends BinaryInterceptor<T1, T2>, R> BiFunction<T1, T2, R> intercept(BiFunction<T1, T2, R> innermost, Iterator<I> interceptors) {
          return new BinaryInterceptorChain<>(innermost, interceptors);
      }
docs: Creates a binary interceptor chain.
  
  @param <T1> the function first parameter type
  @param <T2> the function second parameter type
  @param <I> the interceptor type
  @param <R> the function result type
  @param innermost the function to be intercepted
  @param interceptors an iterator of interceptors
  @return the resulting function