Mutable hash tables for Haskell, in the ST monad