[Haskell-cafe] STM atomic blocks in IO functions