… most languages do not provide any way to control their ASTs; the corresponde between their textual syntax and their ASTs is defined solely by the language implementers. This prompts clever programmers to conjure up clever workarounds in order to maximize the expresivity and utility of the textual syntax that they ave to work with

“Clojure Programming”, Chas Emerick, Brian Carper, Christophe Grand