+-- UNICODE FIXME: Unicode object/archive/DLL file names on Windows will only work in the right code page
+withFileCString :: FilePath -> (CString -> IO a) -> IO a
+withFileCString = GHC.withCString fileSystemEncoding
+
+insertSymbol :: String -> String -> Ptr a -> IO ()
+insertSymbol obj_name key symbol
+ = let str = prefixUnderscore key
+ in withFileCString obj_name $ \c_obj_name ->
+ withCAString str $ \c_str ->
+ c_insertSymbol c_obj_name c_str symbol
+