STM

A monad supporting atomic memory transactions.
Software Transactional Memory: a modular composable concurrency abstraction. See
Software Transactional Memory: a modular composable concurrency abstraction. See This module only defines the STM monad; you probably want to import Control.Concurrent.STM (which exports Control.Monad.STM). Note that invariant checking (namely the always and alwaysSucceeds functions) has been removed. See ticket #14324 and the removal proposal. Existing users are encouraged to encapsulate their STM operations in safe abstractions which can perform the invariant checking without help from the runtime system.
A monad supporting atomic memory transactions.
Lifted version of Control.Concurrent.STM
A monad supporting atomic memory transactions.
Classy software transactional memory.
A monad supporting atomic memory transactions.
An STM transaction was executed, possibly waking up some threads.
MonadSTM testing implementation, internal types and definitions. This module is NOT considered to form part of the public interface of this library.
m
Software Transactional Memory Software Transactional Memory, or STM, is an abstraction for concurrent communication. The main benefits of STM are composability and modularity. That is, using STM you can write concurrent abstractions that can be easily composed with any other abstraction built using STM, without exposing the details of how your abstraction ensures safety. This is typically not the case with other forms of concurrent communication, such as locks or MVars.
A single statement, as in do-notation.
Are we in a do expression or a monad comprehension? This datatype is only used to report this context to the user in error messages.
do block Statement
Pattern of a do-stmt, list comprehension, pattern guard, etc