A macro is central in any Lisp and must be mastered in order to master the language. However, Racket is in a state of macro chaos - at least in the official documentation. There’s define-syntax-rule, syntax-parse, syntax-case, and so many more. How do we make sense of it? In this tutorial we’ll investigate syntax transformers in Racket so we can get a complete picture.