All returns an iterator, which in Python is simply a generator. Here’s a function returning an iterator over Fibonacci numbers: it keeps running as long as we keep calling yield.
Since List.all returns an iterator, we can use it in a regular loop.
Once the loop hits break or an early return, the generator will stop yielding further values.