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.