packages feed

monads-tf 0.0.0.0 → 0.0.0.1

raw patch · 8 files changed

+78/−6 lines, 8 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 m) => MonadError (IdentityT m)
+ Control.Monad.Error.Class: instance (MonadError m) => MonadError (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 m) => MonadRWS (IdentityT m)
+ Control.Monad.RWS.Class: instance (MonadRWS m) => MonadRWS (MaybeT m)
+ Control.Monad.Reader: ask :: (MonadReader m) => m (EnvType m)
+ Control.Monad.Reader: asks :: (MonadReader m) => (EnvType m -> a) -> m a
+ Control.Monad.Reader: class (Monad m) => MonadReader m where { type family EnvType m; }
+ Control.Monad.Reader: local :: (MonadReader m) => (EnvType m -> EnvType m) -> m a -> m a
+ Control.Monad.Reader: runReader :: Reader r a -> r -> a
+ Control.Monad.Reader.Class: instance (MonadReader m) => MonadReader (IdentityT m)
+ Control.Monad.Reader.Class: instance (MonadReader m) => MonadReader (MaybeT m)
+ Control.Monad.State.Class: instance (MonadState m) => MonadState (IdentityT m)
+ Control.Monad.State.Class: instance (MonadState m) => MonadState (MaybeT m)
+ Control.Monad.Writer.Class: instance (MonadWriter m) => MonadWriter (IdentityT m)
+ Control.Monad.Writer.Class: instance (MonadWriter m) => MonadWriter (MaybeT m)

Files

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
@@ -32,13 +32,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@@ -108,10 +110,20 @@ -- --------------------------------------------------------------------------- -- Instances for other mtl transformers +instance (MonadError m) => MonadError (IdentityT m) where+    type ErrorType (IdentityT m) = ErrorType m+    throwError = lift . throwError+    catchError = Identity.liftCatch catchError+ instance (MonadError m) => MonadError (ListT m) where     type ErrorType (ListT m) = ErrorType m     throwError = lift . throwError     catchError = List.liftCatch catchError++instance (MonadError m) => MonadError (MaybeT m) where+    type ErrorType (MaybeT m) = ErrorType m+    throwError = lift . throwError+    catchError = Maybe.liftCatch catchError  instance (MonadError m) => MonadError (ReaderT r m) where     type ErrorType (ReaderT r m) = ErrorType m
Control/Monad/RWS/Class.hs view
@@ -1,4 +1,5 @@ +----------------------------------------------------------------------------- -- | -- Module      :  Control.Monad.RWS.Class -- Copyright   :  (c) Andy Gill 2001,@@ -30,6 +31,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) @@ -46,3 +49,7 @@ -- Instances for other mtl transformers   instance (Error e, MonadRWS m) => MonadRWS (ErrorT e m)+ +instance (MonadRWS m) => MonadRWS (IdentityT m)+ +instance (MonadRWS m) => MonadRWS (MaybeT m)
Control/Monad/Reader.hs view
@@ -37,10 +37,15 @@ -}  module Control.Monad.Reader (-    module Control.Monad.Reader.Class,+    -- * MonadReader class+    MonadReader(..),+    asks,+    -- * The Reader monad     Reader,+    runReader,     mapReader,     withReader,+    -- * The ReaderT monad transformer     ReaderT(..),     mapReaderT,     withReaderT,@@ -59,7 +64,9 @@  import Control.Monad.Reader.Class -import Control.Monad.Trans.Reader hiding (ask, local, asks)+import Control.Monad.Trans.Reader (+    Reader, runReader, mapReader, withReader,+    ReaderT(..), mapReaderT, withReaderT) import Control.Monad.Trans  import Control.Monad
Control/Monad/Reader/Class.hs view
@@ -44,7 +44,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)@@ -121,10 +123,20 @@     ask   = lift ask     local = mapErrorT . local +instance (MonadReader m) => MonadReader (IdentityT m) where+    type EnvType (IdentityT m) = EnvType m+    ask   = lift ask+    local = mapIdentityT . local+ instance (MonadReader m) => MonadReader (ListT m) where     type EnvType (ListT m) = EnvType m     ask   = lift ask     local = mapListT . local++instance (MonadReader m) => MonadReader (MaybeT m) where+    type EnvType (MaybeT m) = EnvType m+    ask   = lift ask+    local = mapMaybeT . local  instance (MonadReader m) => MonadReader (Lazy.StateT s m) where     type EnvType (Lazy.StateT s m) = EnvType m
Control/Monad/State/Class.hs view
@@ -28,7 +28,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)@@ -108,8 +110,18 @@     get = lift get     put = lift . put +instance (MonadState m) => MonadState (IdentityT m) where+    type StateType (IdentityT m) = StateType m+    get = lift get+    put = lift . put+ instance (MonadState m) => MonadState (ListT m) where     type StateType (ListT m) = StateType m+    get = lift get+    put = lift . put++instance (MonadState m) => MonadState (MaybeT m) where+    type StateType (MaybeT m) = StateType m     get = lift get     put = lift . put 
Control/Monad/Writer/Class.hs view
@@ -26,6 +26,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)@@ -100,6 +102,18 @@     tell   = lift . tell     listen = Error.liftListen listen     pass   = Error.liftPass pass++instance (MonadWriter m) => MonadWriter (IdentityT m) where+    type WriterType (IdentityT m) = WriterType m+    tell   = lift . tell+    listen = Identity.mapIdentityT listen+    pass   = Identity.mapIdentityT pass++instance (MonadWriter m) => MonadWriter (MaybeT m) where+    type WriterType (MaybeT m) = WriterType m+    tell   = lift . tell+    listen = Maybe.liftListen listen+    pass   = Maybe.liftPass pass  instance (MonadWriter m) => MonadWriter (ReaderT r m) where     type WriterType (ReaderT r m) = WriterType m
monads-tf.cabal view
@@ -1,5 +1,5 @@ name:         monads-tf-version:      0.0.0.0+version:      0.0.0.1 license:      BSD3 license-file: LICENSE cabal-version: >= 1.2.3@@ -37,7 +37,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:     FlexibleContexts     TypeFamilies