{-# OPTIONS -fno-implicit-prelude #-}
-----------------------------------------------------------------------------
---
+-- |
-- Module : Foreign.ForeignPtr
-- Copyright : (c) The University of Glasgow 2001
-- License : BSD-style (see the file libraries/core/LICENSE)
--
-- Maintainer : ffi@haskell.org
--- Stability : experimental
--- Portability : non-portable
+-- Stability : provisional
+-- Portability : portable
--
--- $Id: ForeignPtr.hs,v 1.1 2001/06/28 14:15:03 simonmar Exp $
+-- $Id: ForeignPtr.hs,v 1.4 2002/04/24 16:31:44 simonmar Exp $
--
-- This module defines foreign pointers, i.e. addresses with associated
-- finalizers.
data ForeignPtr a = ForeignPtr ForeignObj#
instance CCallable (ForeignPtr a)
-eqForeignPtr :: ForeignPtr a -> ForeignPtr a -> Bool
-eqForeignPtr mp1 mp2
- = unsafePerformIO (primEqForeignPtr mp1 mp2) /= (0::Int)
-
-foreign import "eqForeignObj" unsafe
- primEqForeignPtr :: ForeignPtr a -> ForeignPtr a -> IO Int
+eqForeignPtr :: ForeignPtr a -> ForeignPtr a -> Bool
+eqForeignPtr (ForeignPtr fo1#) (ForeignPtr fo2#) = eqForeignObj# fo1# fo2#
instance Eq (ForeignPtr a) where
p == q = eqForeignPtr p q