Как вы знаете, Template Haskell используется для генерации различных видов сращиваний AST программно во время компиляции.
Однако сплайсинг часто может быть очень непрозрачным, и часто бывает трудно различить, что на самом деле создает сращивание. Если вы запустили монаду Q для сращивания, а сплайс хорошо типизирован, вы получите show возможность представления сгенерированной части АСТ, но это представление может быть очень трудно понять из-за его неструктурированной компоновки.
Каков предпочтительный метод преобразования части TH-генерируемого AST в нечто похожее на обычный код Haskell, так что код можно легко прочитать и понять? Можно ли восстановить исходный код, например. заданное значение Dec? Нужно ли читать код ядра GHC? Есть ли способ, по крайней мере, структурировать AST, чтобы он стал более читаемым (помимо того, что делает пакет pretty-show)?