Distinction between typeclasses MonadPlus, Alternative, and Monoid?
MonadPlus and Monoid serve different purposes. A Monoid is parameterized over a type of kind *. class Monoid m where mempty :: m mappend :: m -> m -> m and so it can be instantiated for almost any type for which there is an obvious operator that is associative and which has a unit. … Read more