Why not just `return` the iterator made by `itertools.chain`? Why are you messing around with `_result_cache` and `_result_iter`?