Реализация у меня - guile. Мне интересен аналог вот такого гипотетического макроса на CL:
(defmacro define-handler (name
;; далее идут опции кодогенерации
;; обычно это так называемый plist
;; где значения у ключей это символы, T, NIL
(&rest code-options)
&body code)
(let ((binds
;; тут довольно сложная обработка опций, где я частенько пользуюсь
;; и CLOS
(handle-code-options code-options)))
`(let ;; тут let чисто для компактности, хотя результат обработки опций
;; может потребовать подключения let*, flet и прочего с приличным
;; количеством генерируемого кода
,(handle-code-options code-options)
,@code)))
Какие формы надо изучать, чтобы писать такое на гигиенических макросах?