lifted-stm-0.2: STM operations lifted through monad transformer stacks

Safe HaskellNone
LanguageHaskell2010

Control.Monad.STM.Lifted

Description

Lifted STM operations.

Synopsis

Documentation

data STM a #

A monad supporting atomic memory transactions.

Instances
Monad STM

Since: base-4.3.0.0

Instance details

Defined in GHC.Conc.Sync

Methods

(>>=) :: STM a -> (a -> STM b) -> STM b #

(>>) :: STM a -> STM b -> STM b #

return :: a -> STM a #

fail :: String -> STM a #

Functor STM

Since: base-4.3.0.0

Instance details

Defined in GHC.Conc.Sync

Methods

fmap :: (a -> b) -> STM a -> STM b #

(<$) :: a -> STM b -> STM a #

Applicative STM

Since: base-4.8.0.0

Instance details

Defined in GHC.Conc.Sync

Methods

pure :: a -> STM a #

(<*>) :: STM (a -> b) -> STM a -> STM b #

liftA2 :: (a -> b -> c) -> STM a -> STM b -> STM c #

(*>) :: STM a -> STM b -> STM b #

(<*) :: STM a -> STM b -> STM a #

Alternative STM

Since: base-4.8.0.0

Instance details

Defined in GHC.Conc.Sync

Methods

empty :: STM a #

(<|>) :: STM a -> STM a -> STM a #

some :: STM a -> STM [a] #

many :: STM a -> STM [a] #

MonadPlus STM

Since: base-4.3.0.0

Instance details

Defined in GHC.Conc.Sync

Methods

mzero :: STM a #

mplus :: STM a -> STM a -> STM a #

MonadSTM STM Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: STM α -> STM α -> STM α Source #

MonadAbort SomeException STM 
Instance details

Defined in Control.Monad.Abort.Class

Methods

abort :: SomeException -> STM α #

MonadRecover SomeException STM 
Instance details

Defined in Control.Monad.Abort.Class

Methods

recover :: STM α -> (SomeException -> STM α) -> STM α #

evaluate :: STM α -> STM (Either SomeException α) #

MonadBase STM STM 
Instance details

Defined in Control.Monad.Base

Methods

liftBase :: STM α -> STM α #

MArray TArray e STM 
Instance details

Defined in Control.Concurrent.STM.TArray

Methods

getBounds :: Ix i => TArray i e -> STM (i, i) #

getNumElements :: Ix i => TArray i e -> STM Int

newArray :: Ix i => (i, i) -> e -> STM (TArray i e) #

newArray_ :: Ix i => (i, i) -> STM (TArray i e) #

unsafeNewArray_ :: Ix i => (i, i) -> STM (TArray i e)

unsafeRead :: Ix i => TArray i e -> Int -> STM e

unsafeWrite :: Ix i => TArray i e -> Int -> e -> STM ()

class (MonadBase STM μ, MonadCatch μ) => MonadSTM μ where Source #

Class of monads that have STM as their base and support composing alternative (vs retries) actions.

Minimal complete definition

orElse

Methods

orElse :: μ α -> μ α -> μ α Source #

Equivalent to the first action, unless it retries. It which case the second action is performed in its place.

Instances
MonadSTM STM Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: STM α -> STM α -> STM α Source #

MonadSTM μ => MonadSTM (MaybeT μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: MaybeT μ α -> MaybeT μ α -> MaybeT μ α Source #

MonadSTM μ => MonadSTM (IdentityT μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: IdentityT μ α -> IdentityT μ α -> IdentityT μ α Source #

MonadSTM μ => MonadSTM (FinishT r μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: FinishT r μ α -> FinishT r μ α -> FinishT r μ α Source #

(Monoid w, MonadSTM μ) => MonadSTM (WriterT w μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: WriterT w μ α -> WriterT w μ α -> WriterT w μ α Source #

MonadSTM μ => MonadSTM (StateT s μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: StateT s μ α -> StateT s μ α -> StateT s μ α Source #

MonadSTM μ => MonadSTM (StateT s μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: StateT s μ α -> StateT s μ α -> StateT s μ α Source #

(Monoid w, MonadSTM μ) => MonadSTM (WriterT w μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: WriterT w μ α -> WriterT w μ α -> WriterT w μ α Source #

(Monoid w, MonadSTM μ) => MonadSTM (AccumT w μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: AccumT w μ α -> AccumT w μ α -> AccumT w μ α Source #

MonadSTM μ => MonadSTM (ReaderT w μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: ReaderT w μ α -> ReaderT w μ α -> ReaderT w μ α Source #

(Monoid w, MonadSTM μ) => MonadSTM (RWST r w s μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: RWST r w s μ α -> RWST r w s μ α -> RWST r w s μ α Source #

(Monoid w, MonadSTM μ) => MonadSTM (RWST r w s μ) Source # 
Instance details

Defined in Control.Monad.STM.Lifted

Methods

orElse :: RWST r w s μ α -> RWST r w s μ α -> RWST r w s μ α Source #

atomically :: MonadBase IO μ => STM α -> μ α Source #

A lifted version of atomically.

retry :: MonadBase STM μ => μ α Source #

A lifted version of retry.

check :: MonadBase STM μ => Bool -> μ () Source #

A lifted version of check.

throwSTM :: (Exception e, MonadBase STM μ) => e -> μ α Source #

A lifted version of throwSTM.

catchSTM :: (Exception e, MonadSTM μ) => μ α -> (e -> μ α) -> μ α Source #

A specialized version of catch.