Pouvez-vous prouver que si return a = return b
alors a=b
? Quand j’utilise =
, je veux dire dans le sens des lois et des preuves, pas dans le sens de la classe Eq
.
Chaque monade que je connais semble le satisfaire, et je ne peux pas penser à une monade valide qui ne le serait pas ( Const a
est un foncteur et un applicatif, mais pas une monade).
Non. Considérez la monade sortingviale:
data Trivial a = Cow instance Monad Trivial where _ >>= _ = Cow return _ = Cow