[Haskell-cafe] IORefs and weak pointers