【发布时间】:2017-09-07 15:05:11
【问题描述】:
例如MaybeT定义为:
newtype MaybeT m a =
MaybeT { runMaybeT :: m (Maybe a)}
但不是:
newtype MaybeT m a =
MaybeT { runMaybeT :: Maybe (m a) }
这是为什么?
【问题讨论】:
-
因为我们转换了
Maybemonad,而不是Maybe包含的内容? -
我认为这个问题之前已经在某个地方得到了回答,但我找不到。
标签: haskell monads monad-transformers