monads-fd 0.0.0.0 → 0.0.0.1
raw patch · 7 files changed
+66/−4 lines, 7 filesdep ~transformersPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
Dependency ranges changed: transformers
API changes (from Hackage documentation)
+ Control.Monad.Cont.Class: instance (MonadCont m) => MonadCont (IdentityT m)
+ Control.Monad.Cont.Class: instance (MonadCont m) => MonadCont (MaybeT m)
+ Control.Monad.Error.Class: instance (MonadError e m) => MonadError e (IdentityT m)
+ Control.Monad.Error.Class: instance (MonadError e m) => MonadError e (MaybeT m)
+ Control.Monad.Error.Class: noMsg :: (Error a) => a
+ Control.Monad.Error.Class: strMsg :: (Error a) => String -> a
+ Control.Monad.RWS.Class: instance (MonadRWS r w s m) => MonadRWS r w s (IdentityT m)
+ Control.Monad.RWS.Class: instance (MonadRWS r w s m) => MonadRWS r w s (MaybeT m)
+ Control.Monad.Reader.Class: instance (MonadReader r m) => MonadReader r (IdentityT m)
+ Control.Monad.Reader.Class: instance (MonadReader r m) => MonadReader r (MaybeT m)
+ Control.Monad.State.Class: instance (MonadState s m) => MonadState s (IdentityT m)
+ Control.Monad.State.Class: instance (MonadState s m) => MonadState s (MaybeT m)
+ Control.Monad.Writer.Class: instance (MonadWriter w m) => MonadWriter w (IdentityT m)
+ Control.Monad.Writer.Class: instance (MonadWriter w m) => MonadWriter w (MaybeT m)
Files
- Control/Monad/Cont/Class.hs +8/−0
- Control/Monad/Error/Class.hs +12/−2
- Control/Monad/RWS/Class.hs +10/−0
- Control/Monad/Reader/Class.hs +12/−0
- Control/Monad/State/Class.hs +10/−0
- Control/Monad/Writer/Class.hs +12/−0
- monads-fd.cabal +2/−2
Control/Monad/Cont/Class.hs view
@@ -55,7 +55,9 @@ import Control.Monad.Trans.Cont (ContT) import qualified Control.Monad.Trans.Cont as ContT import Control.Monad.Trans.Error as Error+import Control.Monad.Trans.Identity as Identity import Control.Monad.Trans.List as List+import Control.Monad.Trans.Maybe as Maybe import Control.Monad.Trans.Reader as Reader import Control.Monad.Trans.RWS.Lazy as LazyRWS import Control.Monad.Trans.RWS.Strict as StrictRWS@@ -97,8 +99,14 @@ instance (Error e, MonadCont m) => MonadCont (ErrorT e m) where callCC = Error.liftCallCC callCC +instance (MonadCont m) => MonadCont (IdentityT m) where+ callCC = Identity.liftCallCC callCC+ instance (MonadCont m) => MonadCont (ListT m) where callCC = List.liftCallCC callCC++instance (MonadCont m) => MonadCont (MaybeT m) where+ callCC = Maybe.liftCallCC callCC instance (MonadCont m) => MonadCont (ReaderT r m) where callCC = Reader.liftCallCC callCC
Control/Monad/Error/Class.hs view
@@ -34,13 +34,15 @@ Andy Gill (<http://web.cecs.pdx.edu/~andy/>) -} module Control.Monad.Error.Class (- Error,+ Error(..), MonadError(..), ) where -import Control.Monad.Trans.Error (Error, ErrorT)+import Control.Monad.Trans.Error (Error(..), ErrorT) import qualified Control.Monad.Trans.Error as ErrorT (throwError, catchError)+import Control.Monad.Trans.Identity as Identity import Control.Monad.Trans.List as List+import Control.Monad.Trans.Maybe as Maybe import Control.Monad.Trans.Reader as Reader import Control.Monad.Trans.RWS.Lazy as LazyRWS import Control.Monad.Trans.RWS.Strict as StrictRWS@@ -105,9 +107,17 @@ -- --------------------------------------------------------------------------- -- Instances for other mtl transformers +instance (MonadError e m) => MonadError e (IdentityT m) where+ throwError = lift . throwError+ catchError = Identity.liftCatch catchError+ instance (MonadError e m) => MonadError e (ListT m) where throwError = lift . throwError catchError = List.liftCatch catchError++instance (MonadError e m) => MonadError e (MaybeT m) where+ throwError = lift . throwError+ catchError = Maybe.liftCatch catchError instance (MonadError e m) => MonadError e (ReaderT r m) where throwError = lift . throwError
Control/Monad/RWS/Class.hs view
@@ -33,6 +33,8 @@ import Control.Monad.Writer.Class import Control.Monad.Trans.Error(Error, ErrorT)+import Control.Monad.Trans.Maybe(MaybeT)+import Control.Monad.Trans.Identity(IdentityT) import Control.Monad.Trans.RWS.Lazy as Lazy (RWST) import qualified Control.Monad.Trans.RWS.Strict as Strict (RWST) @@ -51,3 +53,11 @@ -- This instance needs UndecidableInstances, because -- it does not satisfy the coverage condition instance (Error e, MonadRWS r w s m) => MonadRWS r w s (ErrorT e m)+ +-- This instance needs UndecidableInstances, because+-- it does not satisfy the coverage condition+instance (MonadRWS r w s m) => MonadRWS r w s (IdentityT m)+ +-- This instance needs UndecidableInstances, because+-- it does not satisfy the coverage condition+instance (MonadRWS r w s m) => MonadRWS r w s (MaybeT m)
Control/Monad/Reader/Class.hs view
@@ -45,7 +45,9 @@ import Control.Monad.Trans.Cont as Cont import Control.Monad.Trans.Error+import Control.Monad.Trans.Identity import Control.Monad.Trans.List+import Control.Monad.Trans.Maybe import Control.Monad.Trans.Reader (ReaderT) import qualified Control.Monad.Trans.Reader as ReaderT (ask, local) import qualified Control.Monad.Trans.RWS.Lazy as LazyRWS (RWST, ask, local)@@ -116,9 +118,19 @@ local = mapErrorT . local -- Needs UndecidableInstances+instance (MonadReader r m) => MonadReader r (IdentityT m) where+ ask = lift ask+ local = mapIdentityT . local++-- Needs UndecidableInstances instance (MonadReader r m) => MonadReader r (ListT m) where ask = lift ask local = mapListT . local++-- Needs UndecidableInstances+instance (MonadReader r m) => MonadReader r (MaybeT m) where+ ask = lift ask+ local = mapMaybeT . local -- Needs UndecidableInstances instance (MonadReader r m) => MonadReader r (Lazy.StateT s m) where
Control/Monad/State/Class.hs view
@@ -31,7 +31,9 @@ import Control.Monad.Trans (lift) import Control.Monad.Trans.Cont import Control.Monad.Trans.Error+import Control.Monad.Trans.Identity import Control.Monad.Trans.List+import Control.Monad.Trans.Maybe import Control.Monad.Trans.Reader import qualified Control.Monad.Trans.RWS.Lazy as LazyRWS (RWST, get, put) import qualified Control.Monad.Trans.RWS.Strict as StrictRWS (RWST, get, put)@@ -105,7 +107,15 @@ get = lift get put = lift . put +instance (MonadState s m) => MonadState s (IdentityT m) where+ get = lift get+ put = lift . put+ instance (MonadState s m) => MonadState s (ListT m) where+ get = lift get+ put = lift . put++instance (MonadState s m) => MonadState s (MaybeT m) where get = lift get put = lift . put
Control/Monad/Writer/Class.hs view
@@ -29,6 +29,8 @@ import Control.Monad import Control.Monad.Trans.Error as Error+import Control.Monad.Trans.Identity as Identity+import Control.Monad.Trans.Maybe as Maybe import Control.Monad.Trans.Reader import qualified Control.Monad.Trans.RWS.Lazy as LazyRWS ( RWST, tell, listen, pass)@@ -99,6 +101,16 @@ tell = lift . tell listen = Error.liftListen listen pass = Error.liftPass pass++instance (MonadWriter w m) => MonadWriter w (IdentityT m) where+ tell = lift . tell+ listen = Identity.mapIdentityT listen+ pass = Identity.mapIdentityT pass++instance (MonadWriter w m) => MonadWriter w (MaybeT m) where+ tell = lift . tell+ listen = Maybe.liftListen listen+ pass = Maybe.liftPass pass instance (MonadWriter w m) => MonadWriter w (ReaderT r m) where tell = lift . tell
monads-fd.cabal view
@@ -1,5 +1,5 @@ name: monads-fd-version: 0.0.0.0+version: 0.0.0.1 license: BSD3 license-file: LICENSE author: Andy Gill@@ -36,7 +36,7 @@ Control.Monad.Writer.Class Control.Monad.Writer.Lazy Control.Monad.Writer.Strict-build-depends: base, transformers+build-depends: base, transformers >= 0.1.4.0 extensions: MultiParamTypeClasses FunctionalDependencies