Seção sincronizada no mapa assíncrono

Eu tenho uma grande função de E / S que carregará dados de uma pasta continuamente, executará cálculos puros nos dados e os gravará novamente.

Estou executando esta função em várias pastas em paralelo usando

mapConcurrently_ iofun folderList

dehttp://hackage.haskell.org/package/async-2.1.1.1/docs/Control-Concurrent-Async.html#v%3amapConcurrently

Isso funciona perfeitamente ... mas um pouco demais. Agora, mesmo a saída de caracteres doputStrLn as chamadas são assíncronas, o que leva a um log de console ilegível.

Existe uma maneira de sincronizar as ações de E / S ou, melhor ainda, uma versão sincronizada do putStrLn?

questionAnswers(1)

yourAnswerToTheQuestion