io-classes-1.6.0.0: strict-stm/README.md
# Strict Software Transaction Memory
The `io-classes:strict-stm` package provides a strict interface to software transaction
memory. It builds on top of [`io-classes:io-classes`] and thus it provides the interface
for both [`stm`] as well as [`io-sim`].
# Novel testing / space-leak elimination approach
The strict interface provides a novel way of testing/eliminating space-leaks
which might lurk in `stm` shared mutable variables. Together with the
[`nothunks`] library it was successfully used to eliminate and keep a large
system ([`cardano-node`]) space leak free.
[`cardano-node`]: https://www.github.com/input-output-hk/cardano-node
[`io-classes:io-classes`]: https://hackage.haskell.org/package/io-classes
[`io-sim`]: https://hackage.haskell.org/package/io-sim
[`nothunks`]: https://hackage.haskell.org/package/nothunks
[`stm`]: https://hackage.haskell.org/package/stm