Your macro isn’t perdorming any kind of evaluation, lazy or strict. The macro works because it expands into a case special form, which does allow you to pick branches. In a sense I guess the case macros is doing something that can be considered lazy evaluation.
But your if macro is not performing lazy evaluation. It’s just expanding into another syntax form.






















