Neater macro definition

Here's an alternate formulation of the macro, which I find a bit more readable, and which dispenses with the counter variable in favour of the more standard `gensym` mechanism.

-Steve