46

return a = return b如果那时,你能证明a=b吗?当我使用 时=,我的意思是在法律和证明意义上,而不是Eq阶级意义上。

我知道的每个 monad 似乎都满足这一点,我想不出一个有效的 monad 不会(Const a是函子和应用程序,但不是 monad。)

4

1 回答 1

65

不。考虑微不足道的单子:

data Trivial a = Cow

instance Monad Trivial where
  _ >>= _ = Cow
  return _ = Cow
于 2016-01-25T23:34:42.570 回答