concrete functor and monad transformers
#51The type of evalContT should be generalized
Applicative has been a superclass of
Monad for a while, I think it's time to update the type of
evalContT. Currently, it's
evalContT :: Monad m => ContT r m r -> m r
but it works just fine with
evalContT :: Applicative m => ContT r m r -> m r
That would mean bumping the base dependency to 4.8. I'm not sure.
Perhaps guarding the constraint with a bit of CPP (i.e. newer base versions would use Applicative) would help everyone?