Как спроектировать монадический стек?
Как вы проектируете и строите свои монадические стеки? Впервые мне нужно собрать монадический стек (с использованием преобразователей) для решения реальной проблемы, но я не совсем уверен, в какомзаказ сложить трансформаторы. Как вы уже знаете, пока вычисления имеют вид* -> *
в принципе, все может играть роль внутренней монады в преобразователе, таким образом, пара вопросов:
lift . lift . liftIO [...]
? Мои интуитивные ощущения подсказывают, что если преобразователи получают некоторые экземпляры (например, MonadReader, MonadIO и т. Д., Как и большинство преобразователей вmtl
делать), не важно, в каком порядке я поставил трансформаторы.Мне интересно услышать от опытных Haskellers о лучших практиках или правилах большого пальца.
forever $ print "Thanks!"
A.