Без заголовка
К сожалению, этого тоже недостаточно. Макросы уровня AST способны подменить ядро, но не дополнить его. Последствия этого - необходимость дублирования части функционала хост-языка в своём EDSL и его слабая сочетаемость с EDSL других авторов.
Решается эта проблема реализацией самого ядра на смысловых макросах, работающих на уровне системы наследуемых/синтезируемых атрибутов и системы идентификации. Что, однако, само по себе задача сложная и длительная.
С паттернами и pattern matching тоже всё хитро. Каждый язык удовлетворяет только своему маленькому срезу требований в этой области. Так что и "компактификация" не всегда компактифицирует, а может и увести куда-то в алхимические дебри. Что, опять же, неизбежно при отсутствии дополняемого ядра.