[Haskell-cafe] weak references & caches