> Actually, I think I prefer Ashley's idea of separating the creation of a > ForeignPtr from the addition of a FinalizerPtr. So how about: > > newForeignPtr :: Ptr a -> IO (ForeignPtr a) > addForeignPtrFinalizer :: FinalizerPtr a -> ForeignPtr a -> IO () You're proposing a different name for newForeignPtr_? -- Alastair