Can't we just extend `Iterator<T>` instead?
Since generators that don't get input from `yield` are actually iterators.