code: @Override
      public R apply(T1 first, T2 second) {
          interceptor.before(first, second);
          try {
              return inner.apply(first, second);
          } finally {
              interceptor.after(first, second);
          }
      }
docs: Executes a function in the nested interceptor context.
  
  @param first
  @param second
  @return the result of the inner function