-{-# 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 : provisional
-- Portability : portable
--
--- $Id: Foreign.hs,v 1.3 2002/04/24 16:31:37 simonmar Exp $
---
-- 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)