你如何设计和构建你的monadic堆栈?我第一次需要构建一个monadic堆栈(使用变换器)来解决现实问题,但我并不完全确定堆叠变换器的顺序.如你所知,只要计算有点* -> *
,基本上任何东西都可以在变换器中扮演内部monad的角色,因此有几个问题:
lift . lift . liftIO [...]
?我的直觉是,如果变形金刚得到一些实例(例如MonadReader,MonadIO等,就像大多数变形金刚mtl
一样),那么放置变压器的顺序并不重要.我有兴趣听取经验丰富的Haskellers关于最佳实践或经验法则的意见.
forever $ print "Thanks!"
一个.