@graninas mtl-style можно использовать ровно в той же манере, что и hfm, только кода в два раза меньше:
https://gist.github.com/effectfully/33b099ed88a3eefb67029624965228f8пока что единственное, что я вижу лучше в hfm, это то, что интерпретатор для сразу всего синтаксиса определяется в одном месте, можно всякий стейт пробрасывать или еще какие-то общие эффекты делать. С mtl это чуть сложнее, но я не припомню таких юзкейсов на моей памяти энивей. И если че от финального mtl можно уйти к инициальному hfm (что верно и в обратную сторону, очевидно)
и если хотите, чтобы на ваши посты как-то вещественно отвечали, выкладывайте код отдельным файлом, я замучался по кускам собирать. И там еще ошибка в
logInfo :: Message -> App ()
logInfo msg = evalLogger (logMessage Info msg) id