За последние несколько месяцев я много смотрел на монады (функторы и аппликативные функторы).Я пытался выяснить, когда монады полезны в общем смысле.Если я смотрю на фрагмент кода, который я спрашиваю, должен ли я использовать определенную монаду или стек через трансформаторы?В моих усилиях я думаю, что нашел ответ, но я хочу, чтобы другие внесли свой вклад, если я что-то упустил.Мне кажется, что монады полезны для абстрагирования от конкретной сантехники для увеличения читабельности / склонности к куску кода, что может иметь побочный эффект увеличения производительности, требуя меньше кода для записи.Единственное исключение, которое я могу найти, - это монада IO, которая пытается сохранить чистую функцию чистой перед лицом IO.Не похоже, что данная монада дает решение проблемы, которая не может быть достигнута другими способами.Я что-то упустил?