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