[Haskell-cafe] Does the TMVar and TChan really obey STM rules?