final revision to GArrow classes
[ghc-base.git] / Foreign / StablePtr.hs
index 08e9ae3..522c6fc 100644 (file)
@@ -1,4 +1,5 @@
-{-# OPTIONS -fno-implicit-prelude #-}
+{-# LANGUAGE CPP, NoImplicitPrelude #-}
+
 -----------------------------------------------------------------------------
 -- |
 -- Module      :  Foreign.StablePtr
 
 module Foreign.StablePtr
         ( -- * Stable references to Haskell values
-         StablePtr          -- abstract
+          StablePtr          -- abstract
         , newStablePtr       -- :: a -> IO (StablePtr a)
         , deRefStablePtr     -- :: StablePtr a -> IO a
         , freeStablePtr      -- :: StablePtr a -> IO ()
         , castStablePtrToPtr -- :: StablePtr a -> Ptr ()
         , castPtrToStablePtr -- :: Ptr () -> StablePtr a
-       , -- ** The C-side interface
+        , -- ** The C-side interface
 
-         -- $cinterface
+          -- $cinterface
         ) where
 
 #ifdef __GLASGOW_HASKELL__
 import GHC.Stable
-import GHC.Err
 #endif
 
 #ifdef __HUGS__
 import Hugs.StablePtr
 #endif
 
+#ifdef __NHC__
+import NHC.FFI
+  ( StablePtr
+  , newStablePtr
+  , deRefStablePtr
+  , freeStablePtr
+  , castStablePtrToPtr
+  , castPtrToStablePtr
+  )
+#endif
+
 -- $cinterface
 --
 -- The following definition is available to C programs inter-operating with
@@ -48,4 +59,4 @@ import Hugs.StablePtr
 -- pointers.  In fact, they need not even be valid memory addresses.  The only
 -- guarantee provided is that if they are passed back to Haskell land, the
 -- function 'deRefStablePtr' will be able to reconstruct the
--- Haskell value refereed to by the stable pointer.
+-- Haskell value referred to by the stable pointer.