Теперь GHC поддерживает новый способ координации действий потоков Concurrent Haskell, называемый транзакционной памятью программного обеспечения (STM). Статьи об STM — отличное введение в то, что такое STM и как её использовать.
Основная библиотека, которую следует использовать, — это библиотека stm. Поддерживаются следующие основные возможности:
- Атомарные блоки.
- Транзакционные переменные.
- Операции для объединения транзакций:
retryиorElse. - Инварианты данных.
Все эти возможности описаны в упомянутых ранее статьях.