web-dev-qa-db-ja.com

a = bを返す場合、a = bを返しますか?

return a = return bならa=bであると証明できますか?私が=を使用するとき、私は法律と証明の意味で、Eqクラスの意味ではありません。

私が知っているすべてのモナドはこれを満たしているようであり、有効でないモナドは考えられません(Const aはファンクタであり、適用可能ですが、モナドではありません)。

46
PyRulez

いいえ。ささいなモナドを考えてみましょう。

data Trivial a = Cow

instance Monad Trivial where
  _ >>= _ = Cow
  return _ = Cow
65
Andrej Bauer