Currently,
class (Monad m, MonadIO m, MonadCatchIO m, MonadPlus m, Functor m, Applicative m, Alternative m) => MonadSnap m
For GHC before 7.10, that should be
class (MonadCatchIO m, MonadPlus m, Alternative m) => MonadSnap m
For GHC 7.10 and later, it should be
class (MonadCatchIO m, MonadPlus m) => MonadSnap m
Note also that the package snap-core gets MonadCatchIO from is marked obsolete; it's been replaced by another.