This library provides a safer method based on the concept of "Tickets".
Also, this library uses the "foreign primop" capability of GHC to add
access to other variants that may be of interest, specifically, compare
and swap inside an array.  Note that as of GHC 7.8, the relevant primops
have been included in GHC itself.  This library is engineered to work
pre- and post-GHC-7.8, while exposing the same interface.

WWW: https://github.com/rrnewton/haskell-lockfree/wiki