Ну, библиотека сделала одну вещь правильно, используя класс типов для Pretty.Задача состоит в том, как выбрать другой экземпляр для конструкторов, которые вы хотите печатать по-разному.В идеале вы должны просто ввести новый тип узла AST, который вам нужен, и каким-то образом подставить его в AST.
Теперь проблема в том, что Haskell AST, экспортируемый библиотекой, имеет фиксированную структуру типов.Он не использует, например, двухуровневые типы , которые позволят вам заменить новые типы на части дерева.Таким образом, вам придется переопределить тип AST вплоть до узла, для которого вы хотите изменить тип.