concrete functor and monad transformers
#78Why Alternative instances require MonadPlus?
Alternative instances are typically defined as
instance (Monoid w, Functor m, MonadPlus m) => Alternative (AccumT w m)
instead of more symmetric
instance (Monoid w, Alternative m, Monad m) => Alternative (AccumT w m)
Would a patch changing this be accepted?
+1 to this
I posted an issue with a diff a while back somewhat related to this: https://hub.darcs.net/ross/transformers/issue/60. The questions from Ross in response might be useful. That issue was about StateT, specifically, which has an Applicative instance which already requires Monad. It looks like AccumT's Applicative also requires Monad, so I wonder if the reasoning is the same?