I think we should reword this section of the docs slightly. What matters about `getpushes()` is that it returns an _iterable_ of promises. The fact that the iterable is sometimes a list and sometimes a generator is mostly irrelevant. In fact, I think we should go further and always return a generator, even when we know we've got a list. That way we have a consistent API that prevents people doing silly things like calling `len()` on a generator.