STM is:package

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 monad transformer version of the ST monad A monad transformer version of the ST monad. Warning! This monad transformer should not be used with monads that can contain multiple answers, like the list monad. The reason is that the state token will be duplicated across the different answers and this causes Bad Things to happen (such as loss of referential transparency). Safe monads include the monads State, Reader, Writer, Maybe and combinations of their corresponding monad transformers.
Not on Stackage, so not searched. control a STM32F103 microcontroller
Not on Stackage, so not searched. Definition for Peripherals,Registers and Fields from STM32F103xx.svd
Additional types of channels for STM. Additional types of channels for STM.
Containers for STM This library is based on an STM-specialized implementation of Hash Array Mapped Trie. It provides efficient implementations of Map, Set and other data structures, which starting from version 1 perform even better than their counterparts from "unordered-containers", but also scale well on concurrent access patterns. . For details on performance of the library, which are a bit outdated, see this blog post.
Introduces conduits to channels, and promotes using conduits concurrently. Provides two simple conduit wrappers around STM channels - a source and a sink.
Updatable one-shot timer polled with STM This library lets you create a one-shot timer, poll it using STM, and update it to ring at a different time than initially specified. It uses GHC event manager timeouts when available (GHC 7.2+, -threaded, non-Windows OS), yielding performance similar to threadDelay and registerDelay. Otherwise, it falls back to forked threads and threadDelay.
  • 0.1.1.2 (2025-05-08)
  • Remove a call to ensureIOManagerIsRunning, for consistency with System.Timeout
  • Adjust timings in the testsuite to fix intermittent failure in the non-threaded RTS case.
  • 0.1.1 (2014-09-14)
  • Add tryWaitDelayIO, improve performance for certain cases of newDelay and updateDelay, and improve example.
Not on Stackage, so not searched. Conduits and STM operations for fire hoses.
STM-specialised Hash Array Mapped Trie A low-level data-structure, which can be used to implement higher-level interfaces like hash-map and hash-set. Such implementations are presented by the stm-containers.
Not on Stackage, so not searched. Launch your IO-actions from within the STM monad
Not on Stackage, so not searched. Software Transactional Memory lifted to MonadIO
Not on Stackage, so not searched. Simple STM Promises for IO computations and external processes
Not on Stackage, so not searched. An implementation of a real-time concurrent queue
Not on Stackage, so not searched. retry statistics for STM transactions
STM wrapper around Control.Concurrent.Supply. STM wrapper around Control.Concurrent.Supply for thread-safe ID generation.
Not on Stackage, so not searched. A simplistic actor model based on STM
Not on Stackage, so not searched. Transactional I/O for duplex streams
Not on Stackage, so not searched. Chunked Communication Queues
Extra STM functions Please see README.md
Not on Stackage, so not searched. A library for constructing incremental computations
Not on Stackage, so not searched. Mutable, doubly linked lists for STM
Not on Stackage, so not searched. Choose between the return value of an STM operation and an IO action.
Not on Stackage, so not searched. Extra queue utilities for STM
Not on Stackage, so not searched. Bounded channel for STM where item sizes can vary