[Haskell-cafe] Throwing and catching exceptions in STM