return a = return b
ならa=b
であると証明できますか?私が=
を使用するとき、私は法律と証明の意味で、Eq
クラスの意味ではありません。
私が知っているすべてのモナドはこれを満たしているようであり、有効でないモナドは考えられません(Const a
はファンクタであり、適用可能ですが、モナドではありません)。
いいえ。ささいなモナドを考えてみましょう。
data Trivial a = Cow
instance Monad Trivial where
_ >>= _ = Cow
return _ = Cow