code: public final Ix<T> reduce(IxFunction2<T, T, T> reducer) {
          return new IxAggregate<T>(this, nullCheck(reducer, "reducer is null"));
      }
docs: Reduces the elements of this sequence into a single value via a reducer function.
  <p>
  The result's iterator() doesn't support remove().
  @param reducer the function that receives the previous reduced element (or the first)  and the current element
  and returns a new reduced element
  @return the new Ix instance
  @throws NullPointerException if reducer is null
  @since 1.0
  @see #reduce(IxSupplier, IxFunction2)