blob: 9ce7c0d36b8113b1e54e0aaf029ccc00d0217f2b (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
 | {-# 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
 |