STM and unsafePerformIO