Código-fonte haskell de impressão bonita com comentários

Estou tentando reformatar / reimprimir o código-fonte haskell (remover / adicionar espaços em branco, quebras de linha, alterar o estilo de indentação ...). Encontrei o pacote haskell-src-exts que pode analisar e imprimir o código-fonte haskel

Usando a funçãoparseFileWithComments :: ParseMode -> FilePath -> IO (ParseResult (Module, [Comment])) Eu também recebo os comentários incluídos no código fonte. Agora, quero imprimir o Módulo / AST com os comentários nas posições originais, mas não consigo encontrar uma função que faça isso. Só posso imprimir o AST de maneira bonita. Preciso implementar a impressão do AST mais os comentários pessoalmente ou uma biblioteca desse tipo já existe?

Para esclarecer, considere o seguinte exemplo:

file A.hs:

module A (fn1) where

-- | Haddock-comment
fn1 ::
    String ->
    String
fn1 _ = "" -- another comment

Em ghci, digitando

Prelude Control.Monad.Reader Language.Haskell.Exts> (liftM prettyPrint) $ (liftM fst) $ (liftM fromParseResult) $ parseFileWithComments defaultParseMode "A.hs"`

imprime o código fonte do módulo (sem os comentários, é claro). Eu posso usar qualquerprettyPrintfunção para modificar a formatação do código font

Agora eu quero poder fazer algo assim:

do
    (ast, comments) <- fromParseResult $ parseFileWithComments defaultParseMode "A.hs"
    prettyPrintWithComments ast comments

para obter uma versão impressa do arquivo original, incluindo os comentário

questionAnswers(4)

yourAnswerToTheQuestion