One more argument against the lazy-eval in the current form: If you have no chance to figure out what the code does, without looking at docs or function signature.... you will end up in writing 3 times more lines. Making each statements separated, to be sure to get them evaluated exactly once, without looking all that stuff up.