@anonymous Это библиотека которая делает human readable высер хаскелёвых структур более human readable (переносы строк по необходимости чтобы влезало в заданную ширину, отступы и всякое такое дерьмо), предъявляя при этом минимум требований к самим структурам (по сути только наличие Show). А делает она это так: сначала она при помощи Show превращает значение в строку, потом она предполагает, что высер show с высокой вероятность очень похож на код на хаскеле и натравливает на эту строку хаскелёвый лексер, если это сработало он из полученных лексем собирает что-то вроде очень тупого AST'а которого хватает как раз ровно на то чтобы от prettyprint'ить всё это обратно в текст, если не сработало значит не шмогла и высирается просто show.