не отвечен. Может быть здесь кто-то сможет?
https://stackoverflow.com/q/42037064/1060693
TL;DR Документация GHC говорит, что для MonadPlus должны выполняться "zero laws":
mzero >>= f ≡ mzero -- left zero
m >> mzero ≡ mzero -- right zero
Для Alternative таких законов нет. Почему тогда guard определён с Alternative, а не MonadPlus?
потому что альтернативы в общем случае не обязательно монады, поэтому и законов таких нет
Обсуждают сегодня