Many of my macros for control flow could be functions if I had lazy evaluation. Sadly I find laziness hard to reason about (familiarity?)