Понял, как писать достаточно сложные макросы на схеме. Но получается некрасиво. Начинаю ощущать на себе, как сказал папа ФП, macros tend to be monolithic, highly recursive, ad hoc, and requiring a revelation to write, and the equal revelation to understand
*.
The familiar idioms of a function call and a functional composition -- let alone higher-level combinators such as fold -- do not easily apply. Кажется, я понял, как их компоновать через syntax-case и with-syntax. Однако, цена за это - см.в., монолитность и слишком много рекурсии. (Речь, само собой, о шаблонных макросах, а не defmacro).
Макросы должны быть компонуемыми и лаконичными. В чём причина обратного? Непонятно пока что. Но без этого модульность декларативного ЯП рушится на глазах, а в модульности и есть сила ФП. Естественно, модульность это не про модули, а про функции первого класса и ФВП, как некоторые пытались объяснить
*.