ether 0.4.1.0 → 0.4.2.0
raw patch · 3 files changed
+53/−1 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
+ Control.Monad.Trans.Ether.Dispatch: instance forall k (m :: * -> *) (dp :: k). Control.Monad.Cont.Class.MonadCont m => Control.Monad.Cont.Class.MonadCont (Control.Monad.Trans.Ether.Dispatch.DispatchT dp m)
+ Control.Monad.Trans.Ether.Dispatch: instance forall k e (m :: * -> *) (dp :: k). Control.Monad.Error.Class.MonadError e m => Control.Monad.Error.Class.MonadError e (Control.Monad.Trans.Ether.Dispatch.DispatchT dp m)
+ Control.Monad.Trans.Ether.Dispatch: instance forall k r (m :: * -> *) (dp :: k). Control.Monad.Reader.Class.MonadReader r m => Control.Monad.Reader.Class.MonadReader r (Control.Monad.Trans.Ether.Dispatch.DispatchT dp m)
+ Control.Monad.Trans.Ether.Dispatch: instance forall k s (m :: * -> *) (dp :: k). Control.Monad.State.Class.MonadState s m => Control.Monad.State.Class.MonadState s (Control.Monad.Trans.Ether.Dispatch.DispatchT dp m)
+ Control.Monad.Trans.Ether.Dispatch: instance forall k w (m :: * -> *) (dp :: k). Control.Monad.Writer.Class.MonadWriter w m => Control.Monad.Writer.Class.MonadWriter w (Control.Monad.Trans.Ether.Dispatch.DispatchT dp m)
Files
- CHANGELOG.md +5/−0
- ether.cabal +1/−1
- src/Control/Monad/Trans/Ether/Dispatch.hs +47/−0
CHANGELOG.md view
@@ -1,3 +1,8 @@+0.4.2.0+-------++* Add default MTL instances for DispatchT.+ 0.4.1.0 -------
ether.cabal view
@@ -1,5 +1,5 @@ name: ether-version: 0.4.1.0+version: 0.4.2.0 synopsis: Monad transformers and classes description: Ether is a Haskell library that extends @mtl@ and @transformers@ with
src/Control/Monad/Trans/Ether/Dispatch.hs view
@@ -1,5 +1,10 @@ {-# LANGUAGE CPP #-} +#if __GLASGOW_HASKELL__ < 710+{-# LANGUAGE OverlappingInstances #-}+{-# OPTIONS_GHC -fno-warn-unrecognised-pragmas #-}+#endif+ #if __GLASGOW_HASKELL__ >= 710 {-# OPTIONS_GHC -fno-warn-unticked-promoted-constructors #-} #endif@@ -84,6 +89,7 @@ import Control.Monad.Ether.Except.Class import Control.Monad.Ether.Writer.Class +import qualified Control.Monad.Cont as Class import qualified Control.Monad.Reader as Class import qualified Control.Monad.State as Class import qualified Control.Monad.Except as Class@@ -207,3 +213,44 @@ tell _ = let t = Proxy :: Proxy tNew in Lift.lift . tell t listen _ = let t = Proxy :: Proxy tNew in Lift.liftListen (listen t) pass _ = let t = Proxy :: Proxy tNew in Lift.liftPass (pass t)+++-- Instances for mtl classes++instance {-# OVERLAPPABLE #-}+ ( Class.MonadCont m+ ) => Class.MonadCont (DispatchT dp m)+ where+ callCC = Lift.liftCallCC' Class.callCC++instance {-# OVERLAPPABLE #-}+ ( Class.MonadReader r m+ ) => Class.MonadReader r (DispatchT dp m)+ where+ ask = Class.lift Class.ask+ local = Lift.liftLocal Class.ask Class.local+ reader = Class.lift . Class.reader++instance {-# OVERLAPPABLE #-}+ ( Class.MonadState s m+ ) => Class.MonadState s (DispatchT dp m)+ where+ get = Class.lift Class.get+ put = Class.lift . Class.put+ state = Class.lift . Class.state++instance {-# OVERLAPPABLE #-}+ ( Class.MonadWriter w m+ ) => Class.MonadWriter w (DispatchT dp m)+ where+ writer = Class.lift . Class.writer+ tell = Class.lift . Class.tell+ listen = Lift.liftListen Class.listen+ pass = Lift.liftPass Class.pass++instance {-# OVERLAPPABLE #-}+ ( Class.MonadError e m+ ) => Class.MonadError e (DispatchT dp m)+ where+ throwError = Class.lift . Class.throwError+ catchError = Lift.liftCatch Class.catchError