Do we need some kind of synchronization here, or will `next()` never be concurrently called from two separate threads?