Module Control.concurrent.STM

Imports

Table of Content

Definitions

data STMWorld = pure native frege.runtime.Phantom.STM
data STMResult α

Constructors

Result α
Retry
data STM α

Constructors

STM (ST STMWorld (STMResult α))
data TVar α

Container for shared mutable data.

Constructors

private TVar (Mutable STMWorld (NativeTVar α))

Member Functions

newαSTM (TVar α)
readTVar αSTM α
writeTVar ααSTM ()
newTVarαSTM (TVar α)

Alias for TVar.new

readTVarTVar αSTM α

Alias for TVar.read

writeTVarTVar ααSTM ()

Alias for TVar.write

retrySTM α
checkBoolSTM ()
atomicallySTM αIO α

Executes an STM action.

type TMVar α = TVar (Maybe α)

TMVars are MVars implemented using STM

newEmptyTMVarSTM (TMVar α)
newTMVar ∷ α → STM (TMVar α)
takeTMVarTMVar αSTM α
putTMVarTMVar α → α → STM ()
pollTMVarTMVar αSTM (Maybe α)

Instances

instance MonadOr STM

Member Functions

orElseSTM αSTM αSTM α
instance MonadPlus STM

Member Functions

mplusSTM α → STM α → STM α
infixr  13
instance MonadZero STM

Member Functions

mzeroSTM α
instance Monad STM

Member Functions

*>STM α → STM β → STM β
infixl  4

inherited from Applicative.*>

<*STM α → STM β → STM α
infixl  4

inherited from Applicative.<*

<*>STM (α→β) → STM α → STM β
infixl  4

inherited from Monad.<*>

>>STM αSTM β → STM β
infixl  3

inherited from Monad.>>

>>=STM α → (α → STM β) → STM β
infixl  3
fmap ∷ (α → β) → STM αSTM β
infixl  4

inherited from Monad.fmap

joinSTM (STM α)STM α

inherited from Monad.join

pure ∷ α → STM α

Functions and Values by Type

BoolSTM ()

check

ST STMWorld (STMResult α) → STM α

STM.STM

Mutable STMWorld (NativeTVar α) → TVar α

TVar.TVar

STM (STM α) → STM α

Monad_STM.join

STM α → STM α → STM α

MonadOr_STM.orElse, MonadPlus_STM.mplus

STM α → IO α

atomically

TMVar α → α → STM ()

putTMVar

TMVar α → STM (Maybe α)

pollTMVar

TMVar α → STM α

takeTMVar

TVar α → α → STM ()

TVar.write

TVar α → STM α

TVar.read

α → STM (TMVar α)

newTMVar

α → STM (TVar α)

TVar.new

α → STM α

Monad_STM.pure

α → STMResult α

STMResult.Result

STM (TMVar α)

newEmptyTMVar

STM α

retry, MonadZero_STM.mzero

STMResult α

STMResult.Retry

(α → β) → STM α → STM β

Monad_STM.fmap

STM (α→β) → STM α → STM β

Monad_STM.<*>

STM α → (α → STM β) → STM β

Monad_STM.>>=

STM α → STM β → STM α

Monad_STM.<*

STM α → STM β → STM β

Monad_STM.*>, Monad_STM.>>

Valid HTML 4.01 Strict