Commit this STM
action as an IO
action.
Commit this STM
action as an IO
action. The mutable
state of TVar
s is only modified when this is invoked
(hence the IO
context - modifying mutable state
is a side effect).
Monadic bind on STM
.
Functor map on STM
.
Try an alternative STM
action if this one retries.
Monad representing transactions involving one or more
TVar
s.This design was inspired by [Beautiful Concurrency](https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/beautiful.pdf) and informed by ZIO which has a common origin in that paper via the [stm package](http://hackage.haskell.org/package/stm).