code: public final <U, R> Ix<R> zipWith(Iterable<U> other, IxFunction2<? super T, ? super U, ? extends R> zipper) {
          return zip(this, other, zipper);
      }
docs: Combines the next element from this and the other source Iterable via a zipper function.
  <p>
  If one of the source Iterables is sorter the sequence terminates eagerly.
  <p>
  The result's iterator() doesn't support remove().
  
  @param <U> the other source's element type
  @param <R> the result value type
  @param other the the other source Iterable
  @param zipper the function that takes one from each source, not null
  @return the new Ix instance
  @throws NullPointerException if other or zipper is null
  @since 1.0