[racket][macro] reusable syntax classes