How does Clojure STM differ from Haskell STM?
Clojure STM has 3 big unique features: Implements MVCC snapshot avoiding transactions restarts on read invalidation. Ensures references on read-writes provides a kind of manual control over resource acquisition order. Has explicit commute which reduces retries on commutative writes.