An object with next that returns the next value and raises StopIteration when it is done.
Iterator
An object with __next__ that returns the next value and raises StopIteration when it is done.
An object with next that returns the next value and raises StopIteration when it is done.