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