code: public final <R> Ix<R> transform(IxTransform<T, R> transformer) {
          return new IxTransformer<T, R>(this, nullCheck(transformer, "transformer is null"));
      }
docs: Allows working with the Iterator of this sequence and emit elements in
  a more flexible way
  <p>
  The result's iterator() doesn't support remove().
  @param <R> the result value type
  @param transformer the functional interface whose moveNext is called with the
  current Iterator and should signal a value to be emitted for it.
  @return the new Ix instance
  @throws NullPointerException if transformer is null