docs: public static <T, R> R fold(Iterator<T> iterator, R seed, Function2<? super R, ? super T, ? extends R> function) {
  		R result = seed;
  		while (iterator.hasNext()) {
  			result = function.apply(result, iterator.next());
  		}
  		return result;
  	}