         propagateGError (g_file_query_filesystem_info cFile cAttributes cCancellable) >>=
         takeGObject
     where _ = {# call file_query_filesystem_info #}
+
+fileQueryFilesystemInfoAsync :: FileClass file
+                             => file
+                             -> String
+                             -> Int
+                             -> Maybe Cancellable
+                             -> AsyncReadyCallback
+                             -> IO ()
+fileQueryFilesystemInfoAsync file attributes ioPriority cancellable callback =
+    withGObject (toFile file) $ \cFile ->
+        withUTFString attributes $ \cAttributes ->
+        maybeWith withGObject cancellable $ \cCancellable -> do
+          cCallback <- marshalAsyncReadyCallback callback
+          g_file_query_filesystem_info_async cFile
+                                             cAttributes
+                                             (fromIntegral ioPriority)
+                                             cCancellable
+                                             cCallback
+                                             (castFunPtrToPtr cCallback)
+    where _ = {# call file_query_filesystem_info_async #}
+
+fileQueryFilesystemInfoFinish :: FileClass file
+                              => file
+                              -> AsyncResult
+                              -> IO FileInfo
+fileQueryFilesystemInfoFinish file asyncResult =
+    propagateGError ({# call file_query_filesystem_info_finish #} (toFile file) asyncResult) >>=
+        takeGObject
+
+fileQueryDefaultHandler :: FileClass file
+                        => file
+                        -> Maybe Cancellable
+                        -> IO AppInfo
+fileQueryDefaultHandler file cancellable =
+    withGObject (toFile file) $ \cFile ->
+        maybeWith withGObject cancellable $ \cCancellable ->
+        propagateGError (g_file_query_default_handler cFile cCancellable) >>=
+        takeGObject
+    where _ = {# call file_query_default_handler #}
+
+fileFindEnclosingMount :: FileClass file
+                       => file
+                       -> Maybe Cancellable
+                       -> IO Mount
+fileFindEnclosingMount file cancellable =
+    withGObject (toFile file) $ \cFile ->
+        maybeWith withGObject cancellable $ \cCancellable ->
+        propagateGError (g_file_find_enclosing_mount cFile cCancellable) >>=
+        takeGObject
+    where _ = {# call file_find_enclosing_mount #}
+
+fileFindEnclosingMountAsync :: FileClass file
+                            => file
+                            -> Int
+                            -> Maybe Cancellable
+                            -> AsyncReadyCallback
+                            -> IO ()
+fileFindEnclosingMountAsync file ioPriority cancellable callback =
+    withGObject (toFile file) $ \cFile ->
+        maybeWith withGObject cancellable $ \cCancellable -> do
+          cCallback <- marshalAsyncReadyCallback callback
+          g_file_find_enclosing_mount_async cFile
+                                            (fromIntegral ioPriority)
+                                            cCancellable
+                                            cCallback
+                                            (castFunPtrToPtr cCallback)
+    where _ = {# call file_find_enclosing_mount_async #}
+
+fileFindEnclosingMountFinish :: FileClass file
+                             => file
+                             -> AsyncResult
+                             -> IO Mount
+fileFindEnclosingMountFinish file asyncResult =
+    propagateGError ({# call file_find_enclosing_mount_finish #} (toFile file) asyncResult) >>=
+        takeGObject
+
+fileEnumerateChildren :: FileClass file
+                      => file
+                      -> String
+                      -> [FileQueryInfoFlags]
+                      -> Maybe Cancellable
+                      -> IO FileEnumerator
+fileEnumerateChildren file attributes flags cancellable =
+    withGObject (toFile file) $ \cFile ->
+        withUTFString attributes $ \cAttributes ->
+        maybeWith withGObject cancellable $ \cCancellable ->
+        propagateGError (g_file_enumerate_children cFile cAttributes (cFromFlags flags) cCancellable) >>=
+        takeGObject
+    where _ = {# call file_enumerate_children #}
+
+fileEnumerateChildrenAsync :: FileClass file
+                           => file
+                           -> String
+                           -> [FileQueryInfoFlags]
+                           -> Int
+                           -> Maybe Cancellable
+                           -> AsyncReadyCallback
+                           -> IO ()
+fileEnumerateChildrenAsync file attributes flags ioPriority cancellable callback =
+    withGObject (toFile file) $ \cFile ->
+        withUTFString attributes $ \cAttributes ->
+        maybeWith withGObject cancellable $ \cCancellable -> do
+          cCallback <- marshalAsyncReadyCallback callback
+          g_file_enumerate_children_async cFile
+                                          cAttributes
+                                          (cFromFlags flags)
+                                          (fromIntegral ioPriority)
+                                          cCancellable
+                                          cCallback
+                                          (castFunPtrToPtr cCallback)
+    where _ = {# call file_enumerate_children_async #}
+
+fileEnumerateChildrenFinish :: FileClass file
+                             => file
+                             -> AsyncResult
+                             -> IO FileEnumerator
+fileEnumerateChildrenFinish file asyncResult =
+    propagateGError ({# call file_enumerate_children_finish #} (toFile file) asyncResult) >>=
+        takeGObject
+
+fileSetDisplayName :: FileClass file
+                   => file
+                   -> String
+                   -> Maybe Cancellable
+                   -> IO File
+fileSetDisplayName file displayName cancellable =
+    withGObject (toFile file) $ \cFile ->
+        withUTFString displayName $ \cDisplayName ->
+        maybeWith withGObject cancellable $ \cCancellable ->
+        propagateGError (g_file_set_display_name cFile cDisplayName cCancellable) >>=
+        takeGObject
+    where _ = {# call file_set_display_name #}
+
+fileSetDisplayNameAsync :: FileClass file
+                        => file
+                        -> String
+                        -> Int
+                        -> Maybe Cancellable
+                        -> AsyncReadyCallback
+                        -> IO ()
+fileSetDisplayNameAsync file displayName ioPriority cancellable callback =
+    withGObject (toFile file) $ \cFile ->
+        withUTFString displayName $ \cDisplayName ->
+        maybeWith withGObject cancellable $ \cCancellable -> do
+          cCallback <- marshalAsyncReadyCallback callback
+          g_file_set_display_name_async cFile
+                                        cDisplayName
+                                        (fromIntegral ioPriority)
+                                        cCancellable
+                                        cCallback
+                                        (castFunPtrToPtr cCallback)
+    where _ = {# call file_set_display_name_async #}
+
+fileSetDisplayNameFinish :: FileClass file
+                         => file
+                         -> AsyncResult
+                         -> IO File
+fileSetDisplayNameFinish file asyncResult =
+    propagateGError ({# call file_set_display_name_finish #} (toFile file) asyncResult) >>=
+        takeGObject
+
+fileDelete :: FileClass file
+           => file
+           -> Maybe Cancellable
+           -> IO ()
+fileDelete file cancellable =
+    withGObject (toFile file) $ \cFile ->
+        maybeWith withGObject cancellable $ \cCancellable ->
+        propagateGError (g_file_delete cFile cCancellable) >> return ()
+    where _ = {# call file_delete #}
+
+fileTrash :: FileClass file
+           => file
+           -> Maybe Cancellable
+           -> IO ()
+fileTrash file cancellable =
+    withGObject (toFile file) $ \cFile ->
+        maybeWith withGObject cancellable $ \cCancellable ->
+        propagateGError (g_file_trash cFile cCancellable) >> return ()
+    where _ = {# call file_trash #}
+

                                  (castFunPtrToPtr cCallback)
    where _ = {# call file_query_info_async #}

fileQueryExists :: FileClass file
                => file
                -> Maybe Cancellable

    FilesystemPreviewType,
    FileProgressCallback,
    FileReadMoreCallback,
    fileFromPath,
    fileFromURI,
    fileFromCommandlineArg,
    fileFromParseName,
    fileEqual,
    fileBasename,
    filePath,
    fileURI,
    fileParseName,
    fileGetChild,
    fileGetChildForDisplayName,
    fileHasPrefix,
