-{-# OPTIONS_GHC -fno-implicit-prelude #-}
+{-# OPTIONS_GHC -XNoImplicitPrelude #-}
-----------------------------------------------------------------------------
-- |
-- Module : Foreign.Ptr
module Foreign.Ptr (
-- * Data pointers
-
+
Ptr, -- data Ptr a
nullPtr, -- :: Ptr a
castPtr, -- :: Ptr a -> Ptr b
plusPtr, -- :: Ptr a -> Int -> Ptr b
alignPtr, -- :: Ptr a -> Int -> Ptr a
minusPtr, -- :: Ptr a -> Ptr b -> Int
-
+
-- * Function pointers
-
+
FunPtr, -- data FunPtr a
nullFunPtr, -- :: FunPtr a
castFunPtr, -- :: FunPtr a -> FunPtr b
castFunPtrToPtr, -- :: FunPtr a -> Ptr b
castPtrToFunPtr, -- :: Ptr a -> FunPtr b
-
+
freeHaskellFunPtr, -- :: FunPtr a -> IO ()
-- Free the function pointer created by foreign export dynamic.
#ifdef __GLASGOW_HASKELL__
import GHC.Ptr
-import GHC.IOBase
import GHC.Base
import GHC.Num
import GHC.Read
import GHC.Real
import GHC.Show
import GHC.Enum
-import GHC.Word ( Word(..) )
+import GHC.Word ( Word(..) )
-import Data.Int
+-- import Data.Int
import Data.Word
#else
+import Control.Monad ( liftM )
import Foreign.C.Types
#endif
import Data.Bits
-import Data.Typeable ( Typeable(..), mkTyCon, mkTyConApp )
+import Data.Typeable
import Foreign.Storable ( Storable(..) )
#ifdef __NHC__
-- | An unsigned integral type that can be losslessly converted to and from
-- @Ptr@.
INTEGRAL_TYPE(WordPtr,tyConWordPtr,"WordPtr",Word)
- -- Word and Int are guaranteed pointer-sized in GHC
+ -- Word and Int are guaranteed pointer-sized in GHC
-- | A signed integral type that can be losslessly converted to and from
-- @Ptr@.
INTEGRAL_TYPE(IntPtr,tyConIntPtr,"IntPtr",Int)
- -- Word and Int are guaranteed pointer-sized in GHC
+ -- Word and Int are guaranteed pointer-sized in GHC
-- | casts a @Ptr@ to a @WordPtr@
ptrToWordPtr :: Ptr a -> WordPtr