A better solution is not to make `reply` a macro. This means we can process its return value and inject the state from the scope if necessary