Macros where you have to specify a var name are really clean. They have few hygiene issues, and work with both lexical and dynamic binding!