Returns:true if *this and right are both end-of-sequence iterators,
or if *this and right are both suffix iterators and suffix == right.suffix;
otherwise returns false if *this or right is an end-of-sequence
iterator or a suffix iterator.
Otherwise returns true if position == right.position,
N == right.N, and subs == right.subs.