packages feed

consistent 0.0.1 → 0.1.0

raw patch · 3 files changed

+16/−14 lines, 3 filesdep ~basedep ~monad-controldep ~transformersPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: base, monad-control, transformers, transformers-base

API changes (from Hackage documentation)

- Control.Concurrent.Consistent: instance Applicative m => Applicative (CTMT m)
- Control.Concurrent.Consistent: instance Applicative m => Applicative (ConsistentT m)
- Control.Concurrent.Consistent: instance Functor m => Functor (CTMT m)
- Control.Concurrent.Consistent: instance Functor m => Functor (ConsistentT m)
- Control.Concurrent.Consistent: instance Monad m => Monad (CTMT m)
- Control.Concurrent.Consistent: instance Monad m => Monad (ConsistentT m)
- Control.Concurrent.Consistent: instance MonadBase IO m => MonadBase IO (ConsistentT m)
- Control.Concurrent.Consistent: instance MonadBaseControl IO m => MonadBaseControl IO (ConsistentT m)
- Control.Concurrent.Consistent: instance MonadIO m => MonadIO (CTMT m)
- Control.Concurrent.Consistent: instance MonadIO m => MonadIO (ConsistentT m)
+ Control.Concurrent.Consistent: instance Control.Monad.Base.MonadBase GHC.Types.IO m => Control.Monad.Base.MonadBase GHC.Types.IO (Control.Concurrent.Consistent.ConsistentT m)
+ Control.Concurrent.Consistent: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Control.Concurrent.Consistent.CTMT m)
+ Control.Concurrent.Consistent: instance Control.Monad.IO.Class.MonadIO m => Control.Monad.IO.Class.MonadIO (Control.Concurrent.Consistent.ConsistentT m)
+ Control.Concurrent.Consistent: instance Control.Monad.Trans.Control.MonadBaseControl GHC.Types.IO m => Control.Monad.Trans.Control.MonadBaseControl GHC.Types.IO (Control.Concurrent.Consistent.ConsistentT m)
+ Control.Concurrent.Consistent: instance GHC.Base.Applicative m => GHC.Base.Applicative (Control.Concurrent.Consistent.CTMT m)
+ Control.Concurrent.Consistent: instance GHC.Base.Applicative m => GHC.Base.Applicative (Control.Concurrent.Consistent.ConsistentT m)
+ Control.Concurrent.Consistent: instance GHC.Base.Functor m => GHC.Base.Functor (Control.Concurrent.Consistent.CTMT m)
+ Control.Concurrent.Consistent: instance GHC.Base.Functor m => GHC.Base.Functor (Control.Concurrent.Consistent.ConsistentT m)
+ Control.Concurrent.Consistent: instance GHC.Base.Monad m => GHC.Base.Monad (Control.Concurrent.Consistent.CTMT m)
+ Control.Concurrent.Consistent: instance GHC.Base.Monad m => GHC.Base.Monad (Control.Concurrent.Consistent.ConsistentT m)

Files

Control/Concurrent/Consistent.hs view
@@ -4,6 +4,7 @@ {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE RecordWildCards #-} {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE UndecidableInstances #-}  {-# OPTIONS_GHC -fno-warn-unused-binds #-} @@ -49,12 +50,11 @@     liftBase b = ConsistentT $ liftBase b  instance MonadBaseControl IO m => MonadBaseControl IO (ConsistentT m) where-    newtype StM (ConsistentT m) a =-        StMConsistentT (StM (ReaderT ConsistentState m) a)-    liftBaseWith f =-        ConsistentT $ liftBaseWith $ \runInBase -> f $ \k ->-            liftM StMConsistentT $ runInBase $ getConsistentT k-    restoreM (StMConsistentT m) = ConsistentT . restoreM $ m+    type StM (ConsistentT m) a =+        StM (ReaderT ConsistentState m) a+    liftBaseWith f = ConsistentT $ liftBaseWith $ \runInBase ->+        f $ \k -> runInBase $ getConsistentT k+    restoreM = ConsistentT . restoreM  newtype CTMT m a = CTMT (WriterT [STM (Maybe (STM ()))] (ConsistentT m) a)     deriving (Functor, Applicative, Monad, MonadIO)
consistent.cabal view
@@ -1,5 +1,5 @@ Name:                consistent-Version:             0.0.1+Version:             0.1.0 Synopsis:            Eventually consistent STM transactions. License-file:        LICENSE License:             MIT@@ -10,10 +10,10 @@ Category:            System Description:   Eventually consistent STM transactions.-  \+  .   Consistent provides eventually consistent atomic transactions, by delaying   updates until no threads is mutating a shared variable.-  \+  .   This comes at a cost of having a separate TVar for every thread, but has the   advantage that no thread will ever lock or retry except for the manager actor   responsible for performing the updates.@@ -26,10 +26,10 @@     default-language:   Haskell98     ghc-options: -Wall     build-depends:-        base                 >= 3 && < 5-      , monad-control        >= 0.3.2.3-      , transformers         >= 0.3.0.0-      , transformers-base    >= 0.4.1+        base                 >= 4.9 && < 4.10+      , monad-control        >= 1.0.1+      , transformers         >= 0.5+      , transformers-base    >= 0.4       , lifted-base          >= 0.2.2.0       , lifted-async         >= 0.1.1       , unordered-containers >= 0.2.3.0@@ -46,5 +46,5 @@     build-depends:         base       , consistent-      , transformers         >= 0.3.0.0+      , transformers         >= 0.4       , lifted-async         >= 0.1.1
test/main.hs view
@@ -1,3 +1,5 @@+{-# LANGUAGE FlexibleContexts #-}+ module Main where  import Control.Concurrent