This seems like a bug in GHC. But it has nothing to do with MVars.  I've narrowed this down and filed a bug report here:

http://hackage.haskell.org/trac/ghc/ticket/7528

Timothy

---------- Původní zpráva ----------
Od: Yuras Shumovich <shumovichy@gmail.com>
Datum: 24. 12. 2012
Předmět: Re: [Haskell-cafe] multi-thread and lazy evaluation


On Mon, 2012-12-24 at 16:16 +0100, timothyhobbs@seznam.cz wrote:
> The real question is, does this mean that GHC is stopping the world every
> time it puts an MVar?

No, GHC rts only locks the MVar itself.
See here:
http://hackage.haskell.org/trac/ghc/browser/rts/PrimOps.cmm#L1358

Yuras