diff options
author | Ian Lynagh <ian@well-typed.com> | 2013-01-02 20:49:07 +0000 |
---|---|---|
committer | Ian Lynagh <ian@well-typed.com> | 2013-01-02 21:10:45 +0000 |
commit | 71feb1025eed0c3cc849c85e2b00e16bc1a21790 (patch) | |
tree | fb51356edbfbf3d752b5f5d869ee64a21dfab475 /ghc/GhciMonad.hs | |
parent | b13d546f9c454e6d2a15c20a3e10ec47328e33db (diff) | |
download | haskell-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.hs | 22 |
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 |