I am suspecting it is better to move the `case` inside the macro so that this decision is made not when we compile elixir but when we compile actual code using elixir