code: public final <R> Ix<R> scan(IxSupplier<R> initialFactory, IxFunction2<R, T, R> scanner) {
          return new IxScanSeed<T, R>(this, nullCheck(initialFactory, "initialFactory is null"), nullCheck(scanner, "scanner is null"));
      }
docs: Performs a running accumulation, that is, returns intermediate elements returned by the
  scanner function, starting with a per-iterator initial value.
  <p>
  The result's iterator() doesn't support remove().
  @param <R> the accumulated value type
  @param initialFactory function called for each iterator() and returns the initial accumulator value
  @param scanner the function that receives the previous (or first) accumulated element and the current
  element and returns a value to be emitted and to become the accumulated element
  @return the new Ix instance
  @throws NullPointerException if initialFactory or scanner is null
  @since 1.0