That's a good point about lazy evaluation. I wish I understood better the cost of using blocks in different scenarios, such as this. I know they wrap up a certain amount of the context in which they were defined.