on master help sign in
Merge pull request #1857 from david-christiansen/fix-monad-trans
43ba516David Christiansen
idris.cabal+2−1
@@ -751,7 +751,7 @@ Library
751 , fingertree >= 0.1 && < 0.2
751 , fingertree >= 0.1 && < 0.2
752 , haskeline >= 0.7 && < 0.8
752 , haskeline >= 0.7 && < 0.8
753 , lens >= 4.1.1 && < 4.8
753 , lens >= 4.1.1 && < 4.8
754− , mtl >= 2.2.1 && < 2.3
754+ , mtl >= 2.1 && < 2.3
755 , network < 2.7
755 , network < 2.7
756 , optparse-applicative >= 0.11 && < 0.12
756 , optparse-applicative >= 0.11 && < 0.12
757 , parsers >= 0.9 && < 0.13
757 , parsers >= 0.9 && < 0.13
@@ -761,6 +761,7 @@ Library
761 , text < 1.3
761 , text < 1.3
762 , time >= 1.4 && < 1.6
762 , time >= 1.4 && < 1.6
763 , transformers < 0.5
763 , transformers < 0.5
764+ , transformers-compat >= 0.3
764 , trifecta >= 1.1 && < 1.6
765 , trifecta >= 1.1 && < 1.6
765 , uniplate >=1.6 && < 1.7
766 , uniplate >=1.6 && < 1.7
766 , unordered-containers < 0.3
767 , unordered-containers < 0.3
src/Idris/AbsSyntax.hs−1
@@ -19,7 +19,6 @@ import System.IO
19
19
20import Control.Applicative
20import Control.Applicative
21import Control.Monad.State
21import Control.Monad.State
22−import Control.Monad.Except (throwError, catchError)
23
22
24import Data.List hiding (insert,union)
23import Data.List hiding (insert,union)
25import Data.Char
24import Data.Char
src/Idris/AbsSyntaxTree.hs+7
@@ -20,6 +20,7 @@ import System.IO
20
20
21import Control.Monad.Trans.State.Strict
21import Control.Monad.Trans.State.Strict
22import Control.Monad.Trans.Except
22import Control.Monad.Trans.Except
23+import qualified Control.Monad.Trans.Class as Trans (lift)
23
24
24import Data.Data (Data)
25import Data.Data (Data)
25import Data.Function (on)
26import Data.Function (on)
@@ -310,6 +311,12 @@ idrisInit = IState initContext [] []
310--type Idris = WriterT [Either String (IO ())] (State IState a))
311--type Idris = WriterT [Either String (IO ())] (State IState a))
311type Idris = StateT IState (ExceptT Err IO)
312type Idris = StateT IState (ExceptT Err IO)
312
313
314+catchError :: Idris a -> (Err -> Idris a) -> Idris a
315+catchError = liftCatch catchE
316+
317+throwError :: Err -> Idris a
318+throwError = Trans.lift . throwE
319+
313-- Commands in the REPL
320-- Commands in the REPL
314
321
315data Codegen = Via String
322data Codegen = Via String
src/Idris/Core/Execute.hs+2−2
@@ -22,7 +22,7 @@ import Control.Applicative hiding (Const)
22import Control.Exception
22import Control.Exception
23import Control.Monad.Trans
23import Control.Monad.Trans
24import Control.Monad.Trans.State.Strict
24import Control.Monad.Trans.State.Strict
25−import Control.Monad.Except (ExceptT, runExceptT, throwError)
25+import Control.Monad.Trans.Except (ExceptT, runExceptT, throwE)
26import Control.Monad hiding (forM)
26import Control.Monad hiding (forM)
27import Data.Maybe
27import Data.Maybe
28import Data.Bits
28import Data.Bits
@@ -138,7 +138,7 @@ putExecState :: ExecState -> Exec ()
138putExecState = lift . put
138putExecState = lift . put
139
139
140execFail :: Err -> Exec a
140execFail :: Err -> Exec a
141−execFail = throwError
141+execFail = throwE
142
142
143execIO :: IO a -> Exec a
143execIO :: IO a -> Exec a
144execIO = lift . lift
144execIO = lift . lift
src/Idris/Error.hs−1
@@ -17,7 +17,6 @@ import System.Console.Haskeline
17import System.Console.Haskeline.MonadException
17import System.Console.Haskeline.MonadException
18import Control.Monad (when)
18import Control.Monad (when)
19import Control.Monad.State.Strict
19import Control.Monad.State.Strict
20−import Control.Monad.Except (throwError, catchError)
21import System.IO.Error(isUserError, ioeGetErrorString)
20import System.IO.Error(isUserError, ioeGetErrorString)
22import Data.Char
21import Data.Char
23import Data.List (intercalate, isPrefixOf)
22import Data.List (intercalate, isPrefixOf)
src/Idris/Output.hs+1−1
@@ -13,7 +13,7 @@ import Idris.IdeSlave
13import Util.Pretty
13import Util.Pretty
14import Util.ScreenSize (getScreenWidth)
14import Util.ScreenSize (getScreenWidth)
15
15
16−import Control.Monad.Except (ExceptT (ExceptT), runExceptT, throwError)
16+import Control.Monad.Trans.Except (ExceptT (ExceptT), runExceptT)
17
17
18import System.Console.Haskeline.MonadException
18import System.Console.Haskeline.MonadException
19 (MonadException (controlIO), RunIO (RunIO))
19 (MonadException (controlIO), RunIO (RunIO))
src/Idris/Parser.hs−1
@@ -50,7 +50,6 @@ import Idris.Core.Evaluate
50
50
51import Control.Applicative hiding (Const)
51import Control.Applicative hiding (Const)
52import Control.Monad
52import Control.Monad
53−import Control.Monad.Except (throwError, catchError)
54import Control.Monad.State.Strict
53import Control.Monad.State.Strict
55
54
56import Data.Function
55import Data.Function
src/Pkg/Package.hs+1−1
@@ -12,7 +12,7 @@ import Util.System
12
12
13import Control.Monad
13import Control.Monad
14import Control.Monad.Trans.State.Strict (execStateT)
14import Control.Monad.Trans.State.Strict (execStateT)
15−import Control.Monad.Except (runExceptT)
15+import Control.Monad.Trans.Except (runExceptT)
16
16
17import Data.List
17import Data.List
18import Data.List.Split(splitOn)
18import Data.List.Split(splitOn)