| |||||||||||||
| |||||||||||||
Contents | |||||||||||||
Description | |||||||||||||
This module is part of the Foreign Function Interface (FFI) and will usually be imported via the module Foreign. | |||||||||||||
Synopsis | |||||||||||||
| |||||||||||||
Stable references to Haskell values | |||||||||||||
data StablePtr a | |||||||||||||
| |||||||||||||
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 following definition is available to C programs inter-operating with Haskell code when including the header HsFFI.h. typedef void *HsStablePtr; Note that no assumptions may be made about the values representing stable 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. | |||||||||||||
Produced by Haddock version 0.4 |