Lazy Evaluation Using Recursive Python Generators