On Fri, Jan 13, 2012 at 10:04 AM, Rob Stewart <robstewart57@googlemail.com> wrote:

The question is a simple one. Must all operations on a TVar happen
within *the same* atomically block, or am I am I guaranteed thread
safety if, say, I have a number of atomically blocks in an IO
function.

If you want successive operations to see a consistent state, they must occur in the same atomically block.