Lazy IO and 'safe' uses of 'unsafePerformIO'