summaryrefslogtreecommitdiff
path: root/ghc/GhciMonad.hs
diff options
context:
space:
mode:
authorIan Lynagh <ian@well-typed.com>2013-01-02 20:49:07 +0000
committerIan Lynagh <ian@well-typed.com>2013-01-02 21:10:45 +0000
commit71feb1025eed0c3cc849c85e2b00e16bc1a21790 (patch)
treefb51356edbfbf3d752b5f5d869ee64a21dfab475 /ghc/GhciMonad.hs
parentb13d546f9c454e6d2a15c20a3e10ec47328e33db (diff)
downloadhaskell-71feb1025eed0c3cc849c85e2b00e16bc1a21790.tar.gz
Ship transformers with GHC
This means that we can use the standard MonadIO class, rather than needing our own copy.
Diffstat (limited to 'ghc/GhciMonad.hs')
-rw-r--r--ghc/GhciMonad.hs22
1 files changed, 6 insertions, 16 deletions
diff --git a/ghc/GhciMonad.hs b/ghc/GhciMonad.hs
index 21c4e8db96..2a6badbff0 100644
--- a/ghc/GhciMonad.hs
+++ b/ghc/GhciMonad.hs
@@ -37,7 +37,6 @@ import SrcLoc
import Module
import ObjLink
import Linker
-import qualified MonadUtils
import Exception
import Numeric
@@ -47,13 +46,13 @@ import Data.IORef
import System.CPUTime
import System.Environment
import System.IO
-import Control.Monad as Monad
+import Control.Monad
import GHC.Exts
import System.Console.Haskeline (CompletionFunc, InputT)
import qualified System.Console.Haskeline as Haskeline
-import Control.Monad.Trans.Class as Trans
-import Control.Monad.IO.Class as Trans
+import Control.Monad.Trans.Class
+import Control.Monad.IO.Class
-----------------------------------------------------------------------------
-- GHCi monad
@@ -186,11 +185,8 @@ modifyGHCiState f = GHCi $ \r -> liftIO $ readIORef r >>= writeIORef r . f
liftGhc :: Ghc a -> GHCi a
liftGhc m = GHCi $ \_ -> m
-instance MonadUtils.MonadIO GHCi where
- liftIO = liftGhc . MonadUtils.liftIO
-
-instance Trans.MonadIO Ghc where
- liftIO = MonadUtils.liftIO
+instance MonadIO GHCi where
+ liftIO = liftGhc . liftIO
instance HasDynFlags GHCi where
getDynFlags = getSessionDynFlags
@@ -206,9 +202,6 @@ instance GhcMonad (InputT GHCi) where
setSession = lift . setSession
getSession = lift getSession
-instance MonadUtils.MonadIO (InputT GHCi) where
- liftIO = Trans.liftIO
-
instance ExceptionMonad GHCi where
gcatch m h = GHCi $ \r -> unGHCi m r `gcatch` (\e -> unGHCi (h e) r)
gblock (GHCi m) = GHCi $ \r -> gblock (m r)
@@ -220,9 +213,6 @@ instance ExceptionMonad GHCi where
in
unGHCi (f g_restore) s
-instance MonadIO GHCi where
- liftIO = MonadUtils.liftIO
-
instance Haskeline.MonadException Ghc where
controlIO f = Ghc $ \s -> Haskeline.controlIO $ \(Haskeline.RunIO run) -> let
run' = Haskeline.RunIO (fmap (Ghc . const) . run . flip unGhc s)
@@ -259,7 +249,7 @@ printForUser :: GhcMonad m => SDoc -> m ()
printForUser doc = do
unqual <- GHC.getPrintUnqual
dflags <- getDynFlags
- MonadUtils.liftIO $ Outputable.printForUser dflags stdout unqual doc
+ liftIO $ Outputable.printForUser dflags stdout unqual doc
printForUserPartWay :: SDoc -> GHCi ()
printForUserPartWay doc = do