Какова ценность построения монадических стеков на основе таких шатких оснований?
Трансформаторы поверх IO
могут позволить вам более удобно говорить о последовательностях повторяющихся действий (следовательно, различные потоковые библиотеки ).
Они также могут помочь в ведении требуемого учета внешних ресурсов .
«дикость» IO
не является общим возражением против размещения на ней трансформаторов, так как они могут помочь вам избежать повторяющегося кода и сделать более понятную логику.
Скорее,аргумент заключается в том, что IO
уже предоставляет некоторые встроенные функции для обработки ошибок ( исключения ) и изменяемых ссылок (IORef
s, MVars
...) поэтому добавление преобразователей для этой уже существующей функциональности может оказаться излишним.
Одним из аргументов для изменяемых ссылок, в частности, является то, что состояние, поддерживаемое "чистым", означает исчезновениеЕсли возникает всплывающее исключение, это может быть не тем, что вы хотите.Вы также можете получить доступ к изменяемым ссылкам из нескольких потоков.