Can you prove that if return a = return b
then a=b
? When I use =
, I mean in the laws and proofs sense, not the Eq
class sense.
Every monad that I know seems to satisfy this, and I can't think of a valid monad that wouldn't (Const a
is a functor and applicative, but not a monad.)
Const ()
. – Thule