https://www.spoofax.dev/ https://www.manning.com/books/dsls-in-boo http://esr.ibiblio.org/?p=7032

Racket/Hy lesson: if you can build the DSL as something that can execute, rather than just being parsed, you will have a much better time

setup.py is pretty much a DSL