{-# LANGUAGE CPP #-} module Text.Pandoc.Compat.Except ( ExceptT , Except , Error(..) , runExceptT , runExcept , MonadError , throwError , catchError ) where #if MIN_VERSION_mtl(2,2,1) import Control.Monad.Except class Error a where noMsg :: a strMsg :: String -> a noMsg = strMsg "" strMsg _ = noMsg #else import Control.Monad.Error import Control.Monad.Identity (Identity, runIdentity) type ExceptT = ErrorT type Except s a = ErrorT s Identity a runExceptT :: ExceptT e m a -> m (Either e a) runExceptT = runErrorT runExcept :: ExceptT e Identity a -> Either e a runExcept = runIdentity . runExceptT #endif