code: public final Ix<T> intersect(Iterable<? extends T> other) {
          return new IxIntersect<T>(this, nullCheck(other, "other is null"));
      }
docs: Emits distinct values of this and the other Iterables that are present in
  both sequences.
  <p>
  The result's iterator() doesn't support remove().
  @param other the other Iterable sequence
  @return the new Ix instance
  @throws NullPointerException if other is null
  @since 1.0
  @see #except(Iterable)
  @see #union(Iterable)