A little STM on Free monads for Haskell
It has basic possibilities to work with TVars within transactions.
Run this project to see how Philosopers task works.
Philosopers