STM -is:module
A monad supporting atomic memory transactions.
A monad supporting atomic memory transactions.
A monad supporting atomic memory transactions.
A monad supporting atomic memory transactions.
An STM transaction was executed, possibly waking up some threads.
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.
Pattern of a do-stmt, list comprehension, pattern guard, etc
A statement, representing both a stmt in a
do-expression, an ordinary qual in a list
comprehension, as well as a stmt in a pattern guard.
A statement in our imperative program, parameterized over the state.