code: public final Ix<T> scan(IxFunction2<T, T, T> scanner) {
          return new IxScan<T>(this, nullCheck(scanner, "scanner is null"));
      }
docs: Performs a running accumulation, that is, returns intermediate elements returned by the
  scanner function.
  <p>
  The result's iterator() doesn't support remove().
  @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 scanner is null
  @since 1.0