consistent-0.1.0: Eventually consistent STM transactions.

Safe HaskellNone
LanguageHaskell98

Control.Concurrent.Consistent

Documentation

data ConsistentT m a Source #

Instances

MonadBase IO m => MonadBase IO (ConsistentT m) Source # 

Methods

liftBase :: IO α -> ConsistentT m α #

MonadBaseControl IO m => MonadBaseControl IO (ConsistentT m) Source # 

Associated Types

type StM (ConsistentT m :: * -> *) a :: * #

Monad m => Monad (ConsistentT m) Source # 

Methods

(>>=) :: ConsistentT m a -> (a -> ConsistentT m b) -> ConsistentT m b #

(>>) :: ConsistentT m a -> ConsistentT m b -> ConsistentT m b #

return :: a -> ConsistentT m a #

fail :: String -> ConsistentT m a #

Functor m => Functor (ConsistentT m) Source # 

Methods

fmap :: (a -> b) -> ConsistentT m a -> ConsistentT m b #

(<$) :: a -> ConsistentT m b -> ConsistentT m a #

Applicative m => Applicative (ConsistentT m) Source # 

Methods

pure :: a -> ConsistentT m a #

(<*>) :: ConsistentT m (a -> b) -> ConsistentT m a -> ConsistentT m b #

(*>) :: ConsistentT m a -> ConsistentT m b -> ConsistentT m b #

(<*) :: ConsistentT m a -> ConsistentT m b -> ConsistentT m a #

MonadIO m => MonadIO (ConsistentT m) Source # 

Methods

liftIO :: IO a -> ConsistentT m a #

type StM (ConsistentT m) a Source # 
type StM (ConsistentT m) a

data CTMT m a Source #

Instances

Monad m => Monad (CTMT m) Source # 

Methods

(>>=) :: CTMT m a -> (a -> CTMT m b) -> CTMT m b #

(>>) :: CTMT m a -> CTMT m b -> CTMT m b #

return :: a -> CTMT m a #

fail :: String -> CTMT m a #

Functor m => Functor (CTMT m) Source # 

Methods

fmap :: (a -> b) -> CTMT m a -> CTMT m b #

(<$) :: a -> CTMT m b -> CTMT m a #

Applicative m => Applicative (CTMT m) Source # 

Methods

pure :: a -> CTMT m a #

(<*>) :: CTMT m (a -> b) -> CTMT m a -> CTMT m b #

(*>) :: CTMT m a -> CTMT m b -> CTMT m b #

(<*) :: CTMT m a -> CTMT m b -> CTMT m a #

MonadIO m => MonadIO (CTMT m) Source # 

Methods

liftIO :: IO a -> CTMT m a #

data CVar a Source #

newCVar :: MonadIO m => a -> m (CVar a) Source #

dupCVar :: MonadIO m => CVar a -> m (CVar a) Source #

readCVar :: MonadIO m => CVar a -> m a Source #

writeCVar :: MonadIO m => CVar a -> a -> CTMT m () Source #

swapCVar :: MonadIO m => CVar a -> a -> CTMT m a Source #

modifyCVar :: MonadIO m => CVar a -> (a -> a) -> CTMT m () Source #