Unless things have changed in the past 2 weeks, the iterator contract does not require that an iterator that returns `None` once continue to return `None` forever. In fact, the iterator contract specifies nothing at all about the behavior after `None` has been returned once.