В моей сфере бизнеса - ИТ-отдел для финансового учреждения - очень часто для программного компонента неся глобальную конфигурацию, чтобы регистрировать ее прогресс, чтобы иметь какую-то обработку ошибок/вычисление короткого замыкания. Вещи, которые можно хорошо смоделировать с помощью Reader-, Writer-, Maybe-monads и т.п. В Haskell и составленные вместе с монадными трансформаторами.
Но есть некоторые недостатки: концепция трансформаторов монады довольно сложна и трудна для понимания, трансформаторы монады приводят к очень сложным сигнатурам типов, и они налагают некоторое ограничение производительности.
Итак, мне интересно: лучше ли использовать трансформаторы монады, когда речь идет об этих общих задачах, упомянутых выше?