X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=Foreign%2FStablePtr.hs;h=522c6fc3449c5fcc2058d0b7260e7ab8c4cf85d3;hb=f98950484a7cb01e43352e3d88277a2784cd58bf;hp=08e9ae3ce76a65b64d12d14f3a4bd9b27c7308d1;hpb=9812e0a321ec0ed8f9e53eb2febfb14c79564200;p=ghc-base.git diff --git a/Foreign/StablePtr.hs b/Foreign/StablePtr.hs index 08e9ae3..522c6fc 100644 --- a/Foreign/StablePtr.hs +++ b/Foreign/StablePtr.hs @@ -1,4 +1,5 @@ -{-# OPTIONS -fno-implicit-prelude #-} +{-# LANGUAGE CPP, NoImplicitPrelude #-} + ----------------------------------------------------------------------------- -- | -- Module : Foreign.StablePtr @@ -17,26 +18,36 @@ 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.