L'un des principaux avantages de la mémoire transactionnelle logicielle qui est toujours mentionné est la composabilité et la modularité. Différents fragments peuvent être combinés pour produire des composants plus gros. Dans les programmes basés sur les verrous, ce n'est souvent pas le cas.
Je cherche un exemple simple illustrant cela avec du code réel. Je préférerais un exemple à Clojure, mais Haskell va bien aussi. Points bonus si l'exemple présente également un code basé sur un verrou qui ne peut pas être composé facilement.