values multiple from array haskell monads semantics equality equational-reasoning

haskell - multiple - return array python



Si return a=return b, ¿a=b? (1)

¿Puedes probar que si return a = return b entonces a=b ? Cuando uso = , quiero decir en el sentido de leyes y pruebas, no el sentido de clase Eq .

Cada mónada que conozco parece satisfacer esto, y no puedo pensar en una mónada válida que no lo Const a ( Const a es un functor y aplicativo, pero no una mónada).


No. Considera la mónada trivial:

data Trivial a = Cow instance Monad Trivial where _ >>= _ = Cow return _ = Cow