{-# LANGUAGE MultiParamTypeClasses, FunctionalDependencies, FlexibleContexts, UndecidableInstances #-} -- Needed for the same reasons as in Reader, State etc {- | Module : Control.Monad.ErrorX.Class Copyright : (c) Mark Snyder 2008. License : BSD-style Maintainer : Mark Snyder, marks@ittc.ku.edu Stability : experimental Portability : non-portable (multi-parameter type classes) -} module Control.Monad.ErrorX.Class ( MonadErrorX(..), ) where import Control.Monad.Index class (Monad m, Index ix) => MonadErrorX ix e m | ix m -> e where throwErrorx :: ix -> e -> m a catchErrorx :: ix -> m a -> (e -> m a) -> m a