One consequence of this requirement is that a traversal needs to leave the same number of elements as a candidate for
subsequent traversal as it started with.

3) No duplication of elements (as defined in "The Essence of the Iterator Pattern" section 5.5), which states
that you should incur no effect caused by visiting the same element of the container twice.