The JS iterator protocol uses duck typing and we don't need separate ArrayIterator and SetIterator etc types, we can have a single iterator type for the whole protocol.
headless
Hopefully this doesn't need to get too large over time!