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 +4/−2
- src/Control/Monad/Haskey.hs +19/−0
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)