docs: public <R> R reduce(final R initial, final BiFunction<R, ? super T, R> accumulator) {
          R returnValue = initial;
          while (iterator.hasNext()) {
              returnValue = accumulator.apply(returnValue, iterator.next());
          }
          return returnValue;
      }