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

_______________________________________________
FFI mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/ffi

Reply via email to