Some collections have special (custom) iterators.

The collection used here has it's own iterator traversing and performing
action with each of it's elements. It's a forward only iterator that's
capable of being totally spent.
Merge branch 'PATTERNS/companion-iterator'