Lecture 21: Lazy evaluation, thunks, and streams