+import GHC.IOBase (unsafePerformIO, unsafeInterleaveIO)
+#endif
+
+#ifdef __HUGS__
+import Hugs.IOExts (unsafePerformIO)
+#endif
+
+#ifdef __NHC__
+import NHC.Internal (unsafePerformIO)
+#endif
+
+#ifndef __GLASGOW_HASKELL__
+unsafeInterleaveIO :: IO a -> IO a
+unsafeInterleaveIO f = return (unsafePerformIO f)