绑定和monad堆栈

时间:2016-04-26 13:08:09

标签: haskell

type IM = StateT (EnvFun, EnvEval) (ReaderT EnvEval (ErrorT String IO))


i :: Stmts -> IM
i Statements s (Statements e) = interpeteStmt s >>= \m  ...

我的理解有问题。什么是m。是的,就是那个,{mon}返回的bind。但是哪个monad"很重要"。我不能理解,因为这个monad堆栈让我很麻烦。

1 个答案:

答案 0 :(得分:1)

m是一个选择不当的变量名称。 >>=的类型为m a -> (a -> m b) -> m b,因此m正文中的变量i绑定到a类型的值。 a的类型取决于interpeteStmt返回的内容。