[project @ 2005-02-02 15:23:59 by simonmar]
[ghc-base.git] / Foreign.hs
index 75639e4..9fef16f 100644 (file)
@@ -1,44 +1,41 @@
-{-# OPTIONS -fno-implicit-prelude #-}
+{-# OPTIONS_GHC -fno-implicit-prelude #-}
 -----------------------------------------------------------------------------
--- 
+-- |
 -- Module      :  Foreign
 -- Copyright   :  (c) The FFI task force 2001
--- License     :  BSD-style (see the file libraries/core/LICENSE)
+-- License     :  BSD-style (see the file libraries/base/LICENSE)
 -- 
 -- Maintainer  :  ffi@haskell.org
--- Stability   :  experimental
--- Portability :  non-portable
---
--- $Id: Foreign.hs,v 1.1 2001/06/28 14:15:01 simonmar Exp $
+-- Stability   :  provisional
+-- Portability :  portable
 --
 -- A collection of data types, classes, and functions for interfacing
--- with another programming language. This is only a convenience module
--- in the future, but currently it has the additional task of hiding
--- those entities exported from other modules, which are not part of the
--- FFI proposal.
+-- with another programming language.
 --
 -----------------------------------------------------------------------------
 
 module Foreign
-        ( module Data.Int
-       , module Data.Word
+        ( module Data.Bits
+        , module Data.Int
+        , module Data.Word
        , module Foreign.Ptr
-       , module Foreign.ForeignPtr
-       , module Foreign.StablePtr
+        , module Foreign.ForeignPtr
+        , module Foreign.StablePtr
         , module Foreign.Storable
-       , module Foreign.Marshal.Alloc
-       , module Foreign.Marshal.Array
-       , module Foreign.Marshal.Error
-       , module Foreign.Marshal.Utils
+        , module Foreign.Marshal
+
+        -- | For compatibility with the FFI addendum only.  The recommended
+        -- place to get this from is "System.IO.Unsafe".
+        , unsafePerformIO
         ) where
 
+import Data.Bits
 import Data.Int
 import Data.Word
 import Foreign.Ptr
 import Foreign.ForeignPtr
 import Foreign.StablePtr
 import Foreign.Storable
-import Foreign.Marshal.Alloc
-import Foreign.Marshal.Array
-import Foreign.Marshal.Error
-import Foreign.Marshal.Utils
+import Foreign.Marshal
+
+import System.IO.Unsafe (unsafePerformIO)