ОК, поэтому монада-писатель позволяет писать материал для [обычно] какого-то контейнера и возвращать этот контейнер в конце. В большинстве реализаций "контейнер" может быть любым моноидом.
Теперь существует также "читающая" монада. Это, как вы думаете, предложит двойную операцию - пошаговое чтение из какого-то контейнера, по одному пункту за раз. Фактически, это не та функциональность, которую предоставляет обычная монада-читатель. (Вместо этого он просто обеспечивает легкий доступ к полуглобальной константе.)
Чтобы на самом деле написать монаду, двойственную к обычной монаде писателя, нам понадобится какая-то структура, двойственная к моноиду.
- Кто-нибудь знает, что такое двойная структура?
- Кто-нибудь написал эту монаду? Есть ли известное имя для него?