Currently, ``` haskell 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 ``` haskell class (MonadCatchIO m, MonadPlus m, Alternative m) => MonadSnap m ``` For GHC 7.10 and later, it should be ``` haskell 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.