Merge branch 'master' into type-nats
[packages/base.git] / Foreign.hs
index 6c3cf8a..caad104 100644 (file)
@@ -1,4 +1,6 @@
-{-# OPTIONS_GHC -fno-implicit-prelude #-}
+{-# LANGUAGE Unsafe #-}
+{-# LANGUAGE NoImplicitPrelude #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Foreign
@@ -24,8 +26,12 @@ module Foreign
         , module Foreign.Storable
         , module Foreign.Marshal
 
-        -- | For compatibility with the FFI addendum only.  The recommended
-        -- place to get this from is "System.IO.Unsafe".
+        -- * Unsafe Functions
+
+        -- | 'unsafePerformIO' is exported here for backwards
+        -- compatibility reasons only.  For doing local marshalling in
+        -- the FFI, use 'unsafeLocalState'.  For other uses, see
+        -- 'System.IO.Unsafe.unsafePerformIO'.
         , unsafePerformIO
         ) where
 
@@ -38,4 +44,12 @@ import Foreign.StablePtr
 import Foreign.Storable
 import Foreign.Marshal
 
-import System.IO.Unsafe (unsafePerformIO)
+import GHC.IO (IO)
+import qualified GHC.IO (unsafePerformIO)
+
+{-# DEPRECATED unsafePerformIO "Use System.IO.Unsafe.unsafePerformIO instead; This function will be removed in the next release" #-}
+
+{-# INLINE unsafePerformIO #-}
+unsafePerformIO :: IO a -> a
+unsafePerformIO = GHC.IO.unsafePerformIO
+