Если return a = return b, тогда a=b?
Можете ли вы доказать, что если return a = return b
затем a=b
? Когда я использую =
Я имею в виду в смысле законов и доказательств, а не Eq
классовый смысл.
Кажется, каждая монада, которую я знаю, удовлетворяет это, и я не могу придумать правильную монаду, которая бы неConst a
это функтор и аппликатив, но не монада.)
1 ответ
Решение
Рассмотрим тривиальную монаду:
data Trivial a = Cow
instance Monad Trivial where
_ >>= _ = Cow
return _ = Cow