[Haskell-cafe] catchSTM and asynchronous exceptions