I think this `(do ...)` is unnecessary.  `do` is used to wrap multiple expressions into one (returning whatever the last one returned).  Some macros require just one expression (eg `if`, one for each branch).