<div>Hi all,</div><div><br></div>For a while now I&#39;ve been working on understanding GHC&#39;s STM implementation and I finally have something to share.  I&#39;ve written a commentary on the implementation which can be found here:<div>

<br></div><div><a href="http://fryguybob.github.io/STM-Commentary/" target="_blank">http://fryguybob.github.io/STM-Commentary/</a></div><div><br></div><div>The source is here:</div><div><br></div><div><a href="https://github.com/fryguybob/STM-Commentary/" target="_blank">https://github.com/fryguybob/STM-Commentary/</a></div>

<div><div><br></div><div>It still could use a bit of polish and I would love to hear about any missing details, confusion, or misunderstandings.  My goal in writing this was to fill in the gap found here <a href="http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/STM" target="_blank">http://hackage.haskell.org/trac/ghc/wiki/Commentary/Rts/STM</a>.  I happy to have it live where it is most appropriate.  If anyone has opinions on that, let me know.</div>

<div><br></div><div>Any comments are welcome, it may be easiest to just comment on the source directly on Github, but I will, of course, take feedback in any form.</div><div><br></div><div>Thanks,</div><div><br></div><div>

Ryan Yates<br><div><br></div><div><br></div></div></div>