Deprecating STM invariant mechanism

Ben Gamari ben at
Thu Oct 5 23:02:25 UTC 2017

tl;dr. Do you use Control.Monad.STM.always? If so say so on
       this [1] proposal otherwise the interface may be removed.

Hello everyone,

GHC's STM subsystem has long had the ability to run user-specified
invariant checks when committing transactions, embodied by the
Control.Monad.STM.always and alwaysSucceeds functions.

However, if Hackage is any indication this feature has seen very little
use of the past ten years. In fact, it has very likely been quite broken
(#14310) for this entire duration. 

Consequently, I suggest that we begin deprecating the mechanism. See
the deprecation Proposal [1] for full details. Please leave a comment if
you object.


- Ben

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 487 bytes
Desc: not available
URL: <>

More information about the ghc-devs mailing list