Most macros I write are `def-foo' (declarative) or `with-foo' (setup then tidying). This gives predictable semantics: important with macros.