with STM we can build on what we already have: (moveWindowSTM is just moveWindow without atomically – this is typically how STM operations are provided) STM allows us to compose stateful operations into larger transactions thus allowing more reuse and modularity – we don't have to know how moveWindowSTM works internally to be able to compose it.
{}