Chapter 6. Generators and Coroutines – Infinity One Step at a Time