Если 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
Другие вопросы по тегам