packages feed

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 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