withFinalPtr (FinalForeign fptr) f = do
    r <- f (GHCF.unsafeForeignPtrToPtr fptr)
    unsafePrimFromIO (GHCF.touchForeignPtr fptr)
    pure r

withFinalPtr (FinalForeign fptr) f = do
    r <- f (GHCF.unsafeForeignPtrToPtr fptr)
    unsafePrimFromIO (GHCF.touchForeignPtr fptr)
    pure r

withFinalPtr (FinalForeign fptr) f = do
    r <- f (GHCF.unsafeForeignPtrToPtr fptr)
    unsafePrimFromIO (GHCF.touchForeignPtr fptr)
    pure r
