I do not understand the rational behind the type of, why the change from the previous definition: newForeignPtr :: Ptr a -> FunPtr (Ptr a -> IO ()) -> IO (ForeignPtr a) suppose I have a function foreign import ccall fooalloc :: IO (Ptr Foo) and foreign import ccall foofree :: Ptr Foo -> IO () now how do I create a foreign pointer without either using: foreign import ccall "wrapper" mkfoofree :: (Ptr Foo->IO())->IO (FunPtr (Ptr Foo->IO())) or declaring foreign import ccall "&foofree" foofree :: FunPtr(Ptr Foo->IO()) after all why should I need to import and then re-export or suppose I want foofree as a function or for that matter suppose Foo were a simple memory alloc which could be freed from haskell, why should we be forced to wrap a haskell function to create a foreign pointer, or am I missing something ? _________________________________________________________________ MSN 8 with e-mail virus protection service: 2 months FREE* http://join.msn.com/?page=features/virus
participants (1)
-
m v