Предпочтительный метод просмотра кода, сгенерированного Template Haskell

Как вы знаете, Template Haskell используется для создания различных видов соединений AST программно во время компиляции.

Однако стык часто может быть очень непрозрачным, и часто бывает трудно различить, что на самом деле создает стык. Если вы запустите монаду Q для склейки, и склейка хорошо типизирована, вы получите show способное представление сгенерированной части AST, но это представление может быть очень трудным. чтобы понять, из-за его неструктурированного макета.

Каков предпочтительный метод преобразования фрагмента AST, сгенерированного TH, во что-то вроде обычного кода Haskell, чтобы его можно было легко прочитать и понять? Можно ли восстановить исходный код, например, из заданное дек значение? Нужно ли читать код ядра GHC? Есть ли способ хотя бы структурировать AST так, чтобы он стал более читабельным (помимо того, что, например, делает пакет pretty-show )?

40
задан dflemstr 15 December 2011 в 12:31
поделиться