cleaner macro has fewer redundant calls to with-syntax