STM package:dejafu
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.
STM transactions are represented as a sequence of primitive actions.
Got blocked in an STM transaction.
An STM transaction threw an exception. Give the resultant masking
state after jumping to the exception handler (if the thread is still
alive).
Will execute an STM transaction, possibly waking up some threads.
The underlying monad is based on continuations over primitive actions.
This is not Cont because we want to give it a custom
MonadFail instance.