[Haskell-cafe] Preventing dereferencing an STRef after taking an action