ForeignPtr's - why can't they be passed directly to foreign functions?