Actually I do `yield list(g) # To ensure that the iterable is iterated in sequence` in my code, so it's a list anyway and we can use yours also I think. That's indeed clearer.

I think my understanding that time was that if I didn't do `list(g)`, the different iterables yielded by this method will interleave each other. Is my understanding that time correct?