If it was me then I wouldn't bother with tricky argument-list-parsing techniques, but in this case, what you want isn't complex to implement. The macro just needs to take a &rest parameter and to pluck off the last element if it's an integer (indicating the count-form). If I wanted the count-form to be evaluated, as opposed to a self-evaluating integer invariably, then things would get a bit hairier than the code below: