[Haskell-cafe] Is it safe to use unsafePerformIO here?