packages feed

haskey-mtl 0.3.0.1 → 0.3.1.0

raw patch · 2 files changed

+23/−2 lines, 2 filesdep +monad-controldep +transformers-basePVP ok

version bump matches the API change (PVP)

Dependencies added: monad-control, transformers-base

API changes (from Hackage documentation)

+ Control.Monad.Haskey: instance Control.Monad.Base.MonadBase GHC.Types.IO m => Control.Monad.Base.MonadBase GHC.Types.IO (Control.Monad.Haskey.HaskeyT root m)
+ Control.Monad.Haskey: instance Control.Monad.Trans.Control.MonadBaseControl GHC.Types.IO m => Control.Monad.Trans.Control.MonadBaseControl GHC.Types.IO (Control.Monad.Haskey.HaskeyT root m)
+ Control.Monad.Haskey: instance Control.Monad.Trans.Control.MonadTransControl (Control.Monad.Haskey.HaskeyT root)

Files

haskey-mtl.cabal view
@@ -1,5 +1,5 @@ name:                haskey-mtl-version:             0.3.0.1+version:             0.3.1.0 synopsis:            A monad transformer supporting Haskey transactions. description:     This library provides a monad transformer supporting Haskey transactions,@@ -29,7 +29,9 @@     mtl                     >=2.1  && <3,     transformers            >=0.3  && <1,     haskey-btree            >=0.3 && <0.4,-    haskey                  >=0.3 && <0.4+    haskey                  >=0.3 && <0.4,+    monad-control           >=1.0.1.0 && <1.0.2.4,+    transformers-base       >=0.4.4 && <0.5    default-language:    Haskell2010   ghc-options:         -Wall
src/Control/Monad/Haskey.hs view
@@ -2,6 +2,8 @@ {-# LANGUAGE FunctionalDependencies #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE RankNTypes #-}+{-# LANGUAGE StandaloneDeriving #-}+{-# LANGUAGE TypeFamilies #-} {-# LANGUAGE UndecidableInstances #-} -- | A monad transformer supporting Haskey transactions. --@@ -33,8 +35,13 @@ import Control.Monad.Reader (MonadReader(..), ReaderT(..), asks) import Control.Monad.Trans.Class (MonadTrans(..)) +import Control.Monad.Base (MonadBase(..)) import Control.Monad.RWS (MonadRWS) import Control.Monad.State (MonadState(..))+import Control.Monad.Trans.Control (MonadTransControl(..), MonadBaseControl(..),+                                    ComposeSt(..), defaultLiftBaseWith,+                                    defaultRestoreM, defaultLiftWith,+                                    defaultRestoreT) import Control.Monad.Writer (MonadWriter(..)) import qualified Control.Monad.RWS.Lazy as RWSL import qualified Control.Monad.RWS.Strict as RWSS@@ -84,6 +91,18 @@  instance MonadTrans (HaskeyT root) where     lift = HaskeyT . lift++deriving instance MonadBase IO m => MonadBase IO (HaskeyT root m)++instance MonadTransControl (HaskeyT root) where+    type StT (HaskeyT root) a = StT (ReaderT (ConcurrentDb root, FileStoreConfig)) a+    liftWith = defaultLiftWith HaskeyT fromHaskeyT+    restoreT = defaultRestoreT HaskeyT++instance MonadBaseControl IO m => MonadBaseControl IO (HaskeyT root m) where+    type StM (HaskeyT root m) a = ComposeSt (HaskeyT root) m a+    liftBaseWith = defaultLiftBaseWith+    restoreM     = defaultRestoreM  -- | Run Haskey transactions, backed by a file store. runHaskeyT :: (Root root, MonadMask m, MonadIO m)