ghc-mtl 1.2.0.0 → 1.2.1.0
raw patch · 2 files changed
+14/−8 lines, 2 filesdep ~exceptions
Dependency ranges changed: exceptions
Files
- Control/Monad/Ghc.hs +7/−5
- ghc-mtl.cabal +7/−3
Control/Monad/Ghc.hs view
@@ -64,6 +64,7 @@ instance MonadCatch Ghc where catch = GHC.gcatch +instance MonadMask Ghc where #if __GLASGOW_HASKELL__ >= 700 -- @gmask@ is available... -- ...but it doesn't have a rank-n type like @mask@, so we need@@ -98,7 +99,7 @@ pure = return (<*>) = ap -runGhcT :: (Functor m, MonadIO m, MonadCatch m) => Maybe FilePath -> GhcT m a -> m a+runGhcT :: (Functor m, MonadIO m, MonadCatch m, MonadMask m) => Maybe FilePath -> GhcT m a -> m a runGhcT f = unMTLA . GHC.runGhcT f . unGhcT instance MTL.MonadTrans GhcT where@@ -116,9 +117,10 @@ instance MonadCatch m => MonadThrow (GhcT m) where throwM = lift . throwM -instance (MonadIO m,MonadCatch m) => MonadCatch (GhcT m) where+instance (MonadIO m,MonadCatch m, MonadMask m) => MonadCatch (GhcT m) where m `catch` f = GhcT ((unGhcT m) `GHC.gcatch` (unGhcT . f)) +instance (MonadIO m, MonadMask m) => MonadMask (GhcT m) where mask f = wrap $ \s -> mask $ \io_restore -> unwrap (f $ \m -> (wrap $ \s' -> io_restore (unwrap m s'))) s@@ -128,7 +130,7 @@ uninterruptibleMask = mask -instance (MonadIO m, MonadCatch m) => GHC.ExceptionMonad (GhcT m) where+instance (MonadIO m, MonadCatch m, MonadMask m) => GHC.ExceptionMonad (GhcT m) where gcatch = catch #if __GLASGOW_HASKELL__ >= 700 gmask f = mask (\x -> f x)@@ -143,7 +145,7 @@ getWarnings = GhcT GHC.getWarnings #endif -instance (Functor m, MonadIO m, MonadCatch m) => GHC.GhcMonad (GhcT m) where+instance (Functor m, MonadIO m, MonadCatch m, MonadMask m) => GHC.GhcMonad (GhcT m) where getSession = GhcT GHC.getSession setSession = GhcT . GHC.setSession @@ -156,7 +158,7 @@ liftIO = MTLAdapter . MTL.liftIO -instance (MonadIO m, MonadCatch m) => GHC.ExceptionMonad (MTLAdapter m) where+instance (MonadIO m, MonadCatch m, MonadMask m) => GHC.ExceptionMonad (MTLAdapter m) where m `gcatch` f = MTLAdapter $ (unMTLA m) `catch` (unMTLA . f) #if __GLASGOW_HASKELL__ >= 700
ghc-mtl.cabal view
@@ -1,5 +1,5 @@ name: ghc-mtl-version: 1.2.0.0+version: 1.2.1.0 description: Provides an 'mtl' compatible version of the 'GhcT' monad-transformer defined in the 'GHC-API' since version 6.10.1.@@ -11,16 +11,20 @@ author: Daniel Gorin maintainer: jcpetruzza@gmail.com homepage: http://hub.darcs.net/jcpetruzza/ghc-mtl- cabal-version: >= 1.6 build-type: Simple tested-with: GHC==6.10 +source-repository head+ type: darcs+ location: http://hub.darcs.net/jcpetruzza/ghc-mtl++ Library build-depends: base >= 4, base <= 5, ghc >= 6.10, mtl,- exceptions >= 0.4,+ exceptions >= 0.6, extensible-exceptions exposed-modules: Control.Monad.Ghc extensions: GeneralizedNewtypeDeriving, CPP