[Haskell-cafe] Debugging misbehaving multi-threaded programs