Hello,
I get a segfault when I do
str <- peekCString ptr
free ptr
return (Just str)

But not when I don't free the C pointer.
I also get the same behaviour with ByteString.packCString...

Could you please tell me if the memory is correctly freed by GHC  when I don't do it myself?
And how can I specify a custom free function (i.e. xmlFree function in libxml2)?
Maybe I should use a data type with two fields : the String/ByteString and the ForeignPtr to the CString?

Regards