diff --git a/GI/GLib.hs b/GI/GLib.hs
new file mode 100644
--- /dev/null
+++ b/GI/GLib.hs
@@ -0,0 +1,34268 @@
+-- Generated code.
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+{-# LANGUAGE ForeignFunctionInterface, ConstraintKinds,
+    TypeFamilies, MultiParamTypeClasses, KindSignatures,
+    FlexibleInstances, UndecidableInstances, DataKinds,
+    OverloadedStrings, NegativeLiterals, FlexibleContexts #-}
+
+module GI.GLib where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+import Data.Char
+import Data.Int
+import Data.Word
+import qualified Data.ByteString.Char8 as B
+import Data.ByteString.Char8 (ByteString)
+import qualified Data.Map as Map
+import Foreign.C
+import Foreign.Ptr
+import Foreign.ForeignPtr
+import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
+import Foreign.Storable (peek, poke, sizeOf)
+import Control.Applicative ((<$>))
+import Control.Exception (onException)
+import Control.Monad.IO.Class
+import qualified Data.Text as T
+
+import Data.GI.Base.Attributes hiding (get, set)
+import Data.GI.Base.BasicTypes
+import Data.GI.Base.BasicConversions
+import Data.GI.Base.Closure
+import Data.GI.Base.GError
+import Data.GI.Base.GHashTable
+import Data.GI.Base.GParamSpec
+import Data.GI.Base.GVariant
+import Data.GI.Base.GValue
+import Data.GI.Base.ManagedPtr
+import Data.GI.Base.Overloading
+import Data.GI.Base.Properties hiding (new)
+import Data.GI.Base.Signals (SignalConnectMode(..), connectSignalFunPtr, SignalHandlerId)
+import Data.GI.Base.Utils
+
+
+-- Flags AsciiType
+
+data AsciiType = 
+      AsciiTypeAlnum
+    | AsciiTypeAlpha
+    | AsciiTypeCntrl
+    | AsciiTypeDigit
+    | AsciiTypeGraph
+    | AsciiTypeLower
+    | AsciiTypePrint
+    | AsciiTypePunct
+    | AsciiTypeSpace
+    | AsciiTypeUpper
+    | AsciiTypeXdigit
+    | AnotherAsciiType Int
+    deriving (Show, Eq)
+
+instance Enum AsciiType where
+    fromEnum AsciiTypeAlnum = 1
+    fromEnum AsciiTypeAlpha = 2
+    fromEnum AsciiTypeCntrl = 4
+    fromEnum AsciiTypeDigit = 8
+    fromEnum AsciiTypeGraph = 16
+    fromEnum AsciiTypeLower = 32
+    fromEnum AsciiTypePrint = 64
+    fromEnum AsciiTypePunct = 128
+    fromEnum AsciiTypeSpace = 256
+    fromEnum AsciiTypeUpper = 512
+    fromEnum AsciiTypeXdigit = 1024
+    fromEnum (AnotherAsciiType k) = k
+
+    toEnum 1 = AsciiTypeAlnum
+    toEnum 2 = AsciiTypeAlpha
+    toEnum 4 = AsciiTypeCntrl
+    toEnum 8 = AsciiTypeDigit
+    toEnum 16 = AsciiTypeGraph
+    toEnum 32 = AsciiTypeLower
+    toEnum 64 = AsciiTypePrint
+    toEnum 128 = AsciiTypePunct
+    toEnum 256 = AsciiTypeSpace
+    toEnum 512 = AsciiTypeUpper
+    toEnum 1024 = AsciiTypeXdigit
+    toEnum k = AnotherAsciiType k
+
+instance IsGFlag AsciiType
+
+-- struct AsyncQueue
+newtype AsyncQueue = AsyncQueue (ForeignPtr AsyncQueue)
+noAsyncQueue :: Maybe AsyncQueue
+noAsyncQueue = Nothing
+
+-- method AsyncQueue::length
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_async_queue_length" g_async_queue_length :: 
+    Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
+    IO Int32
+
+
+asyncQueueLength ::
+    (MonadIO m) =>
+    AsyncQueue ->                           -- _obj
+    m Int32
+asyncQueueLength _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_async_queue_length _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method AsyncQueue::length_unlocked
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_async_queue_length_unlocked" g_async_queue_length_unlocked :: 
+    Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
+    IO Int32
+
+
+asyncQueueLengthUnlocked ::
+    (MonadIO m) =>
+    AsyncQueue ->                           -- _obj
+    m Int32
+asyncQueueLengthUnlocked _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_async_queue_length_unlocked _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method AsyncQueue::lock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_async_queue_lock" g_async_queue_lock :: 
+    Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
+    IO ()
+
+
+asyncQueueLock ::
+    (MonadIO m) =>
+    AsyncQueue ->                           -- _obj
+    m ()
+asyncQueueLock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_async_queue_lock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method AsyncQueue::push
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_async_queue_push" g_async_queue_push :: 
+    Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO ()
+
+
+asyncQueuePush ::
+    (MonadIO m) =>
+    AsyncQueue ->                           -- _obj
+    Ptr () ->                               -- data
+    m ()
+asyncQueuePush _obj data_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_async_queue_push _obj' data_
+    touchManagedPtr _obj
+    return ()
+
+-- method AsyncQueue::push_unlocked
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_async_queue_push_unlocked" g_async_queue_push_unlocked :: 
+    Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO ()
+
+
+asyncQueuePushUnlocked ::
+    (MonadIO m) =>
+    AsyncQueue ->                           -- _obj
+    Ptr () ->                               -- data
+    m ()
+asyncQueuePushUnlocked _obj data_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_async_queue_push_unlocked _obj' data_
+    touchManagedPtr _obj
+    return ()
+
+-- method AsyncQueue::ref_unlocked
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_async_queue_ref_unlocked" g_async_queue_ref_unlocked :: 
+    Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
+    IO ()
+
+{-# DEPRECATED asyncQueueRefUnlocked ["(Since version 2.8)","Reference counting is done atomically.","so g_async_queue_ref() can be used regardless of the @queue's","lock."]#-}
+asyncQueueRefUnlocked ::
+    (MonadIO m) =>
+    AsyncQueue ->                           -- _obj
+    m ()
+asyncQueueRefUnlocked _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_async_queue_ref_unlocked _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method AsyncQueue::unlock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_async_queue_unlock" g_async_queue_unlock :: 
+    Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
+    IO ()
+
+
+asyncQueueUnlock ::
+    (MonadIO m) =>
+    AsyncQueue ->                           -- _obj
+    m ()
+asyncQueueUnlock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_async_queue_unlock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method AsyncQueue::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_async_queue_unref" g_async_queue_unref :: 
+    Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
+    IO ()
+
+
+asyncQueueUnref ::
+    (MonadIO m) =>
+    AsyncQueue ->                           -- _obj
+    m ()
+asyncQueueUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_async_queue_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method AsyncQueue::unref_and_unlock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_async_queue_unref_and_unlock" g_async_queue_unref_and_unlock :: 
+    Ptr AsyncQueue ->                       -- _obj : TInterface "GLib" "AsyncQueue"
+    IO ()
+
+{-# DEPRECATED asyncQueueUnrefAndUnlock ["(Since version 2.8)","Reference counting is done atomically.","so g_async_queue_unref() can be used regardless of the @queue's","lock."]#-}
+asyncQueueUnrefAndUnlock ::
+    (MonadIO m) =>
+    AsyncQueue ->                           -- _obj
+    m ()
+asyncQueueUnrefAndUnlock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_async_queue_unref_and_unlock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct BookmarkFile
+newtype BookmarkFile = BookmarkFile (ForeignPtr BookmarkFile)
+noBookmarkFile :: Maybe BookmarkFile
+noBookmarkFile = Nothing
+
+-- method BookmarkFile::add_application
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "exec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "exec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_add_application" g_bookmark_file_add_application :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- exec : TBasicType TUTF8
+    IO ()
+
+
+bookmarkFileAddApplication ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    Maybe (T.Text) ->                       -- name
+    Maybe (T.Text) ->                       -- exec
+    m ()
+bookmarkFileAddApplication _obj uri name exec = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    maybeName <- case name of
+        Nothing -> return nullPtr
+        Just jName -> do
+            jName' <- textToCString jName
+            return jName'
+    maybeExec <- case exec of
+        Nothing -> return nullPtr
+        Just jExec -> do
+            jExec' <- textToCString jExec
+            return jExec'
+    g_bookmark_file_add_application _obj' uri' maybeName maybeExec
+    touchManagedPtr _obj
+    freeMem uri'
+    freeMem maybeName
+    freeMem maybeExec
+    return ()
+
+-- method BookmarkFile::add_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_add_group" g_bookmark_file_add_group :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- group : TBasicType TUTF8
+    IO ()
+
+
+bookmarkFileAddGroup ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    T.Text ->                               -- group
+    m ()
+bookmarkFileAddGroup _obj uri group = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    group' <- textToCString group
+    g_bookmark_file_add_group _obj' uri' group'
+    touchManagedPtr _obj
+    freeMem uri'
+    freeMem group'
+    return ()
+
+-- method BookmarkFile::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_free" g_bookmark_file_free :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    IO ()
+
+
+bookmarkFileFree ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    m ()
+bookmarkFileFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_bookmark_file_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method BookmarkFile::get_added
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_added" g_bookmark_file_get_added :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO Int64
+
+
+bookmarkFileGetAdded ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m Int64
+bookmarkFileGetAdded _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    onException (do
+        result <- propagateGError $ g_bookmark_file_get_added _obj' uri'
+        touchManagedPtr _obj
+        freeMem uri'
+        return result
+     ) (do
+        freeMem uri'
+     )
+
+-- method BookmarkFile::get_app_info
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "exec", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "count", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "stamp", argType = TBasicType TInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_app_info" g_bookmark_file_get_app_info :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- name : TBasicType TUTF8
+    Ptr CString ->                          -- exec : TBasicType TUTF8
+    Ptr Word32 ->                           -- count : TBasicType TUInt32
+    Ptr Int64 ->                            -- stamp : TBasicType TInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileGetAppInfo ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    T.Text ->                               -- name
+    m (T.Text,Word32,Int64)
+bookmarkFileGetAppInfo _obj uri name = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    name' <- textToCString name
+    exec <- allocMem :: IO (Ptr CString)
+    count <- allocMem :: IO (Ptr Word32)
+    stamp <- allocMem :: IO (Ptr Int64)
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_get_app_info _obj' uri' name' exec count stamp
+        exec' <- peek exec
+        exec'' <- cstringToText exec'
+        freeMem exec'
+        count' <- peek count
+        stamp' <- peek stamp
+        touchManagedPtr _obj
+        freeMem uri'
+        freeMem name'
+        freeMem exec
+        freeMem count
+        freeMem stamp
+        return (exec'', count', stamp')
+     ) (do
+        freeMem uri'
+        freeMem name'
+        freeMem exec
+        freeMem count
+        freeMem stamp
+     )
+
+-- method BookmarkFile::get_applications
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray False (-1) 2 (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_applications" g_bookmark_file_get_applications :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr CString)
+
+
+bookmarkFileGetApplications ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m [T.Text]
+bookmarkFileGetApplications _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_bookmark_file_get_applications _obj' uri' length_
+        length_' <- peek length_
+        result' <- (unpackUTF8CArrayWithLength length_') result
+        (mapCArrayWithLength length_') freeMem result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem uri'
+        freeMem length_
+        return result'
+     ) (do
+        freeMem uri'
+        freeMem length_
+     )
+
+-- method BookmarkFile::get_description
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_description" g_bookmark_file_get_description :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+bookmarkFileGetDescription ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m T.Text
+bookmarkFileGetDescription _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    onException (do
+        result <- propagateGError $ g_bookmark_file_get_description _obj' uri'
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem uri'
+        return result'
+     ) (do
+        freeMem uri'
+     )
+
+-- method BookmarkFile::get_groups
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray False (-1) 2 (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_groups" g_bookmark_file_get_groups :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr CString)
+
+
+bookmarkFileGetGroups ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m [T.Text]
+bookmarkFileGetGroups _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_bookmark_file_get_groups _obj' uri' length_
+        length_' <- peek length_
+        result' <- (unpackUTF8CArrayWithLength length_') result
+        (mapCArrayWithLength length_') freeMem result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem uri'
+        freeMem length_
+        return result'
+     ) (do
+        freeMem uri'
+        freeMem length_
+     )
+
+-- method BookmarkFile::get_icon
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "href", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_icon" g_bookmark_file_get_icon :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr CString ->                          -- href : TBasicType TUTF8
+    Ptr CString ->                          -- mime_type : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileGetIcon ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m (T.Text,T.Text)
+bookmarkFileGetIcon _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    href <- allocMem :: IO (Ptr CString)
+    mime_type <- allocMem :: IO (Ptr CString)
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_get_icon _obj' uri' href mime_type
+        href' <- peek href
+        href'' <- cstringToText href'
+        freeMem href'
+        mime_type' <- peek mime_type
+        mime_type'' <- cstringToText mime_type'
+        freeMem mime_type'
+        touchManagedPtr _obj
+        freeMem uri'
+        freeMem href
+        freeMem mime_type
+        return (href'', mime_type'')
+     ) (do
+        freeMem uri'
+        freeMem href
+        freeMem mime_type
+     )
+
+-- method BookmarkFile::get_is_private
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_is_private" g_bookmark_file_get_is_private :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileGetIsPrivate ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m ()
+bookmarkFileGetIsPrivate _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_get_is_private _obj' uri'
+        touchManagedPtr _obj
+        freeMem uri'
+        return ()
+     ) (do
+        freeMem uri'
+     )
+
+-- method BookmarkFile::get_mime_type
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_mime_type" g_bookmark_file_get_mime_type :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+bookmarkFileGetMimeType ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m T.Text
+bookmarkFileGetMimeType _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    onException (do
+        result <- propagateGError $ g_bookmark_file_get_mime_type _obj' uri'
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem uri'
+        return result'
+     ) (do
+        freeMem uri'
+     )
+
+-- method BookmarkFile::get_modified
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_modified" g_bookmark_file_get_modified :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO Int64
+
+
+bookmarkFileGetModified ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m Int64
+bookmarkFileGetModified _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    onException (do
+        result <- propagateGError $ g_bookmark_file_get_modified _obj' uri'
+        touchManagedPtr _obj
+        freeMem uri'
+        return result
+     ) (do
+        freeMem uri'
+     )
+
+-- method BookmarkFile::get_size
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_size" g_bookmark_file_get_size :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    IO Int32
+
+
+bookmarkFileGetSize ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    m Int32
+bookmarkFileGetSize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_bookmark_file_get_size _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method BookmarkFile::get_title
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_title" g_bookmark_file_get_title :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+bookmarkFileGetTitle ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    Maybe (T.Text) ->                       -- uri
+    m T.Text
+bookmarkFileGetTitle _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeUri <- case uri of
+        Nothing -> return nullPtr
+        Just jUri -> do
+            jUri' <- textToCString jUri
+            return jUri'
+    onException (do
+        result <- propagateGError $ g_bookmark_file_get_title _obj' maybeUri
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem maybeUri
+        return result'
+     ) (do
+        freeMem maybeUri
+     )
+
+-- method BookmarkFile::get_uris
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray False (-1) 1 (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_uris" g_bookmark_file_get_uris :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    IO (Ptr CString)
+
+
+bookmarkFileGetUris ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    m [T.Text]
+bookmarkFileGetUris _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    length_ <- allocMem :: IO (Ptr Word64)
+    result <- g_bookmark_file_get_uris _obj' length_
+    length_' <- peek length_
+    result' <- (unpackUTF8CArrayWithLength length_') result
+    (mapCArrayWithLength length_') freeMem result
+    freeMem result
+    touchManagedPtr _obj
+    freeMem length_
+    return result'
+
+-- method BookmarkFile::get_visited
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_get_visited" g_bookmark_file_get_visited :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO Int64
+
+
+bookmarkFileGetVisited ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m Int64
+bookmarkFileGetVisited _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    onException (do
+        result <- propagateGError $ g_bookmark_file_get_visited _obj' uri'
+        touchManagedPtr _obj
+        freeMem uri'
+        return result
+     ) (do
+        freeMem uri'
+     )
+
+-- method BookmarkFile::has_application
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_has_application" g_bookmark_file_has_application :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- name : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileHasApplication ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    T.Text ->                               -- name
+    m ()
+bookmarkFileHasApplication _obj uri name = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    name' <- textToCString name
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_has_application _obj' uri' name'
+        touchManagedPtr _obj
+        freeMem uri'
+        freeMem name'
+        return ()
+     ) (do
+        freeMem uri'
+        freeMem name'
+     )
+
+-- method BookmarkFile::has_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_has_group" g_bookmark_file_has_group :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- group : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileHasGroup ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    T.Text ->                               -- group
+    m ()
+bookmarkFileHasGroup _obj uri group = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    group' <- textToCString group
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_has_group _obj' uri' group'
+        touchManagedPtr _obj
+        freeMem uri'
+        freeMem group'
+        return ()
+     ) (do
+        freeMem uri'
+        freeMem group'
+     )
+
+-- method BookmarkFile::has_item
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_has_item" g_bookmark_file_has_item :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    IO CInt
+
+
+bookmarkFileHasItem ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m Bool
+bookmarkFileHasItem _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    result <- g_bookmark_file_has_item _obj' uri'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    freeMem uri'
+    return result'
+
+-- method BookmarkFile::load_from_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_load_from_data" g_bookmark_file_load_from_data :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- data : TBasicType TUTF8
+    Word64 ->                               -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileLoadFromData ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- data
+    Word64 ->                               -- length
+    m ()
+bookmarkFileLoadFromData _obj data_ length_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    data_' <- textToCString data_
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_load_from_data _obj' data_' length_
+        touchManagedPtr _obj
+        freeMem data_'
+        return ()
+     ) (do
+        freeMem data_'
+     )
+
+-- method BookmarkFile::load_from_data_dirs
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "full_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "full_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_load_from_data_dirs" g_bookmark_file_load_from_data_dirs :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- file : TBasicType TUTF8
+    CString ->                              -- full_path : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileLoadFromDataDirs ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- file
+    Maybe (T.Text) ->                       -- full_path
+    m ()
+bookmarkFileLoadFromDataDirs _obj file full_path = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    file' <- textToCString file
+    maybeFull_path <- case full_path of
+        Nothing -> return nullPtr
+        Just jFull_path -> do
+            jFull_path' <- textToCString jFull_path
+            return jFull_path'
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_load_from_data_dirs _obj' file' maybeFull_path
+        touchManagedPtr _obj
+        freeMem file'
+        freeMem maybeFull_path
+        return ()
+     ) (do
+        freeMem file'
+        freeMem maybeFull_path
+     )
+
+-- method BookmarkFile::load_from_file
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_load_from_file" g_bookmark_file_load_from_file :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- filename : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileLoadFromFile ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- filename
+    m ()
+bookmarkFileLoadFromFile _obj filename = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    filename' <- textToCString filename
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_load_from_file _obj' filename'
+        touchManagedPtr _obj
+        freeMem filename'
+        return ()
+     ) (do
+        freeMem filename'
+     )
+
+-- method BookmarkFile::move_item
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "old_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "old_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_move_item" g_bookmark_file_move_item :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- old_uri : TBasicType TUTF8
+    CString ->                              -- new_uri : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileMoveItem ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- old_uri
+    Maybe (T.Text) ->                       -- new_uri
+    m ()
+bookmarkFileMoveItem _obj old_uri new_uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    old_uri' <- textToCString old_uri
+    maybeNew_uri <- case new_uri of
+        Nothing -> return nullPtr
+        Just jNew_uri -> do
+            jNew_uri' <- textToCString jNew_uri
+            return jNew_uri'
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_move_item _obj' old_uri' maybeNew_uri
+        touchManagedPtr _obj
+        freeMem old_uri'
+        freeMem maybeNew_uri
+        return ()
+     ) (do
+        freeMem old_uri'
+        freeMem maybeNew_uri
+     )
+
+-- method BookmarkFile::remove_application
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_remove_application" g_bookmark_file_remove_application :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- name : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileRemoveApplication ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    T.Text ->                               -- name
+    m ()
+bookmarkFileRemoveApplication _obj uri name = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    name' <- textToCString name
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_remove_application _obj' uri' name'
+        touchManagedPtr _obj
+        freeMem uri'
+        freeMem name'
+        return ()
+     ) (do
+        freeMem uri'
+        freeMem name'
+     )
+
+-- method BookmarkFile::remove_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_remove_group" g_bookmark_file_remove_group :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- group : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileRemoveGroup ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    T.Text ->                               -- group
+    m ()
+bookmarkFileRemoveGroup _obj uri group = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    group' <- textToCString group
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_remove_group _obj' uri' group'
+        touchManagedPtr _obj
+        freeMem uri'
+        freeMem group'
+        return ()
+     ) (do
+        freeMem uri'
+        freeMem group'
+     )
+
+-- method BookmarkFile::remove_item
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_remove_item" g_bookmark_file_remove_item :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileRemoveItem ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    m ()
+bookmarkFileRemoveItem _obj uri = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_remove_item _obj' uri'
+        touchManagedPtr _obj
+        freeMem uri'
+        return ()
+     ) (do
+        freeMem uri'
+     )
+
+-- method BookmarkFile::set_added
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "added", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "added", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_set_added" g_bookmark_file_set_added :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Int64 ->                                -- added : TBasicType TInt64
+    IO ()
+
+
+bookmarkFileSetAdded ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    Int64 ->                                -- added
+    m ()
+bookmarkFileSetAdded _obj uri added = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    g_bookmark_file_set_added _obj' uri' added
+    touchManagedPtr _obj
+    freeMem uri'
+    return ()
+
+-- method BookmarkFile::set_app_info
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "exec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stamp", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "exec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "stamp", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_set_app_info" g_bookmark_file_set_app_info :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- exec : TBasicType TUTF8
+    Int32 ->                                -- count : TBasicType TInt32
+    Int64 ->                                -- stamp : TBasicType TInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileSetAppInfo ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    T.Text ->                               -- name
+    T.Text ->                               -- exec
+    Int32 ->                                -- count
+    Int64 ->                                -- stamp
+    m ()
+bookmarkFileSetAppInfo _obj uri name exec count stamp = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    name' <- textToCString name
+    exec' <- textToCString exec
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_set_app_info _obj' uri' name' exec' count stamp
+        touchManagedPtr _obj
+        freeMem uri'
+        freeMem name'
+        freeMem exec'
+        return ()
+     ) (do
+        freeMem uri'
+        freeMem name'
+        freeMem exec'
+     )
+
+-- method BookmarkFile::set_description
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_set_description" g_bookmark_file_set_description :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- description : TBasicType TUTF8
+    IO ()
+
+
+bookmarkFileSetDescription ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    Maybe (T.Text) ->                       -- uri
+    T.Text ->                               -- description
+    m ()
+bookmarkFileSetDescription _obj uri description = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeUri <- case uri of
+        Nothing -> return nullPtr
+        Just jUri -> do
+            jUri' <- textToCString jUri
+            return jUri'
+    description' <- textToCString description
+    g_bookmark_file_set_description _obj' maybeUri description'
+    touchManagedPtr _obj
+    freeMem maybeUri
+    freeMem description'
+    return ()
+
+-- method BookmarkFile::set_groups
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "groups", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "groups", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_set_groups" g_bookmark_file_set_groups :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- groups : TBasicType TUTF8
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO ()
+
+
+bookmarkFileSetGroups ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    Maybe (T.Text) ->                       -- groups
+    Word64 ->                               -- length
+    m ()
+bookmarkFileSetGroups _obj uri groups length_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    maybeGroups <- case groups of
+        Nothing -> return nullPtr
+        Just jGroups -> do
+            jGroups' <- textToCString jGroups
+            return jGroups'
+    g_bookmark_file_set_groups _obj' uri' maybeGroups length_
+    touchManagedPtr _obj
+    freeMem uri'
+    freeMem maybeGroups
+    return ()
+
+-- method BookmarkFile::set_icon
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "href", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "href", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_set_icon" g_bookmark_file_set_icon :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- href : TBasicType TUTF8
+    CString ->                              -- mime_type : TBasicType TUTF8
+    IO ()
+
+
+bookmarkFileSetIcon ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    Maybe (T.Text) ->                       -- href
+    T.Text ->                               -- mime_type
+    m ()
+bookmarkFileSetIcon _obj uri href mime_type = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    maybeHref <- case href of
+        Nothing -> return nullPtr
+        Just jHref -> do
+            jHref' <- textToCString jHref
+            return jHref'
+    mime_type' <- textToCString mime_type
+    g_bookmark_file_set_icon _obj' uri' maybeHref mime_type'
+    touchManagedPtr _obj
+    freeMem uri'
+    freeMem maybeHref
+    freeMem mime_type'
+    return ()
+
+-- method BookmarkFile::set_is_private
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_private", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_private", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_set_is_private" g_bookmark_file_set_is_private :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CInt ->                                 -- is_private : TBasicType TBoolean
+    IO ()
+
+
+bookmarkFileSetIsPrivate ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    Bool ->                                 -- is_private
+    m ()
+bookmarkFileSetIsPrivate _obj uri is_private = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    let is_private' = (fromIntegral . fromEnum) is_private
+    g_bookmark_file_set_is_private _obj' uri' is_private'
+    touchManagedPtr _obj
+    freeMem uri'
+    return ()
+
+-- method BookmarkFile::set_mime_type
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_set_mime_type" g_bookmark_file_set_mime_type :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- mime_type : TBasicType TUTF8
+    IO ()
+
+
+bookmarkFileSetMimeType ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    T.Text ->                               -- mime_type
+    m ()
+bookmarkFileSetMimeType _obj uri mime_type = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    mime_type' <- textToCString mime_type
+    g_bookmark_file_set_mime_type _obj' uri' mime_type'
+    touchManagedPtr _obj
+    freeMem uri'
+    freeMem mime_type'
+    return ()
+
+-- method BookmarkFile::set_modified
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modified", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modified", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_set_modified" g_bookmark_file_set_modified :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Int64 ->                                -- modified : TBasicType TInt64
+    IO ()
+
+
+bookmarkFileSetModified ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    Int64 ->                                -- modified
+    m ()
+bookmarkFileSetModified _obj uri modified = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    g_bookmark_file_set_modified _obj' uri' modified
+    touchManagedPtr _obj
+    freeMem uri'
+    return ()
+
+-- method BookmarkFile::set_title
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_set_title" g_bookmark_file_set_title :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    CString ->                              -- title : TBasicType TUTF8
+    IO ()
+
+
+bookmarkFileSetTitle ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    Maybe (T.Text) ->                       -- uri
+    T.Text ->                               -- title
+    m ()
+bookmarkFileSetTitle _obj uri title = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeUri <- case uri of
+        Nothing -> return nullPtr
+        Just jUri -> do
+            jUri' <- textToCString jUri
+            return jUri'
+    title' <- textToCString title
+    g_bookmark_file_set_title _obj' maybeUri title'
+    touchManagedPtr _obj
+    freeMem maybeUri
+    freeMem title'
+    return ()
+
+-- method BookmarkFile::set_visited
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "visited", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "visited", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_set_visited" g_bookmark_file_set_visited :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- uri : TBasicType TUTF8
+    Int64 ->                                -- visited : TBasicType TInt64
+    IO ()
+
+
+bookmarkFileSetVisited ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- uri
+    Int64 ->                                -- visited
+    m ()
+bookmarkFileSetVisited _obj uri visited = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    uri' <- textToCString uri
+    g_bookmark_file_set_visited _obj' uri' visited
+    touchManagedPtr _obj
+    freeMem uri'
+    return ()
+
+-- method BookmarkFile::to_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_to_data" g_bookmark_file_to_data :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+bookmarkFileToData ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    m (T.Text,Word64)
+bookmarkFileToData _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_bookmark_file_to_data _obj' length_
+        result' <- cstringToText result
+        freeMem result
+        length_' <- peek length_
+        touchManagedPtr _obj
+        freeMem length_
+        return (result', length_')
+     ) (do
+        freeMem length_
+     )
+
+-- method BookmarkFile::to_file
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_to_file" g_bookmark_file_to_file :: 
+    Ptr BookmarkFile ->                     -- _obj : TInterface "GLib" "BookmarkFile"
+    CString ->                              -- filename : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+bookmarkFileToFile ::
+    (MonadIO m) =>
+    BookmarkFile ->                         -- _obj
+    T.Text ->                               -- filename
+    m ()
+bookmarkFileToFile _obj filename = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    filename' <- textToCString filename
+    onException (do
+        _ <- propagateGError $ g_bookmark_file_to_file _obj' filename'
+        touchManagedPtr _obj
+        freeMem filename'
+        return ()
+     ) (do
+        freeMem filename'
+     )
+
+-- Enum BookmarkFileError
+
+data BookmarkFileError = 
+      BookmarkFileErrorInvalidUri
+    | BookmarkFileErrorInvalidValue
+    | BookmarkFileErrorAppNotRegistered
+    | BookmarkFileErrorUriNotFound
+    | BookmarkFileErrorRead
+    | BookmarkFileErrorUnknownEncoding
+    | BookmarkFileErrorWrite
+    | BookmarkFileErrorFileNotFound
+    | AnotherBookmarkFileError Int
+    deriving (Show, Eq)
+
+instance Enum BookmarkFileError where
+    fromEnum BookmarkFileErrorInvalidUri = 0
+    fromEnum BookmarkFileErrorInvalidValue = 1
+    fromEnum BookmarkFileErrorAppNotRegistered = 2
+    fromEnum BookmarkFileErrorUriNotFound = 3
+    fromEnum BookmarkFileErrorRead = 4
+    fromEnum BookmarkFileErrorUnknownEncoding = 5
+    fromEnum BookmarkFileErrorWrite = 6
+    fromEnum BookmarkFileErrorFileNotFound = 7
+    fromEnum (AnotherBookmarkFileError k) = k
+
+    toEnum 0 = BookmarkFileErrorInvalidUri
+    toEnum 1 = BookmarkFileErrorInvalidValue
+    toEnum 2 = BookmarkFileErrorAppNotRegistered
+    toEnum 3 = BookmarkFileErrorUriNotFound
+    toEnum 4 = BookmarkFileErrorRead
+    toEnum 5 = BookmarkFileErrorUnknownEncoding
+    toEnum 6 = BookmarkFileErrorWrite
+    toEnum 7 = BookmarkFileErrorFileNotFound
+    toEnum k = AnotherBookmarkFileError k
+
+instance GErrorClass BookmarkFileError where
+    gerrorClassDomain _ = "g-bookmark-file-error-quark"
+
+catchBookmarkFileError ::
+    IO a ->
+    (BookmarkFileError -> GErrorMessage -> IO a) ->
+    IO a
+catchBookmarkFileError = catchGErrorJustDomain
+
+handleBookmarkFileError ::
+    (BookmarkFileError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleBookmarkFileError = handleGErrorJustDomain
+
+-- struct ByteArray
+newtype ByteArray = ByteArray (ForeignPtr ByteArray)
+noByteArray :: Maybe ByteArray
+noByteArray = Nothing
+
+foreign import ccall "g_byte_array_get_type" c_g_byte_array_get_type :: 
+    IO GType
+
+instance BoxedObject ByteArray where
+    boxedType _ = c_g_byte_array_get_type
+
+byteArrayReadData :: ByteArray -> IO Word8
+byteArrayReadData s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word8
+    return val
+
+byteArrayReadLen :: ByteArray -> IO Word32
+byteArrayReadLen s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Word32
+    return val
+
+-- struct Bytes
+newtype Bytes = Bytes (ForeignPtr Bytes)
+noBytes :: Maybe Bytes
+noBytes = Nothing
+
+foreign import ccall "g_bytes_get_type" c_g_bytes_get_type :: 
+    IO GType
+
+instance BoxedObject Bytes where
+    boxedType _ = c_g_bytes_get_type
+
+-- method Bytes::new
+-- method type : Constructor
+-- Args : [Arg {argName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Bytes"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_new" g_bytes_new :: 
+    Ptr Word8 ->                            -- data : TCArray False (-1) 1 (TBasicType TUInt8)
+    Word64 ->                               -- size : TBasicType TUInt64
+    IO (Ptr Bytes)
+
+
+bytesNew ::
+    (MonadIO m) =>
+    Maybe (ByteString) ->                   -- data
+    m Bytes
+bytesNew data_ = liftIO $ do
+    let size = case data_ of
+            Nothing -> 0
+            Just jData_ -> fromIntegral $ B.length jData_
+    maybeData_ <- case data_ of
+        Nothing -> return nullPtr
+        Just jData_ -> do
+            jData_' <- packByteString jData_
+            return jData_'
+    result <- g_bytes_new maybeData_ size
+    result' <- (wrapBoxed Bytes) result
+    freeMem maybeData_
+    return result'
+
+-- method Bytes::new_take
+-- method type : Constructor
+-- Args : [Arg {argName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TInterface "GLib" "Bytes"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_new_take" g_bytes_new_take :: 
+    Ptr Word8 ->                            -- data : TCArray False (-1) 1 (TBasicType TUInt8)
+    Word64 ->                               -- size : TBasicType TUInt64
+    IO (Ptr Bytes)
+
+
+bytesNewTake ::
+    (MonadIO m) =>
+    Maybe (ByteString) ->                   -- data
+    m Bytes
+bytesNewTake data_ = liftIO $ do
+    let size = case data_ of
+            Nothing -> 0
+            Just jData_ -> fromIntegral $ B.length jData_
+    maybeData_ <- case data_ of
+        Nothing -> return nullPtr
+        Just jData_ -> do
+            jData_' <- packByteString jData_
+            return jData_'
+    result <- g_bytes_new_take maybeData_ size
+    result' <- (wrapBoxed Bytes) result
+    return result'
+
+-- method Bytes::compare
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes2", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes2", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_compare" g_bytes_compare :: 
+    Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
+    Ptr Bytes ->                            -- bytes2 : TInterface "GLib" "Bytes"
+    IO Int32
+
+
+bytesCompare ::
+    (MonadIO m) =>
+    Bytes ->                                -- _obj
+    Bytes ->                                -- bytes2
+    m Int32
+bytesCompare _obj bytes2 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let bytes2' = unsafeManagedPtrGetPtr bytes2
+    result <- g_bytes_compare _obj' bytes2'
+    touchManagedPtr _obj
+    touchManagedPtr bytes2
+    return result
+
+-- method Bytes::equal
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes2", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes2", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_equal" g_bytes_equal :: 
+    Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
+    Ptr Bytes ->                            -- bytes2 : TInterface "GLib" "Bytes"
+    IO CInt
+
+
+bytesEqual ::
+    (MonadIO m) =>
+    Bytes ->                                -- _obj
+    Bytes ->                                -- bytes2
+    m Bool
+bytesEqual _obj bytes2 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let bytes2' = unsafeManagedPtrGetPtr bytes2
+    result <- g_bytes_equal _obj' bytes2'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr bytes2
+    return result'
+
+-- method Bytes::get_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray False (-1) 1 (TBasicType TUInt8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_get_data" g_bytes_get_data :: 
+    Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
+    Ptr Word64 ->                           -- size : TBasicType TUInt64
+    IO (Ptr Word8)
+
+
+bytesGetData ::
+    (MonadIO m) =>
+    Bytes ->                                -- _obj
+    m ByteString
+bytesGetData _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    size <- allocMem :: IO (Ptr Word64)
+    result <- g_bytes_get_data _obj' size
+    size' <- peek size
+    result' <- (unpackByteStringWithLength size') result
+    touchManagedPtr _obj
+    freeMem size
+    return result'
+
+-- method Bytes::get_size
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_get_size" g_bytes_get_size :: 
+    Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
+    IO Word64
+
+
+bytesGetSize ::
+    (MonadIO m) =>
+    Bytes ->                                -- _obj
+    m Word64
+bytesGetSize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_bytes_get_size _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Bytes::hash
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_hash" g_bytes_hash :: 
+    Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
+    IO Word32
+
+
+bytesHash ::
+    (MonadIO m) =>
+    Bytes ->                                -- _obj
+    m Word32
+bytesHash _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_bytes_hash _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Bytes::new_from_bytes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Bytes"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_new_from_bytes" g_bytes_new_from_bytes :: 
+    Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
+    Word64 ->                               -- offset : TBasicType TUInt64
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO (Ptr Bytes)
+
+
+bytesNewFromBytes ::
+    (MonadIO m) =>
+    Bytes ->                                -- _obj
+    Word64 ->                               -- offset
+    Word64 ->                               -- length
+    m Bytes
+bytesNewFromBytes _obj offset length_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_bytes_new_from_bytes _obj' offset length_
+    result' <- (wrapBoxed Bytes) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Bytes::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Bytes"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_ref" g_bytes_ref :: 
+    Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
+    IO (Ptr Bytes)
+
+
+bytesRef ::
+    (MonadIO m) =>
+    Bytes ->                                -- _obj
+    m Bytes
+bytesRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_bytes_ref _obj'
+    result' <- (wrapBoxed Bytes) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Bytes::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_unref" g_bytes_unref :: 
+    Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
+    IO ()
+
+
+bytesUnref ::
+    (MonadIO m) =>
+    Bytes ->                                -- _obj
+    m ()
+bytesUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_bytes_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Bytes::unref_to_array
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TByteArray
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_unref_to_array" g_bytes_unref_to_array :: 
+    Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
+    IO (Ptr GByteArray)
+
+
+bytesUnrefToArray ::
+    (MonadIO m) =>
+    Bytes ->                                -- _obj
+    m ByteString
+bytesUnrefToArray _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_bytes_unref_to_array _obj'
+    result' <- unpackGByteArray result
+    unrefGByteArray result
+    touchManagedPtr _obj
+    return result'
+
+-- method Bytes::unref_to_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bytes_unref_to_data" g_bytes_unref_to_data :: 
+    Ptr Bytes ->                            -- _obj : TInterface "GLib" "Bytes"
+    Word64 ->                               -- size : TBasicType TUInt64
+    IO ()
+
+
+bytesUnrefToData ::
+    (MonadIO m) =>
+    Bytes ->                                -- _obj
+    Word64 ->                               -- size
+    m ()
+bytesUnrefToData _obj size = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_bytes_unref_to_data _obj' size
+    touchManagedPtr _obj
+    return ()
+
+-- struct Checksum
+newtype Checksum = Checksum (ForeignPtr Checksum)
+noChecksum :: Maybe Checksum
+noChecksum = Nothing
+
+foreign import ccall "g_checksum_get_type" c_g_checksum_get_type :: 
+    IO GType
+
+instance BoxedObject Checksum where
+    boxedType _ = c_g_checksum_get_type
+
+-- method Checksum::new
+-- method type : Constructor
+-- Args : [Arg {argName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Checksum"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_checksum_new" g_checksum_new :: 
+    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
+    IO (Ptr Checksum)
+
+
+checksumNew ::
+    (MonadIO m) =>
+    ChecksumType ->                         -- checksum_type
+    m Checksum
+checksumNew checksum_type = liftIO $ do
+    let checksum_type' = (fromIntegral . fromEnum) checksum_type
+    result <- g_checksum_new checksum_type'
+    result' <- (wrapBoxed Checksum) result
+    return result'
+
+-- method Checksum::copy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Checksum"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_checksum_copy" g_checksum_copy :: 
+    Ptr Checksum ->                         -- _obj : TInterface "GLib" "Checksum"
+    IO (Ptr Checksum)
+
+
+checksumCopy ::
+    (MonadIO m) =>
+    Checksum ->                             -- _obj
+    m Checksum
+checksumCopy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_checksum_copy _obj'
+    result' <- (wrapBoxed Checksum) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Checksum::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_checksum_free" g_checksum_free :: 
+    Ptr Checksum ->                         -- _obj : TInterface "GLib" "Checksum"
+    IO ()
+
+
+checksumFree ::
+    (MonadIO m) =>
+    Checksum ->                             -- _obj
+    m ()
+checksumFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_checksum_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Checksum::get_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_checksum_get_string" g_checksum_get_string :: 
+    Ptr Checksum ->                         -- _obj : TInterface "GLib" "Checksum"
+    IO CString
+
+
+checksumGetString ::
+    (MonadIO m) =>
+    Checksum ->                             -- _obj
+    m T.Text
+checksumGetString _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_checksum_get_string _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method Checksum::reset
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_checksum_reset" g_checksum_reset :: 
+    Ptr Checksum ->                         -- _obj : TInterface "GLib" "Checksum"
+    IO ()
+
+
+checksumReset ::
+    (MonadIO m) =>
+    Checksum ->                             -- _obj
+    m ()
+checksumReset _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_checksum_reset _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Checksum::update
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_checksum_update" g_checksum_update :: 
+    Ptr Checksum ->                         -- _obj : TInterface "GLib" "Checksum"
+    Ptr Word8 ->                            -- data : TCArray False (-1) 2 (TBasicType TUInt8)
+    Int64 ->                                -- length : TBasicType TInt64
+    IO ()
+
+
+checksumUpdate ::
+    (MonadIO m) =>
+    Checksum ->                             -- _obj
+    ByteString ->                           -- data
+    m ()
+checksumUpdate _obj data_ = liftIO $ do
+    let length_ = fromIntegral $ B.length data_
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    data_' <- packByteString data_
+    g_checksum_update _obj' data_' length_
+    touchManagedPtr _obj
+    freeMem data_'
+    return ()
+
+-- Enum ChecksumType
+
+data ChecksumType = 
+      ChecksumTypeMd5
+    | ChecksumTypeSha1
+    | ChecksumTypeSha256
+    | ChecksumTypeSha512
+    | AnotherChecksumType Int
+    deriving (Show, Eq)
+
+instance Enum ChecksumType where
+    fromEnum ChecksumTypeMd5 = 0
+    fromEnum ChecksumTypeSha1 = 1
+    fromEnum ChecksumTypeSha256 = 2
+    fromEnum ChecksumTypeSha512 = 3
+    fromEnum (AnotherChecksumType k) = k
+
+    toEnum 0 = ChecksumTypeMd5
+    toEnum 1 = ChecksumTypeSha1
+    toEnum 2 = ChecksumTypeSha256
+    toEnum 3 = ChecksumTypeSha512
+    toEnum k = AnotherChecksumType k
+
+-- callback ChildWatchFunc
+childWatchFuncClosure :: ChildWatchFunc -> IO Closure
+childWatchFuncClosure cb = newCClosure =<< mkChildWatchFunc wrapped
+    where wrapped = childWatchFuncWrapper Nothing cb
+
+type ChildWatchFuncC =
+    Int32 ->
+    Int32 ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkChildWatchFunc :: ChildWatchFuncC -> IO (FunPtr ChildWatchFuncC)
+
+type ChildWatchFunc =
+    Int32 ->
+    Int32 ->
+    IO ()
+
+noChildWatchFunc :: Maybe ChildWatchFunc
+noChildWatchFunc = Nothing
+
+childWatchFuncWrapper ::
+    Maybe (Ptr (FunPtr (ChildWatchFuncC))) ->
+    ChildWatchFunc ->
+    Int32 ->
+    Int32 ->
+    Ptr () ->
+    IO ()
+childWatchFuncWrapper funptrptr _cb pid status _ = do
+    _cb  pid status
+    maybeReleaseFunPtr funptrptr
+
+-- callback CompareDataFunc
+compareDataFuncClosure :: CompareDataFunc -> IO Closure
+compareDataFuncClosure cb = newCClosure =<< mkCompareDataFunc wrapped
+    where wrapped = compareDataFuncWrapper Nothing cb
+
+type CompareDataFuncC =
+    Ptr () ->
+    Ptr () ->
+    Ptr () ->
+    IO Int32
+
+foreign import ccall "wrapper"
+    mkCompareDataFunc :: CompareDataFuncC -> IO (FunPtr CompareDataFuncC)
+
+type CompareDataFunc =
+    Ptr () ->
+    Ptr () ->
+    IO Int32
+
+noCompareDataFunc :: Maybe CompareDataFunc
+noCompareDataFunc = Nothing
+
+compareDataFuncWrapper ::
+    Maybe (Ptr (FunPtr (CompareDataFuncC))) ->
+    CompareDataFunc ->
+    Ptr () ->
+    Ptr () ->
+    Ptr () ->
+    IO Int32
+compareDataFuncWrapper funptrptr _cb a b _ = do
+    result <- _cb  a b
+    maybeReleaseFunPtr funptrptr
+    return result
+
+-- callback CompareFunc
+compareFuncClosure :: CompareFunc -> IO Closure
+compareFuncClosure cb = newCClosure =<< mkCompareFunc wrapped
+    where wrapped = compareFuncWrapper Nothing cb
+
+type CompareFuncC =
+    Ptr () ->
+    Ptr () ->
+    IO Int32
+
+foreign import ccall "wrapper"
+    mkCompareFunc :: CompareFuncC -> IO (FunPtr CompareFuncC)
+
+type CompareFunc =
+    Ptr () ->
+    Ptr () ->
+    IO Int32
+
+noCompareFunc :: Maybe CompareFunc
+noCompareFunc = Nothing
+
+compareFuncWrapper ::
+    Maybe (Ptr (FunPtr (CompareFuncC))) ->
+    CompareFunc ->
+    Ptr () ->
+    Ptr () ->
+    IO Int32
+compareFuncWrapper funptrptr _cb a b = do
+    result <- _cb  a b
+    maybeReleaseFunPtr funptrptr
+    return result
+
+-- struct Cond
+newtype Cond = Cond (ForeignPtr Cond)
+noCond :: Maybe Cond
+noCond = Nothing
+
+-- method Cond::broadcast
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_cond_broadcast" g_cond_broadcast :: 
+    Ptr Cond ->                             -- _obj : TInterface "GLib" "Cond"
+    IO ()
+
+
+condBroadcast ::
+    (MonadIO m) =>
+    Cond ->                                 -- _obj
+    m ()
+condBroadcast _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_cond_broadcast _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Cond::clear
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_cond_clear" g_cond_clear :: 
+    Ptr Cond ->                             -- _obj : TInterface "GLib" "Cond"
+    IO ()
+
+
+condClear ::
+    (MonadIO m) =>
+    Cond ->                                 -- _obj
+    m ()
+condClear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_cond_clear _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Cond::init
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_cond_init" g_cond_init :: 
+    Ptr Cond ->                             -- _obj : TInterface "GLib" "Cond"
+    IO ()
+
+
+condInit ::
+    (MonadIO m) =>
+    Cond ->                                 -- _obj
+    m ()
+condInit _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_cond_init _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Cond::signal
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_cond_signal" g_cond_signal :: 
+    Ptr Cond ->                             -- _obj : TInterface "GLib" "Cond"
+    IO ()
+
+
+condSignal ::
+    (MonadIO m) =>
+    Cond ->                                 -- _obj
+    m ()
+condSignal _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_cond_signal _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Cond::wait
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mutex", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mutex", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_cond_wait" g_cond_wait :: 
+    Ptr Cond ->                             -- _obj : TInterface "GLib" "Cond"
+    Ptr Mutex ->                            -- mutex : TInterface "GLib" "Mutex"
+    IO ()
+
+
+condWait ::
+    (MonadIO m) =>
+    Cond ->                                 -- _obj
+    Mutex ->                                -- mutex
+    m ()
+condWait _obj mutex = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let mutex' = unsafeManagedPtrGetPtr mutex
+    g_cond_wait _obj' mutex'
+    touchManagedPtr _obj
+    touchManagedPtr mutex
+    return ()
+
+-- method Cond::wait_until
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mutex", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mutex", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_cond_wait_until" g_cond_wait_until :: 
+    Ptr Cond ->                             -- _obj : TInterface "GLib" "Cond"
+    Ptr Mutex ->                            -- mutex : TInterface "GLib" "Mutex"
+    Int64 ->                                -- end_time : TBasicType TInt64
+    IO CInt
+
+
+condWaitUntil ::
+    (MonadIO m) =>
+    Cond ->                                 -- _obj
+    Mutex ->                                -- mutex
+    Int64 ->                                -- end_time
+    m Bool
+condWaitUntil _obj mutex end_time = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let mutex' = unsafeManagedPtrGetPtr mutex
+    result <- g_cond_wait_until _obj' mutex' end_time
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr mutex
+    return result'
+
+-- Enum ConvertError
+
+data ConvertError = 
+      ConvertErrorNoConversion
+    | ConvertErrorIllegalSequence
+    | ConvertErrorFailed
+    | ConvertErrorPartialInput
+    | ConvertErrorBadUri
+    | ConvertErrorNotAbsolutePath
+    | ConvertErrorNoMemory
+    | AnotherConvertError Int
+    deriving (Show, Eq)
+
+instance Enum ConvertError where
+    fromEnum ConvertErrorNoConversion = 0
+    fromEnum ConvertErrorIllegalSequence = 1
+    fromEnum ConvertErrorFailed = 2
+    fromEnum ConvertErrorPartialInput = 3
+    fromEnum ConvertErrorBadUri = 4
+    fromEnum ConvertErrorNotAbsolutePath = 5
+    fromEnum ConvertErrorNoMemory = 6
+    fromEnum (AnotherConvertError k) = k
+
+    toEnum 0 = ConvertErrorNoConversion
+    toEnum 1 = ConvertErrorIllegalSequence
+    toEnum 2 = ConvertErrorFailed
+    toEnum 3 = ConvertErrorPartialInput
+    toEnum 4 = ConvertErrorBadUri
+    toEnum 5 = ConvertErrorNotAbsolutePath
+    toEnum 6 = ConvertErrorNoMemory
+    toEnum k = AnotherConvertError k
+
+instance GErrorClass ConvertError where
+    gerrorClassDomain _ = "g_convert_error"
+
+catchConvertError ::
+    IO a ->
+    (ConvertError -> GErrorMessage -> IO a) ->
+    IO a
+catchConvertError = catchGErrorJustDomain
+
+handleConvertError ::
+    (ConvertError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleConvertError = handleGErrorJustDomain
+
+-- struct Data
+newtype Data = Data (ForeignPtr Data)
+noData :: Maybe Data
+noData = Nothing
+
+-- callback DataForeachFunc
+dataForeachFuncClosure :: DataForeachFunc -> IO Closure
+dataForeachFuncClosure cb = newCClosure =<< mkDataForeachFunc wrapped
+    where wrapped = dataForeachFuncWrapper Nothing cb
+
+type DataForeachFuncC =
+    Word32 ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkDataForeachFunc :: DataForeachFuncC -> IO (FunPtr DataForeachFuncC)
+
+type DataForeachFunc =
+    Word32 ->
+    Ptr () ->
+    IO ()
+
+noDataForeachFunc :: Maybe DataForeachFunc
+noDataForeachFunc = Nothing
+
+dataForeachFuncWrapper ::
+    Maybe (Ptr (FunPtr (DataForeachFuncC))) ->
+    DataForeachFunc ->
+    Word32 ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+dataForeachFuncWrapper funptrptr _cb key_id data_ _ = do
+    _cb  key_id data_
+    maybeReleaseFunPtr funptrptr
+
+-- struct Date
+newtype Date = Date (ForeignPtr Date)
+noDate :: Maybe Date
+noDate = Nothing
+
+foreign import ccall "g_date_get_type" c_g_date_get_type :: 
+    IO GType
+
+instance BoxedObject Date where
+    boxedType _ = c_g_date_get_type
+
+dateReadJulianDays :: Date -> IO Word32
+dateReadJulianDays s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word32
+    return val
+
+dateReadJulian :: Date -> IO Word32
+dateReadJulian s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 4) :: IO Word32
+    return val
+
+dateReadDmy :: Date -> IO Word32
+dateReadDmy s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Word32
+    return val
+
+dateReadDay :: Date -> IO Word32
+dateReadDay s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 12) :: IO Word32
+    return val
+
+dateReadMonth :: Date -> IO Word32
+dateReadMonth s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Word32
+    return val
+
+dateReadYear :: Date -> IO Word32
+dateReadYear s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO Word32
+    return val
+
+-- method Date::new
+-- method type : Constructor
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "Date"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_new" g_date_new :: 
+    IO (Ptr Date)
+
+
+dateNew ::
+    (MonadIO m) =>
+    m Date
+dateNew  = liftIO $ do
+    result <- g_date_new
+    result' <- (wrapBoxed Date) result
+    return result'
+
+-- method Date::new_dmy
+-- method type : Constructor
+-- Args : [Arg {argName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Date"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_new_dmy" g_date_new_dmy :: 
+    Word8 ->                                -- day : TBasicType TUInt8
+    CUInt ->                                -- month : TInterface "GLib" "DateMonth"
+    Word16 ->                               -- year : TBasicType TUInt16
+    IO (Ptr Date)
+
+
+dateNewDmy ::
+    (MonadIO m) =>
+    Word8 ->                                -- day
+    DateMonth ->                            -- month
+    Word16 ->                               -- year
+    m Date
+dateNewDmy day month year = liftIO $ do
+    let month' = (fromIntegral . fromEnum) month
+    result <- g_date_new_dmy day month' year
+    result' <- (wrapBoxed Date) result
+    return result'
+
+-- method Date::new_julian
+-- method type : Constructor
+-- Args : [Arg {argName = "julian_day", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "julian_day", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Date"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_new_julian" g_date_new_julian :: 
+    Word32 ->                               -- julian_day : TBasicType TUInt32
+    IO (Ptr Date)
+
+
+dateNewJulian ::
+    (MonadIO m) =>
+    Word32 ->                               -- julian_day
+    m Date
+dateNewJulian julian_day = liftIO $ do
+    result <- g_date_new_julian julian_day
+    result' <- (wrapBoxed Date) result
+    return result'
+
+-- method Date::add_days
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_days", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_days", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_add_days" g_date_add_days :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word32 ->                               -- n_days : TBasicType TUInt32
+    IO ()
+
+
+dateAddDays ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word32 ->                               -- n_days
+    m ()
+dateAddDays _obj n_days = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_add_days _obj' n_days
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::add_months
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_months", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_months", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_add_months" g_date_add_months :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word32 ->                               -- n_months : TBasicType TUInt32
+    IO ()
+
+
+dateAddMonths ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word32 ->                               -- n_months
+    m ()
+dateAddMonths _obj n_months = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_add_months _obj' n_months
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::add_years
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_years", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_years", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_add_years" g_date_add_years :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word32 ->                               -- n_years : TBasicType TUInt32
+    IO ()
+
+
+dateAddYears ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word32 ->                               -- n_years
+    m ()
+dateAddYears _obj n_years = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_add_years _obj' n_years
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::clamp
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "min_date", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_date", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "min_date", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_date", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_clamp" g_date_clamp :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Ptr Date ->                             -- min_date : TInterface "GLib" "Date"
+    Ptr Date ->                             -- max_date : TInterface "GLib" "Date"
+    IO ()
+
+
+dateClamp ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Date ->                                 -- min_date
+    Date ->                                 -- max_date
+    m ()
+dateClamp _obj min_date max_date = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let min_date' = unsafeManagedPtrGetPtr min_date
+    let max_date' = unsafeManagedPtrGetPtr max_date
+    g_date_clamp _obj' min_date' max_date'
+    touchManagedPtr _obj
+    touchManagedPtr min_date
+    touchManagedPtr max_date
+    return ()
+
+-- method Date::clear
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_dates", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_dates", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_clear" g_date_clear :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word32 ->                               -- n_dates : TBasicType TUInt32
+    IO ()
+
+
+dateClear ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word32 ->                               -- n_dates
+    m ()
+dateClear _obj n_dates = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_clear _obj' n_dates
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::compare
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rhs", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rhs", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_compare" g_date_compare :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Ptr Date ->                             -- rhs : TInterface "GLib" "Date"
+    IO Int32
+
+
+dateCompare ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Date ->                                 -- rhs
+    m Int32
+dateCompare _obj rhs = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let rhs' = unsafeManagedPtrGetPtr rhs
+    result <- g_date_compare _obj' rhs'
+    touchManagedPtr _obj
+    touchManagedPtr rhs
+    return result
+
+-- method Date::days_between
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "date2", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "date2", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_days_between" g_date_days_between :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Ptr Date ->                             -- date2 : TInterface "GLib" "Date"
+    IO Int32
+
+
+dateDaysBetween ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Date ->                                 -- date2
+    m Int32
+dateDaysBetween _obj date2 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let date2' = unsafeManagedPtrGetPtr date2
+    result <- g_date_days_between _obj' date2'
+    touchManagedPtr _obj
+    touchManagedPtr date2
+    return result
+
+-- method Date::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_free" g_date_free :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO ()
+
+
+dateFree ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m ()
+dateFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::get_day
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_day" g_date_get_day :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO Word8
+
+
+dateGetDay ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m Word8
+dateGetDay _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_get_day _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Date::get_day_of_year
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_day_of_year" g_date_get_day_of_year :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO Word32
+
+
+dateGetDayOfYear ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m Word32
+dateGetDayOfYear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_get_day_of_year _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Date::get_iso8601_week_of_year
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_iso8601_week_of_year" g_date_get_iso8601_week_of_year :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO Word32
+
+
+dateGetIso8601WeekOfYear ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m Word32
+dateGetIso8601WeekOfYear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_get_iso8601_week_of_year _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Date::get_julian
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_julian" g_date_get_julian :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO Word32
+
+
+dateGetJulian ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m Word32
+dateGetJulian _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_get_julian _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Date::get_monday_week_of_year
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_monday_week_of_year" g_date_get_monday_week_of_year :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO Word32
+
+
+dateGetMondayWeekOfYear ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m Word32
+dateGetMondayWeekOfYear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_get_monday_week_of_year _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Date::get_month
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateMonth"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_month" g_date_get_month :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO CUInt
+
+
+dateGetMonth ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m DateMonth
+dateGetMonth _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_get_month _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Date::get_sunday_week_of_year
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_sunday_week_of_year" g_date_get_sunday_week_of_year :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO Word32
+
+
+dateGetSundayWeekOfYear ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m Word32
+dateGetSundayWeekOfYear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_get_sunday_week_of_year _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Date::get_weekday
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateWeekday"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_weekday" g_date_get_weekday :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO CUInt
+
+
+dateGetWeekday ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m DateWeekday
+dateGetWeekday _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_get_weekday _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Date::get_year
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt16
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_year" g_date_get_year :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO Word16
+
+
+dateGetYear ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m Word16
+dateGetYear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_get_year _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Date::is_first_of_month
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_is_first_of_month" g_date_is_first_of_month :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO CInt
+
+
+dateIsFirstOfMonth ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m Bool
+dateIsFirstOfMonth _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_is_first_of_month _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Date::is_last_of_month
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_is_last_of_month" g_date_is_last_of_month :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO CInt
+
+
+dateIsLastOfMonth ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m Bool
+dateIsLastOfMonth _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_is_last_of_month _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Date::order
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "date2", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "date2", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_order" g_date_order :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Ptr Date ->                             -- date2 : TInterface "GLib" "Date"
+    IO ()
+
+
+dateOrder ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Date ->                                 -- date2
+    m ()
+dateOrder _obj date2 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let date2' = unsafeManagedPtrGetPtr date2
+    g_date_order _obj' date2'
+    touchManagedPtr _obj
+    touchManagedPtr date2
+    return ()
+
+-- method Date::set_day
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_set_day" g_date_set_day :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word8 ->                                -- day : TBasicType TUInt8
+    IO ()
+
+
+dateSetDay ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word8 ->                                -- day
+    m ()
+dateSetDay _obj day = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_set_day _obj' day
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::set_dmy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_set_dmy" g_date_set_dmy :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word8 ->                                -- day : TBasicType TUInt8
+    CUInt ->                                -- month : TInterface "GLib" "DateMonth"
+    Word16 ->                               -- y : TBasicType TUInt16
+    IO ()
+
+
+dateSetDmy ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word8 ->                                -- day
+    DateMonth ->                            -- month
+    Word16 ->                               -- y
+    m ()
+dateSetDmy _obj day month y = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let month' = (fromIntegral . fromEnum) month
+    g_date_set_dmy _obj' day month' y
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::set_julian
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "julian_date", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "julian_date", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_set_julian" g_date_set_julian :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word32 ->                               -- julian_date : TBasicType TUInt32
+    IO ()
+
+
+dateSetJulian ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word32 ->                               -- julian_date
+    m ()
+dateSetJulian _obj julian_date = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_set_julian _obj' julian_date
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::set_month
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_set_month" g_date_set_month :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    CUInt ->                                -- month : TInterface "GLib" "DateMonth"
+    IO ()
+
+
+dateSetMonth ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    DateMonth ->                            -- month
+    m ()
+dateSetMonth _obj month = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let month' = (fromIntegral . fromEnum) month
+    g_date_set_month _obj' month'
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::set_parse
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_set_parse" g_date_set_parse :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    CString ->                              -- str : TBasicType TUTF8
+    IO ()
+
+
+dateSetParse ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    T.Text ->                               -- str
+    m ()
+dateSetParse _obj str = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    str' <- textToCString str
+    g_date_set_parse _obj' str'
+    touchManagedPtr _obj
+    freeMem str'
+    return ()
+
+-- method Date::set_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_set_time" g_date_set_time :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Int32 ->                                -- time_ : TBasicType TInt32
+    IO ()
+
+{-# DEPRECATED dateSetTime ["(Since version 2.10)","Use g_date_set_time_t() instead."]#-}
+dateSetTime ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Int32 ->                                -- time_
+    m ()
+dateSetTime _obj time_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_set_time _obj' time_
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::set_time_t
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timet", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timet", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_set_time_t" g_date_set_time_t :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Int64 ->                                -- timet : TBasicType TInt64
+    IO ()
+
+
+dateSetTimeT ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Int64 ->                                -- timet
+    m ()
+dateSetTimeT _obj timet = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_set_time_t _obj' timet
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::set_time_val
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timeval", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timeval", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_set_time_val" g_date_set_time_val :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Ptr TimeVal ->                          -- timeval : TInterface "GLib" "TimeVal"
+    IO ()
+
+
+dateSetTimeVal ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    TimeVal ->                              -- timeval
+    m ()
+dateSetTimeVal _obj timeval = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let timeval' = unsafeManagedPtrGetPtr timeval
+    g_date_set_time_val _obj' timeval'
+    touchManagedPtr _obj
+    touchManagedPtr timeval
+    return ()
+
+-- method Date::set_year
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_set_year" g_date_set_year :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word16 ->                               -- year : TBasicType TUInt16
+    IO ()
+
+
+dateSetYear ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word16 ->                               -- year
+    m ()
+dateSetYear _obj year = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_set_year _obj' year
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::subtract_days
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_days", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_days", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_subtract_days" g_date_subtract_days :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word32 ->                               -- n_days : TBasicType TUInt32
+    IO ()
+
+
+dateSubtractDays ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word32 ->                               -- n_days
+    m ()
+dateSubtractDays _obj n_days = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_subtract_days _obj' n_days
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::subtract_months
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_months", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_months", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_subtract_months" g_date_subtract_months :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word32 ->                               -- n_months : TBasicType TUInt32
+    IO ()
+
+
+dateSubtractMonths ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word32 ->                               -- n_months
+    m ()
+dateSubtractMonths _obj n_months = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_subtract_months _obj' n_months
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::subtract_years
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_years", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_years", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_subtract_years" g_date_subtract_years :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Word32 ->                               -- n_years : TBasicType TUInt32
+    IO ()
+
+
+dateSubtractYears ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Word32 ->                               -- n_years
+    m ()
+dateSubtractYears _obj n_years = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_subtract_years _obj' n_years
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::to_struct_tm
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tm", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tm", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_to_struct_tm" g_date_to_struct_tm :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    Ptr () ->                               -- tm : TBasicType TVoid
+    IO ()
+
+
+dateToStructTm ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    Ptr () ->                               -- tm
+    m ()
+dateToStructTm _obj tm = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_to_struct_tm _obj' tm
+    touchManagedPtr _obj
+    return ()
+
+-- method Date::valid
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_valid" g_date_valid :: 
+    Ptr Date ->                             -- _obj : TInterface "GLib" "Date"
+    IO CInt
+
+
+dateValid ::
+    (MonadIO m) =>
+    Date ->                                 -- _obj
+    m Bool
+dateValid _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_valid _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- Enum DateDMY
+
+data DateDMY = 
+      DateDMYDay
+    | DateDMYMonth
+    | DateDMYYear
+    | AnotherDateDMY Int
+    deriving (Show, Eq)
+
+instance Enum DateDMY where
+    fromEnum DateDMYDay = 0
+    fromEnum DateDMYMonth = 1
+    fromEnum DateDMYYear = 2
+    fromEnum (AnotherDateDMY k) = k
+
+    toEnum 0 = DateDMYDay
+    toEnum 1 = DateDMYMonth
+    toEnum 2 = DateDMYYear
+    toEnum k = AnotherDateDMY k
+
+-- Enum DateMonth
+
+data DateMonth = 
+      DateMonthBadMonth
+    | DateMonthJanuary
+    | DateMonthFebruary
+    | DateMonthMarch
+    | DateMonthApril
+    | DateMonthMay
+    | DateMonthJune
+    | DateMonthJuly
+    | DateMonthAugust
+    | DateMonthSeptember
+    | DateMonthOctober
+    | DateMonthNovember
+    | DateMonthDecember
+    | AnotherDateMonth Int
+    deriving (Show, Eq)
+
+instance Enum DateMonth where
+    fromEnum DateMonthBadMonth = 0
+    fromEnum DateMonthJanuary = 1
+    fromEnum DateMonthFebruary = 2
+    fromEnum DateMonthMarch = 3
+    fromEnum DateMonthApril = 4
+    fromEnum DateMonthMay = 5
+    fromEnum DateMonthJune = 6
+    fromEnum DateMonthJuly = 7
+    fromEnum DateMonthAugust = 8
+    fromEnum DateMonthSeptember = 9
+    fromEnum DateMonthOctober = 10
+    fromEnum DateMonthNovember = 11
+    fromEnum DateMonthDecember = 12
+    fromEnum (AnotherDateMonth k) = k
+
+    toEnum 0 = DateMonthBadMonth
+    toEnum 1 = DateMonthJanuary
+    toEnum 2 = DateMonthFebruary
+    toEnum 3 = DateMonthMarch
+    toEnum 4 = DateMonthApril
+    toEnum 5 = DateMonthMay
+    toEnum 6 = DateMonthJune
+    toEnum 7 = DateMonthJuly
+    toEnum 8 = DateMonthAugust
+    toEnum 9 = DateMonthSeptember
+    toEnum 10 = DateMonthOctober
+    toEnum 11 = DateMonthNovember
+    toEnum 12 = DateMonthDecember
+    toEnum k = AnotherDateMonth k
+
+-- struct DateTime
+newtype DateTime = DateTime (ForeignPtr DateTime)
+noDateTime :: Maybe DateTime
+noDateTime = Nothing
+
+foreign import ccall "g_date_time_get_type" c_g_date_time_get_type :: 
+    IO GType
+
+instance BoxedObject DateTime where
+    boxedType _ = c_g_date_time_get_type
+
+-- method DateTime::new
+-- method type : Constructor
+-- Args : [Arg {argName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "day", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hour", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minute", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "day", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hour", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minute", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_new" g_date_time_new :: 
+    Ptr TimeZone ->                         -- tz : TInterface "GLib" "TimeZone"
+    Int32 ->                                -- year : TBasicType TInt32
+    Int32 ->                                -- month : TBasicType TInt32
+    Int32 ->                                -- day : TBasicType TInt32
+    Int32 ->                                -- hour : TBasicType TInt32
+    Int32 ->                                -- minute : TBasicType TInt32
+    CDouble ->                              -- seconds : TBasicType TDouble
+    IO (Ptr DateTime)
+
+
+dateTimeNew ::
+    (MonadIO m) =>
+    TimeZone ->                             -- tz
+    Int32 ->                                -- year
+    Int32 ->                                -- month
+    Int32 ->                                -- day
+    Int32 ->                                -- hour
+    Int32 ->                                -- minute
+    Double ->                               -- seconds
+    m DateTime
+dateTimeNew tz year month day hour minute seconds = liftIO $ do
+    let tz' = unsafeManagedPtrGetPtr tz
+    let seconds' = realToFrac seconds
+    result <- g_date_time_new tz' year month day hour minute seconds'
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr tz
+    return result'
+
+-- method DateTime::new_from_timeval_local
+-- method type : Constructor
+-- Args : [Arg {argName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_new_from_timeval_local" g_date_time_new_from_timeval_local :: 
+    Ptr TimeVal ->                          -- tv : TInterface "GLib" "TimeVal"
+    IO (Ptr DateTime)
+
+
+dateTimeNewFromTimevalLocal ::
+    (MonadIO m) =>
+    TimeVal ->                              -- tv
+    m DateTime
+dateTimeNewFromTimevalLocal tv = liftIO $ do
+    let tv' = unsafeManagedPtrGetPtr tv
+    result <- g_date_time_new_from_timeval_local tv'
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr tv
+    return result'
+
+-- method DateTime::new_from_timeval_utc
+-- method type : Constructor
+-- Args : [Arg {argName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_new_from_timeval_utc" g_date_time_new_from_timeval_utc :: 
+    Ptr TimeVal ->                          -- tv : TInterface "GLib" "TimeVal"
+    IO (Ptr DateTime)
+
+
+dateTimeNewFromTimevalUtc ::
+    (MonadIO m) =>
+    TimeVal ->                              -- tv
+    m DateTime
+dateTimeNewFromTimevalUtc tv = liftIO $ do
+    let tv' = unsafeManagedPtrGetPtr tv
+    result <- g_date_time_new_from_timeval_utc tv'
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr tv
+    return result'
+
+-- method DateTime::new_from_unix_local
+-- method type : Constructor
+-- Args : [Arg {argName = "t", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "t", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_new_from_unix_local" g_date_time_new_from_unix_local :: 
+    Int64 ->                                -- t : TBasicType TInt64
+    IO (Ptr DateTime)
+
+
+dateTimeNewFromUnixLocal ::
+    (MonadIO m) =>
+    Int64 ->                                -- t
+    m DateTime
+dateTimeNewFromUnixLocal t = liftIO $ do
+    result <- g_date_time_new_from_unix_local t
+    result' <- (wrapBoxed DateTime) result
+    return result'
+
+-- method DateTime::new_from_unix_utc
+-- method type : Constructor
+-- Args : [Arg {argName = "t", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "t", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_new_from_unix_utc" g_date_time_new_from_unix_utc :: 
+    Int64 ->                                -- t : TBasicType TInt64
+    IO (Ptr DateTime)
+
+
+dateTimeNewFromUnixUtc ::
+    (MonadIO m) =>
+    Int64 ->                                -- t
+    m DateTime
+dateTimeNewFromUnixUtc t = liftIO $ do
+    result <- g_date_time_new_from_unix_utc t
+    result' <- (wrapBoxed DateTime) result
+    return result'
+
+-- method DateTime::new_local
+-- method type : Constructor
+-- Args : [Arg {argName = "year", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "day", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hour", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minute", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "year", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "day", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hour", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minute", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_new_local" g_date_time_new_local :: 
+    Int32 ->                                -- year : TBasicType TInt32
+    Int32 ->                                -- month : TBasicType TInt32
+    Int32 ->                                -- day : TBasicType TInt32
+    Int32 ->                                -- hour : TBasicType TInt32
+    Int32 ->                                -- minute : TBasicType TInt32
+    CDouble ->                              -- seconds : TBasicType TDouble
+    IO (Ptr DateTime)
+
+
+dateTimeNewLocal ::
+    (MonadIO m) =>
+    Int32 ->                                -- year
+    Int32 ->                                -- month
+    Int32 ->                                -- day
+    Int32 ->                                -- hour
+    Int32 ->                                -- minute
+    Double ->                               -- seconds
+    m DateTime
+dateTimeNewLocal year month day hour minute seconds = liftIO $ do
+    let seconds' = realToFrac seconds
+    result <- g_date_time_new_local year month day hour minute seconds'
+    result' <- (wrapBoxed DateTime) result
+    return result'
+
+-- method DateTime::new_now
+-- method type : Constructor
+-- Args : [Arg {argName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_new_now" g_date_time_new_now :: 
+    Ptr TimeZone ->                         -- tz : TInterface "GLib" "TimeZone"
+    IO (Ptr DateTime)
+
+
+dateTimeNewNow ::
+    (MonadIO m) =>
+    TimeZone ->                             -- tz
+    m DateTime
+dateTimeNewNow tz = liftIO $ do
+    let tz' = unsafeManagedPtrGetPtr tz
+    result <- g_date_time_new_now tz'
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr tz
+    return result'
+
+-- method DateTime::new_now_local
+-- method type : Constructor
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_new_now_local" g_date_time_new_now_local :: 
+    IO (Ptr DateTime)
+
+
+dateTimeNewNowLocal ::
+    (MonadIO m) =>
+    m DateTime
+dateTimeNewNowLocal  = liftIO $ do
+    result <- g_date_time_new_now_local
+    result' <- (wrapBoxed DateTime) result
+    return result'
+
+-- method DateTime::new_now_utc
+-- method type : Constructor
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_new_now_utc" g_date_time_new_now_utc :: 
+    IO (Ptr DateTime)
+
+
+dateTimeNewNowUtc ::
+    (MonadIO m) =>
+    m DateTime
+dateTimeNewNowUtc  = liftIO $ do
+    result <- g_date_time_new_now_utc
+    result' <- (wrapBoxed DateTime) result
+    return result'
+
+-- method DateTime::new_utc
+-- method type : Constructor
+-- Args : [Arg {argName = "year", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "day", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hour", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minute", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "year", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "day", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hour", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minute", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_new_utc" g_date_time_new_utc :: 
+    Int32 ->                                -- year : TBasicType TInt32
+    Int32 ->                                -- month : TBasicType TInt32
+    Int32 ->                                -- day : TBasicType TInt32
+    Int32 ->                                -- hour : TBasicType TInt32
+    Int32 ->                                -- minute : TBasicType TInt32
+    CDouble ->                              -- seconds : TBasicType TDouble
+    IO (Ptr DateTime)
+
+
+dateTimeNewUtc ::
+    (MonadIO m) =>
+    Int32 ->                                -- year
+    Int32 ->                                -- month
+    Int32 ->                                -- day
+    Int32 ->                                -- hour
+    Int32 ->                                -- minute
+    Double ->                               -- seconds
+    m DateTime
+dateTimeNewUtc year month day hour minute seconds = liftIO $ do
+    let seconds' = realToFrac seconds
+    result <- g_date_time_new_utc year month day hour minute seconds'
+    result' <- (wrapBoxed DateTime) result
+    return result'
+
+-- method DateTime::add
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timespan", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timespan", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_add" g_date_time_add :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Int64 ->                                -- timespan : TBasicType TInt64
+    IO (Ptr DateTime)
+
+
+dateTimeAdd ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    Int64 ->                                -- timespan
+    m DateTime
+dateTimeAdd _obj timespan = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_add _obj' timespan
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::add_days
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "days", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "days", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_add_days" g_date_time_add_days :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Int32 ->                                -- days : TBasicType TInt32
+    IO (Ptr DateTime)
+
+
+dateTimeAddDays ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    Int32 ->                                -- days
+    m DateTime
+dateTimeAddDays _obj days = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_add_days _obj' days
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::add_full
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "years", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "months", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "days", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hours", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minutes", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "years", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "months", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "days", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hours", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minutes", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_add_full" g_date_time_add_full :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Int32 ->                                -- years : TBasicType TInt32
+    Int32 ->                                -- months : TBasicType TInt32
+    Int32 ->                                -- days : TBasicType TInt32
+    Int32 ->                                -- hours : TBasicType TInt32
+    Int32 ->                                -- minutes : TBasicType TInt32
+    CDouble ->                              -- seconds : TBasicType TDouble
+    IO (Ptr DateTime)
+
+
+dateTimeAddFull ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    Int32 ->                                -- years
+    Int32 ->                                -- months
+    Int32 ->                                -- days
+    Int32 ->                                -- hours
+    Int32 ->                                -- minutes
+    Double ->                               -- seconds
+    m DateTime
+dateTimeAddFull _obj years months days hours minutes seconds = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let seconds' = realToFrac seconds
+    result <- g_date_time_add_full _obj' years months days hours minutes seconds'
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::add_hours
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hours", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hours", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_add_hours" g_date_time_add_hours :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Int32 ->                                -- hours : TBasicType TInt32
+    IO (Ptr DateTime)
+
+
+dateTimeAddHours ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    Int32 ->                                -- hours
+    m DateTime
+dateTimeAddHours _obj hours = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_add_hours _obj' hours
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::add_minutes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minutes", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minutes", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_add_minutes" g_date_time_add_minutes :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Int32 ->                                -- minutes : TBasicType TInt32
+    IO (Ptr DateTime)
+
+
+dateTimeAddMinutes ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    Int32 ->                                -- minutes
+    m DateTime
+dateTimeAddMinutes _obj minutes = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_add_minutes _obj' minutes
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::add_months
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "months", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "months", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_add_months" g_date_time_add_months :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Int32 ->                                -- months : TBasicType TInt32
+    IO (Ptr DateTime)
+
+
+dateTimeAddMonths ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    Int32 ->                                -- months
+    m DateTime
+dateTimeAddMonths _obj months = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_add_months _obj' months
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::add_seconds
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_add_seconds" g_date_time_add_seconds :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    CDouble ->                              -- seconds : TBasicType TDouble
+    IO (Ptr DateTime)
+
+
+dateTimeAddSeconds ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    Double ->                               -- seconds
+    m DateTime
+dateTimeAddSeconds _obj seconds = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let seconds' = realToFrac seconds
+    result <- g_date_time_add_seconds _obj' seconds'
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::add_weeks
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "weeks", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "weeks", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_add_weeks" g_date_time_add_weeks :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Int32 ->                                -- weeks : TBasicType TInt32
+    IO (Ptr DateTime)
+
+
+dateTimeAddWeeks ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    Int32 ->                                -- weeks
+    m DateTime
+dateTimeAddWeeks _obj weeks = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_add_weeks _obj' weeks
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::add_years
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "years", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "years", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_add_years" g_date_time_add_years :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Int32 ->                                -- years : TBasicType TInt32
+    IO (Ptr DateTime)
+
+
+dateTimeAddYears ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    Int32 ->                                -- years
+    m DateTime
+dateTimeAddYears _obj years = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_add_years _obj' years
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::difference
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "begin", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "begin", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_difference" g_date_time_difference :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Ptr DateTime ->                         -- begin : TInterface "GLib" "DateTime"
+    IO Int64
+
+
+dateTimeDifference ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    DateTime ->                             -- begin
+    m Int64
+dateTimeDifference _obj begin = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let begin' = unsafeManagedPtrGetPtr begin
+    result <- g_date_time_difference _obj' begin'
+    touchManagedPtr _obj
+    touchManagedPtr begin
+    return result
+
+-- method DateTime::format
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_format" g_date_time_format :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    CString ->                              -- format : TBasicType TUTF8
+    IO CString
+
+
+dateTimeFormat ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    T.Text ->                               -- format
+    m T.Text
+dateTimeFormat _obj format = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    format' <- textToCString format
+    result <- g_date_time_format _obj' format'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    freeMem format'
+    return result'
+
+-- method DateTime::get_day_of_month
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_day_of_month" g_date_time_get_day_of_month :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetDayOfMonth ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetDayOfMonth _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_day_of_month _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_day_of_week
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_day_of_week" g_date_time_get_day_of_week :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetDayOfWeek ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetDayOfWeek _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_day_of_week _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_day_of_year
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_day_of_year" g_date_time_get_day_of_year :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetDayOfYear ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetDayOfYear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_day_of_year _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_hour
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_hour" g_date_time_get_hour :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetHour ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetHour _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_hour _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_microsecond
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_microsecond" g_date_time_get_microsecond :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetMicrosecond ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetMicrosecond _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_microsecond _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_minute
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_minute" g_date_time_get_minute :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetMinute ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetMinute _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_minute _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_month
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_month" g_date_time_get_month :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetMonth ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetMonth _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_month _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_second
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_second" g_date_time_get_second :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetSecond ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetSecond _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_second _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_seconds
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_seconds" g_date_time_get_seconds :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO CDouble
+
+
+dateTimeGetSeconds ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Double
+dateTimeGetSeconds _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_seconds _obj'
+    let result' = realToFrac result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::get_timezone_abbreviation
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_timezone_abbreviation" g_date_time_get_timezone_abbreviation :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO CString
+
+
+dateTimeGetTimezoneAbbreviation ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m T.Text
+dateTimeGetTimezoneAbbreviation _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_timezone_abbreviation _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::get_utc_offset
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_utc_offset" g_date_time_get_utc_offset :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int64
+
+
+dateTimeGetUtcOffset ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int64
+dateTimeGetUtcOffset _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_utc_offset _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_week_numbering_year
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_week_numbering_year" g_date_time_get_week_numbering_year :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetWeekNumberingYear ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetWeekNumberingYear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_week_numbering_year _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_week_of_year
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_week_of_year" g_date_time_get_week_of_year :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetWeekOfYear ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetWeekOfYear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_week_of_year _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_year
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_year" g_date_time_get_year :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int32
+
+
+dateTimeGetYear ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int32
+dateTimeGetYear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_get_year _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::get_ymd
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "month", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "day", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_get_ymd" g_date_time_get_ymd :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Ptr Int32 ->                            -- year : TBasicType TInt32
+    Ptr Int32 ->                            -- month : TBasicType TInt32
+    Ptr Int32 ->                            -- day : TBasicType TInt32
+    IO ()
+
+
+dateTimeGetYmd ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m (Int32,Int32,Int32)
+dateTimeGetYmd _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    year <- allocMem :: IO (Ptr Int32)
+    month <- allocMem :: IO (Ptr Int32)
+    day <- allocMem :: IO (Ptr Int32)
+    g_date_time_get_ymd _obj' year month day
+    year' <- peek year
+    month' <- peek month
+    day' <- peek day
+    touchManagedPtr _obj
+    freeMem year
+    freeMem month
+    freeMem day
+    return (year', month', day')
+
+-- method DateTime::is_daylight_savings
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_is_daylight_savings" g_date_time_is_daylight_savings :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO CInt
+
+
+dateTimeIsDaylightSavings ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Bool
+dateTimeIsDaylightSavings _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_is_daylight_savings _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_ref" g_date_time_ref :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO (Ptr DateTime)
+
+
+dateTimeRef ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m DateTime
+dateTimeRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_ref _obj'
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::to_local
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_to_local" g_date_time_to_local :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO (Ptr DateTime)
+
+
+dateTimeToLocal ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m DateTime
+dateTimeToLocal _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_to_local _obj'
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::to_timeval
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_to_timeval" g_date_time_to_timeval :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Ptr TimeVal ->                          -- tv : TInterface "GLib" "TimeVal"
+    IO CInt
+
+
+dateTimeToTimeval ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    TimeVal ->                              -- tv
+    m Bool
+dateTimeToTimeval _obj tv = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let tv' = unsafeManagedPtrGetPtr tv
+    result <- g_date_time_to_timeval _obj' tv'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr tv
+    return result'
+
+-- method DateTime::to_timezone
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_to_timezone" g_date_time_to_timezone :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    Ptr TimeZone ->                         -- tz : TInterface "GLib" "TimeZone"
+    IO (Ptr DateTime)
+
+
+dateTimeToTimezone ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    TimeZone ->                             -- tz
+    m DateTime
+dateTimeToTimezone _obj tz = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let tz' = unsafeManagedPtrGetPtr tz
+    result <- g_date_time_to_timezone _obj' tz'
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    touchManagedPtr tz
+    return result'
+
+-- method DateTime::to_unix
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_to_unix" g_date_time_to_unix :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO Int64
+
+
+dateTimeToUnix ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m Int64
+dateTimeToUnix _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_to_unix _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method DateTime::to_utc
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "DateTime"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_to_utc" g_date_time_to_utc :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO (Ptr DateTime)
+
+
+dateTimeToUtc ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m DateTime
+dateTimeToUtc _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_date_time_to_utc _obj'
+    result' <- (wrapBoxed DateTime) result
+    touchManagedPtr _obj
+    return result'
+
+-- method DateTime::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_unref" g_date_time_unref :: 
+    Ptr DateTime ->                         -- _obj : TInterface "GLib" "DateTime"
+    IO ()
+
+
+dateTimeUnref ::
+    (MonadIO m) =>
+    DateTime ->                             -- _obj
+    m ()
+dateTimeUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_date_time_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Enum DateWeekday
+
+data DateWeekday = 
+      DateWeekdayBadWeekday
+    | DateWeekdayMonday
+    | DateWeekdayTuesday
+    | DateWeekdayWednesday
+    | DateWeekdayThursday
+    | DateWeekdayFriday
+    | DateWeekdaySaturday
+    | DateWeekdaySunday
+    | AnotherDateWeekday Int
+    deriving (Show, Eq)
+
+instance Enum DateWeekday where
+    fromEnum DateWeekdayBadWeekday = 0
+    fromEnum DateWeekdayMonday = 1
+    fromEnum DateWeekdayTuesday = 2
+    fromEnum DateWeekdayWednesday = 3
+    fromEnum DateWeekdayThursday = 4
+    fromEnum DateWeekdayFriday = 5
+    fromEnum DateWeekdaySaturday = 6
+    fromEnum DateWeekdaySunday = 7
+    fromEnum (AnotherDateWeekday k) = k
+
+    toEnum 0 = DateWeekdayBadWeekday
+    toEnum 1 = DateWeekdayMonday
+    toEnum 2 = DateWeekdayTuesday
+    toEnum 3 = DateWeekdayWednesday
+    toEnum 4 = DateWeekdayThursday
+    toEnum 5 = DateWeekdayFriday
+    toEnum 6 = DateWeekdaySaturday
+    toEnum 7 = DateWeekdaySunday
+    toEnum k = AnotherDateWeekday k
+
+-- struct DebugKey
+newtype DebugKey = DebugKey (ForeignPtr DebugKey)
+noDebugKey :: Maybe DebugKey
+noDebugKey = Nothing
+
+debugKeyReadKey :: DebugKey -> IO T.Text
+debugKeyReadKey s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+debugKeyReadValue :: DebugKey -> IO Word32
+debugKeyReadValue s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Word32
+    return val
+
+-- callback DestroyNotify
+destroyNotifyClosure :: DestroyNotify -> IO Closure
+destroyNotifyClosure cb = newCClosure =<< mkDestroyNotify wrapped
+    where wrapped = destroyNotifyWrapper Nothing cb
+
+type DestroyNotifyC =
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkDestroyNotify :: DestroyNotifyC -> IO (FunPtr DestroyNotifyC)
+
+type DestroyNotify =
+    Ptr () ->
+    IO ()
+
+noDestroyNotify :: Maybe DestroyNotify
+noDestroyNotify = Nothing
+
+destroyNotifyWrapper ::
+    Maybe (Ptr (FunPtr (DestroyNotifyC))) ->
+    DestroyNotify ->
+    Ptr () ->
+    IO ()
+destroyNotifyWrapper funptrptr _cb data_ = do
+    _cb  data_
+    maybeReleaseFunPtr funptrptr
+
+-- struct Dir
+newtype Dir = Dir (ForeignPtr Dir)
+noDir :: Maybe Dir
+noDir = Nothing
+
+-- method Dir::close
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Dir", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Dir", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dir_close" g_dir_close :: 
+    Ptr Dir ->                              -- _obj : TInterface "GLib" "Dir"
+    IO ()
+
+
+dirClose ::
+    (MonadIO m) =>
+    Dir ->                                  -- _obj
+    m ()
+dirClose _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_dir_close _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Dir::read_name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Dir", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Dir", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dir_read_name" g_dir_read_name :: 
+    Ptr Dir ->                              -- _obj : TInterface "GLib" "Dir"
+    IO CString
+
+
+dirReadName ::
+    (MonadIO m) =>
+    Dir ->                                  -- _obj
+    m T.Text
+dirReadName _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_dir_read_name _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method Dir::rewind
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Dir", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Dir", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dir_rewind" g_dir_rewind :: 
+    Ptr Dir ->                              -- _obj : TInterface "GLib" "Dir"
+    IO ()
+
+
+dirRewind ::
+    (MonadIO m) =>
+    Dir ->                                  -- _obj
+    m ()
+dirRewind _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_dir_rewind _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- union DoubleIEEE754 
+newtype DoubleIEEE754 = DoubleIEEE754 (ForeignPtr DoubleIEEE754)
+noDoubleIEEE754 :: Maybe DoubleIEEE754
+noDoubleIEEE754 = Nothing
+
+doubleIEEE754ReadVDouble :: DoubleIEEE754 -> IO Double
+doubleIEEE754ReadVDouble s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+-- callback EqualFunc
+equalFuncClosure :: EqualFunc -> IO Closure
+equalFuncClosure cb = newCClosure =<< mkEqualFunc wrapped
+    where wrapped = equalFuncWrapper Nothing cb
+
+type EqualFuncC =
+    Ptr () ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkEqualFunc :: EqualFuncC -> IO (FunPtr EqualFuncC)
+
+type EqualFunc =
+    Ptr () ->
+    Ptr () ->
+    IO Bool
+
+noEqualFunc :: Maybe EqualFunc
+noEqualFunc = Nothing
+
+equalFuncWrapper ::
+    Maybe (Ptr (FunPtr (EqualFuncC))) ->
+    EqualFunc ->
+    Ptr () ->
+    Ptr () ->
+    IO CInt
+equalFuncWrapper funptrptr _cb a b = do
+    result <- _cb  a b
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- Enum ErrorType
+
+data ErrorType = 
+      ErrorTypeUnknown
+    | ErrorTypeUnexpEof
+    | ErrorTypeUnexpEofInString
+    | ErrorTypeUnexpEofInComment
+    | ErrorTypeNonDigitInConst
+    | ErrorTypeDigitRadix
+    | ErrorTypeFloatRadix
+    | ErrorTypeFloatMalformed
+    | AnotherErrorType Int
+    deriving (Show, Eq)
+
+instance Enum ErrorType where
+    fromEnum ErrorTypeUnknown = 0
+    fromEnum ErrorTypeUnexpEof = 1
+    fromEnum ErrorTypeUnexpEofInString = 2
+    fromEnum ErrorTypeUnexpEofInComment = 3
+    fromEnum ErrorTypeNonDigitInConst = 4
+    fromEnum ErrorTypeDigitRadix = 5
+    fromEnum ErrorTypeFloatRadix = 6
+    fromEnum ErrorTypeFloatMalformed = 7
+    fromEnum (AnotherErrorType k) = k
+
+    toEnum 0 = ErrorTypeUnknown
+    toEnum 1 = ErrorTypeUnexpEof
+    toEnum 2 = ErrorTypeUnexpEofInString
+    toEnum 3 = ErrorTypeUnexpEofInComment
+    toEnum 4 = ErrorTypeNonDigitInConst
+    toEnum 5 = ErrorTypeDigitRadix
+    toEnum 6 = ErrorTypeFloatRadix
+    toEnum 7 = ErrorTypeFloatMalformed
+    toEnum k = AnotherErrorType k
+
+-- Enum FileError
+
+data FileError = 
+      FileErrorExist
+    | FileErrorIsdir
+    | FileErrorAcces
+    | FileErrorNametoolong
+    | FileErrorNoent
+    | FileErrorNotdir
+    | FileErrorNxio
+    | FileErrorNodev
+    | FileErrorRofs
+    | FileErrorTxtbsy
+    | FileErrorFault
+    | FileErrorLoop
+    | FileErrorNospc
+    | FileErrorNomem
+    | FileErrorMfile
+    | FileErrorNfile
+    | FileErrorBadf
+    | FileErrorInval
+    | FileErrorPipe
+    | FileErrorAgain
+    | FileErrorIntr
+    | FileErrorIo
+    | FileErrorPerm
+    | FileErrorNosys
+    | FileErrorFailed
+    | AnotherFileError Int
+    deriving (Show, Eq)
+
+instance Enum FileError where
+    fromEnum FileErrorExist = 0
+    fromEnum FileErrorIsdir = 1
+    fromEnum FileErrorAcces = 2
+    fromEnum FileErrorNametoolong = 3
+    fromEnum FileErrorNoent = 4
+    fromEnum FileErrorNotdir = 5
+    fromEnum FileErrorNxio = 6
+    fromEnum FileErrorNodev = 7
+    fromEnum FileErrorRofs = 8
+    fromEnum FileErrorTxtbsy = 9
+    fromEnum FileErrorFault = 10
+    fromEnum FileErrorLoop = 11
+    fromEnum FileErrorNospc = 12
+    fromEnum FileErrorNomem = 13
+    fromEnum FileErrorMfile = 14
+    fromEnum FileErrorNfile = 15
+    fromEnum FileErrorBadf = 16
+    fromEnum FileErrorInval = 17
+    fromEnum FileErrorPipe = 18
+    fromEnum FileErrorAgain = 19
+    fromEnum FileErrorIntr = 20
+    fromEnum FileErrorIo = 21
+    fromEnum FileErrorPerm = 22
+    fromEnum FileErrorNosys = 23
+    fromEnum FileErrorFailed = 24
+    fromEnum (AnotherFileError k) = k
+
+    toEnum 0 = FileErrorExist
+    toEnum 1 = FileErrorIsdir
+    toEnum 2 = FileErrorAcces
+    toEnum 3 = FileErrorNametoolong
+    toEnum 4 = FileErrorNoent
+    toEnum 5 = FileErrorNotdir
+    toEnum 6 = FileErrorNxio
+    toEnum 7 = FileErrorNodev
+    toEnum 8 = FileErrorRofs
+    toEnum 9 = FileErrorTxtbsy
+    toEnum 10 = FileErrorFault
+    toEnum 11 = FileErrorLoop
+    toEnum 12 = FileErrorNospc
+    toEnum 13 = FileErrorNomem
+    toEnum 14 = FileErrorMfile
+    toEnum 15 = FileErrorNfile
+    toEnum 16 = FileErrorBadf
+    toEnum 17 = FileErrorInval
+    toEnum 18 = FileErrorPipe
+    toEnum 19 = FileErrorAgain
+    toEnum 20 = FileErrorIntr
+    toEnum 21 = FileErrorIo
+    toEnum 22 = FileErrorPerm
+    toEnum 23 = FileErrorNosys
+    toEnum 24 = FileErrorFailed
+    toEnum k = AnotherFileError k
+
+instance GErrorClass FileError where
+    gerrorClassDomain _ = "g-file-error-quark"
+
+catchFileError ::
+    IO a ->
+    (FileError -> GErrorMessage -> IO a) ->
+    IO a
+catchFileError = catchGErrorJustDomain
+
+handleFileError ::
+    (FileError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleFileError = handleGErrorJustDomain
+
+-- Flags FileTest
+
+data FileTest = 
+      FileTestIsRegular
+    | FileTestIsSymlink
+    | FileTestIsDir
+    | FileTestIsExecutable
+    | FileTestExists
+    | AnotherFileTest Int
+    deriving (Show, Eq)
+
+instance Enum FileTest where
+    fromEnum FileTestIsRegular = 1
+    fromEnum FileTestIsSymlink = 2
+    fromEnum FileTestIsDir = 4
+    fromEnum FileTestIsExecutable = 8
+    fromEnum FileTestExists = 16
+    fromEnum (AnotherFileTest k) = k
+
+    toEnum 1 = FileTestIsRegular
+    toEnum 2 = FileTestIsSymlink
+    toEnum 4 = FileTestIsDir
+    toEnum 8 = FileTestIsExecutable
+    toEnum 16 = FileTestExists
+    toEnum k = AnotherFileTest k
+
+instance IsGFlag FileTest
+
+-- union FloatIEEE754 
+newtype FloatIEEE754 = FloatIEEE754 (ForeignPtr FloatIEEE754)
+noFloatIEEE754 :: Maybe FloatIEEE754
+noFloatIEEE754 = Nothing
+
+floatIEEE754ReadVFloat :: FloatIEEE754 -> IO Float
+floatIEEE754ReadVFloat s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CFloat
+    let val' = realToFrac val
+    return val'
+
+-- Flags FormatSizeFlags
+
+data FormatSizeFlags = 
+      FormatSizeFlagsDefault
+    | FormatSizeFlagsLongFormat
+    | FormatSizeFlagsIecUnits
+    | AnotherFormatSizeFlags Int
+    deriving (Show, Eq)
+
+instance Enum FormatSizeFlags where
+    fromEnum FormatSizeFlagsDefault = 0
+    fromEnum FormatSizeFlagsLongFormat = 1
+    fromEnum FormatSizeFlagsIecUnits = 2
+    fromEnum (AnotherFormatSizeFlags k) = k
+
+    toEnum 0 = FormatSizeFlagsDefault
+    toEnum 1 = FormatSizeFlagsLongFormat
+    toEnum 2 = FormatSizeFlagsIecUnits
+    toEnum k = AnotherFormatSizeFlags k
+
+instance IsGFlag FormatSizeFlags
+
+-- callback FreeFunc
+freeFuncClosure :: FreeFunc -> IO Closure
+freeFuncClosure cb = newCClosure =<< mkFreeFunc wrapped
+    where wrapped = freeFuncWrapper Nothing cb
+
+type FreeFuncC =
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkFreeFunc :: FreeFuncC -> IO (FunPtr FreeFuncC)
+
+type FreeFunc =
+    Ptr () ->
+    IO ()
+
+noFreeFunc :: Maybe FreeFunc
+noFreeFunc = Nothing
+
+freeFuncWrapper ::
+    Maybe (Ptr (FunPtr (FreeFuncC))) ->
+    FreeFunc ->
+    Ptr () ->
+    IO ()
+freeFuncWrapper funptrptr _cb data_ = do
+    _cb  data_
+    maybeReleaseFunPtr funptrptr
+
+-- callback Func
+funcClosure :: Func -> IO Closure
+funcClosure cb = newCClosure =<< mkFunc wrapped
+    where wrapped = funcWrapper Nothing cb
+
+type FuncC =
+    Ptr () ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkFunc :: FuncC -> IO (FunPtr FuncC)
+
+type Func =
+    Ptr () ->
+    IO ()
+
+noFunc :: Maybe Func
+noFunc = Nothing
+
+funcWrapper ::
+    Maybe (Ptr (FunPtr (FuncC))) ->
+    Func ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+funcWrapper funptrptr _cb data_ _ = do
+    _cb  data_
+    maybeReleaseFunPtr funptrptr
+
+-- callback HFunc
+hFuncClosure :: HFunc -> IO Closure
+hFuncClosure cb = newCClosure =<< mkHFunc wrapped
+    where wrapped = hFuncWrapper Nothing cb
+
+type HFuncC =
+    Ptr () ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkHFunc :: HFuncC -> IO (FunPtr HFuncC)
+
+type HFunc =
+    Ptr () ->
+    Ptr () ->
+    IO ()
+
+noHFunc :: Maybe HFunc
+noHFunc = Nothing
+
+hFuncWrapper ::
+    Maybe (Ptr (FunPtr (HFuncC))) ->
+    HFunc ->
+    Ptr () ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+hFuncWrapper funptrptr _cb key value _ = do
+    _cb  key value
+    maybeReleaseFunPtr funptrptr
+
+-- callback HRFunc
+hRFuncClosure :: HRFunc -> IO Closure
+hRFuncClosure cb = newCClosure =<< mkHRFunc wrapped
+    where wrapped = hRFuncWrapper Nothing cb
+
+type HRFuncC =
+    Ptr () ->
+    Ptr () ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkHRFunc :: HRFuncC -> IO (FunPtr HRFuncC)
+
+type HRFunc =
+    Ptr () ->
+    Ptr () ->
+    IO Bool
+
+noHRFunc :: Maybe HRFunc
+noHRFunc = Nothing
+
+hRFuncWrapper ::
+    Maybe (Ptr (FunPtr (HRFuncC))) ->
+    HRFunc ->
+    Ptr () ->
+    Ptr () ->
+    Ptr () ->
+    IO CInt
+hRFuncWrapper funptrptr _cb key value _ = do
+    result <- _cb  key value
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback HashFunc
+hashFuncClosure :: HashFunc -> IO Closure
+hashFuncClosure cb = newCClosure =<< mkHashFunc wrapped
+    where wrapped = hashFuncWrapper Nothing cb
+
+type HashFuncC =
+    Ptr () ->
+    IO Word32
+
+foreign import ccall "wrapper"
+    mkHashFunc :: HashFuncC -> IO (FunPtr HashFuncC)
+
+type HashFunc =
+    Ptr () ->
+    IO Word32
+
+noHashFunc :: Maybe HashFunc
+noHashFunc = Nothing
+
+hashFuncWrapper ::
+    Maybe (Ptr (FunPtr (HashFuncC))) ->
+    HashFunc ->
+    Ptr () ->
+    IO Word32
+hashFuncWrapper funptrptr _cb key = do
+    result <- _cb  key
+    maybeReleaseFunPtr funptrptr
+    return result
+
+-- struct HashTableIter
+newtype HashTableIter = HashTableIter (ForeignPtr HashTableIter)
+noHashTableIter :: Maybe HashTableIter
+noHashTableIter = Nothing
+
+-- method HashTableIter::init
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_iter_init" g_hash_table_iter_init :: 
+    Ptr HashTableIter ->                    -- _obj : TInterface "GLib" "HashTableIter"
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    IO ()
+
+
+hashTableIterInit ::
+    (MonadIO m) =>
+    HashTableIter ->                        -- _obj
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    m ()
+hashTableIterInit _obj hash_table = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    g_hash_table_iter_init _obj' hash_table''''
+    touchManagedPtr _obj
+    unrefGHashTable hash_table''''
+    return ()
+
+-- method HashTableIter::next
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_iter_next" g_hash_table_iter_next :: 
+    Ptr HashTableIter ->                    -- _obj : TInterface "GLib" "HashTableIter"
+    Ptr () ->                               -- key : TBasicType TVoid
+    Ptr () ->                               -- value : TBasicType TVoid
+    IO CInt
+
+
+hashTableIterNext ::
+    (MonadIO m) =>
+    HashTableIter ->                        -- _obj
+    Maybe (Ptr ()) ->                       -- key
+    Maybe (Ptr ()) ->                       -- value
+    m Bool
+hashTableIterNext _obj key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeKey <- case key of
+        Nothing -> return nullPtr
+        Just jKey -> do
+            return jKey
+    maybeValue <- case value of
+        Nothing -> return nullPtr
+        Just jValue -> do
+            return jValue
+    result <- g_hash_table_iter_next _obj' maybeKey maybeValue
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method HashTableIter::remove
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_iter_remove" g_hash_table_iter_remove :: 
+    Ptr HashTableIter ->                    -- _obj : TInterface "GLib" "HashTableIter"
+    IO ()
+
+
+hashTableIterRemove ::
+    (MonadIO m) =>
+    HashTableIter ->                        -- _obj
+    m ()
+hashTableIterRemove _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_hash_table_iter_remove _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method HashTableIter::replace
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_iter_replace" g_hash_table_iter_replace :: 
+    Ptr HashTableIter ->                    -- _obj : TInterface "GLib" "HashTableIter"
+    Ptr () ->                               -- value : TBasicType TVoid
+    IO ()
+
+
+hashTableIterReplace ::
+    (MonadIO m) =>
+    HashTableIter ->                        -- _obj
+    Ptr () ->                               -- value
+    m ()
+hashTableIterReplace _obj value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_hash_table_iter_replace _obj' value
+    touchManagedPtr _obj
+    return ()
+
+-- method HashTableIter::steal
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_iter_steal" g_hash_table_iter_steal :: 
+    Ptr HashTableIter ->                    -- _obj : TInterface "GLib" "HashTableIter"
+    IO ()
+
+
+hashTableIterSteal ::
+    (MonadIO m) =>
+    HashTableIter ->                        -- _obj
+    m ()
+hashTableIterSteal _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_hash_table_iter_steal _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct Hmac
+newtype Hmac = Hmac (ForeignPtr Hmac)
+noHmac :: Maybe Hmac
+noHmac = Nothing
+
+-- method Hmac::get_digest
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "digest_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "digest_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hmac_get_digest" g_hmac_get_digest :: 
+    Ptr Hmac ->                             -- _obj : TInterface "GLib" "Hmac"
+    Word8 ->                                -- buffer : TBasicType TUInt8
+    Word64 ->                               -- digest_len : TBasicType TUInt64
+    IO ()
+
+
+hmacGetDigest ::
+    (MonadIO m) =>
+    Hmac ->                                 -- _obj
+    Word8 ->                                -- buffer
+    Word64 ->                               -- digest_len
+    m ()
+hmacGetDigest _obj buffer digest_len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_hmac_get_digest _obj' buffer digest_len
+    touchManagedPtr _obj
+    return ()
+
+-- method Hmac::get_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hmac_get_string" g_hmac_get_string :: 
+    Ptr Hmac ->                             -- _obj : TInterface "GLib" "Hmac"
+    IO CString
+
+
+hmacGetString ::
+    (MonadIO m) =>
+    Hmac ->                                 -- _obj
+    m T.Text
+hmacGetString _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_hmac_get_string _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method Hmac::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hmac_unref" g_hmac_unref :: 
+    Ptr Hmac ->                             -- _obj : TInterface "GLib" "Hmac"
+    IO ()
+
+
+hmacUnref ::
+    (MonadIO m) =>
+    Hmac ->                                 -- _obj
+    m ()
+hmacUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_hmac_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Hmac::update
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hmac_update" g_hmac_update :: 
+    Ptr Hmac ->                             -- _obj : TInterface "GLib" "Hmac"
+    Ptr Word8 ->                            -- data : TCArray False (-1) 2 (TBasicType TUInt8)
+    Int64 ->                                -- length : TBasicType TInt64
+    IO ()
+
+
+hmacUpdate ::
+    (MonadIO m) =>
+    Hmac ->                                 -- _obj
+    ByteString ->                           -- data
+    m ()
+hmacUpdate _obj data_ = liftIO $ do
+    let length_ = fromIntegral $ B.length data_
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    data_' <- packByteString data_
+    g_hmac_update _obj' data_' length_
+    touchManagedPtr _obj
+    freeMem data_'
+    return ()
+
+-- struct Hook
+newtype Hook = Hook (ForeignPtr Hook)
+noHook :: Maybe Hook
+noHook = Nothing
+
+hookReadData :: Hook -> IO (Ptr ())
+hookReadData s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
+    return val
+
+hookReadNext :: Hook -> IO Hook
+hookReadNext s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Hook)
+    val' <- (newPtr 64 Hook) val
+    return val'
+
+hookReadPrev :: Hook -> IO Hook
+hookReadPrev s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr Hook)
+    val' <- (newPtr 64 Hook) val
+    return val'
+
+hookReadRefCount :: Hook -> IO Word32
+hookReadRefCount s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO Word32
+    return val
+
+hookReadHookId :: Hook -> IO Word64
+hookReadHookId s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO Word64
+    return val
+
+hookReadFlags :: Hook -> IO Word32
+hookReadFlags s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO Word32
+    return val
+
+hookReadFunc :: Hook -> IO (Ptr ())
+hookReadFunc s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO (Ptr ())
+    return val
+
+-- XXX Skipped getter for "Hook:destroy" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- method Hook::compare_ids
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_compare_ids" g_hook_compare_ids :: 
+    Ptr Hook ->                             -- _obj : TInterface "GLib" "Hook"
+    Ptr Hook ->                             -- sibling : TInterface "GLib" "Hook"
+    IO Int32
+
+
+hookCompareIds ::
+    (MonadIO m) =>
+    Hook ->                                 -- _obj
+    Hook ->                                 -- sibling
+    m Int32
+hookCompareIds _obj sibling = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let sibling' = unsafeManagedPtrGetPtr sibling
+    result <- g_hook_compare_ids _obj' sibling'
+    touchManagedPtr _obj
+    touchManagedPtr sibling
+    return result
+
+-- callback HookCheckFunc
+hookCheckFuncClosure :: HookCheckFunc -> IO Closure
+hookCheckFuncClosure cb = newCClosure =<< mkHookCheckFunc wrapped
+    where wrapped = hookCheckFuncWrapper Nothing cb
+
+type HookCheckFuncC =
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkHookCheckFunc :: HookCheckFuncC -> IO (FunPtr HookCheckFuncC)
+
+type HookCheckFunc =
+    Ptr () ->
+    IO Bool
+
+noHookCheckFunc :: Maybe HookCheckFunc
+noHookCheckFunc = Nothing
+
+hookCheckFuncWrapper ::
+    Maybe (Ptr (FunPtr (HookCheckFuncC))) ->
+    HookCheckFunc ->
+    Ptr () ->
+    IO CInt
+hookCheckFuncWrapper funptrptr _cb data_ = do
+    result <- _cb  data_
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback HookCheckMarshaller
+hookCheckMarshallerClosure :: HookCheckMarshaller -> IO Closure
+hookCheckMarshallerClosure cb = newCClosure =<< mkHookCheckMarshaller wrapped
+    where wrapped = hookCheckMarshallerWrapper Nothing cb
+
+type HookCheckMarshallerC =
+    Ptr Hook ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkHookCheckMarshaller :: HookCheckMarshallerC -> IO (FunPtr HookCheckMarshallerC)
+
+type HookCheckMarshaller =
+    Hook ->
+    Ptr () ->
+    IO Bool
+
+noHookCheckMarshaller :: Maybe HookCheckMarshaller
+noHookCheckMarshaller = Nothing
+
+hookCheckMarshallerWrapper ::
+    Maybe (Ptr (FunPtr (HookCheckMarshallerC))) ->
+    HookCheckMarshaller ->
+    Ptr Hook ->
+    Ptr () ->
+    IO CInt
+hookCheckMarshallerWrapper funptrptr _cb hook marshal_data = do
+    hook' <- (newPtr 64 Hook) hook
+    result <- _cb  hook' marshal_data
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback HookCompareFunc
+hookCompareFuncClosure :: HookCompareFunc -> IO Closure
+hookCompareFuncClosure cb = newCClosure =<< mkHookCompareFunc wrapped
+    where wrapped = hookCompareFuncWrapper Nothing cb
+
+type HookCompareFuncC =
+    Ptr Hook ->
+    Ptr Hook ->
+    IO Int32
+
+foreign import ccall "wrapper"
+    mkHookCompareFunc :: HookCompareFuncC -> IO (FunPtr HookCompareFuncC)
+
+type HookCompareFunc =
+    Hook ->
+    Hook ->
+    IO Int32
+
+noHookCompareFunc :: Maybe HookCompareFunc
+noHookCompareFunc = Nothing
+
+hookCompareFuncWrapper ::
+    Maybe (Ptr (FunPtr (HookCompareFuncC))) ->
+    HookCompareFunc ->
+    Ptr Hook ->
+    Ptr Hook ->
+    IO Int32
+hookCompareFuncWrapper funptrptr _cb new_hook sibling = do
+    new_hook' <- (newPtr 64 Hook) new_hook
+    sibling' <- (newPtr 64 Hook) sibling
+    result <- _cb  new_hook' sibling'
+    maybeReleaseFunPtr funptrptr
+    return result
+
+-- callback HookFinalizeFunc
+hookFinalizeFuncClosure :: HookFinalizeFunc -> IO Closure
+hookFinalizeFuncClosure cb = newCClosure =<< mkHookFinalizeFunc wrapped
+    where wrapped = hookFinalizeFuncWrapper Nothing cb
+
+type HookFinalizeFuncC =
+    Ptr HookList ->
+    Ptr Hook ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkHookFinalizeFunc :: HookFinalizeFuncC -> IO (FunPtr HookFinalizeFuncC)
+
+type HookFinalizeFunc =
+    HookList ->
+    Hook ->
+    IO ()
+
+noHookFinalizeFunc :: Maybe HookFinalizeFunc
+noHookFinalizeFunc = Nothing
+
+hookFinalizeFuncWrapper ::
+    Maybe (Ptr (FunPtr (HookFinalizeFuncC))) ->
+    HookFinalizeFunc ->
+    Ptr HookList ->
+    Ptr Hook ->
+    IO ()
+hookFinalizeFuncWrapper funptrptr _cb hook_list hook = do
+    hook_list' <- (newPtr 56 HookList) hook_list
+    hook' <- (newPtr 64 Hook) hook
+    _cb  hook_list' hook'
+    maybeReleaseFunPtr funptrptr
+
+-- callback HookFindFunc
+hookFindFuncClosure :: HookFindFunc -> IO Closure
+hookFindFuncClosure cb = newCClosure =<< mkHookFindFunc wrapped
+    where wrapped = hookFindFuncWrapper Nothing cb
+
+type HookFindFuncC =
+    Ptr Hook ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkHookFindFunc :: HookFindFuncC -> IO (FunPtr HookFindFuncC)
+
+type HookFindFunc =
+    Hook ->
+    Ptr () ->
+    IO Bool
+
+noHookFindFunc :: Maybe HookFindFunc
+noHookFindFunc = Nothing
+
+hookFindFuncWrapper ::
+    Maybe (Ptr (FunPtr (HookFindFuncC))) ->
+    HookFindFunc ->
+    Ptr Hook ->
+    Ptr () ->
+    IO CInt
+hookFindFuncWrapper funptrptr _cb hook data_ = do
+    hook' <- (newPtr 64 Hook) hook
+    result <- _cb  hook' data_
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- Flags HookFlagMask
+
+data HookFlagMask = 
+      HookFlagMaskActive
+    | HookFlagMaskInCall
+    | HookFlagMaskMask
+    | AnotherHookFlagMask Int
+    deriving (Show, Eq)
+
+instance Enum HookFlagMask where
+    fromEnum HookFlagMaskActive = 1
+    fromEnum HookFlagMaskInCall = 2
+    fromEnum HookFlagMaskMask = 15
+    fromEnum (AnotherHookFlagMask k) = k
+
+    toEnum 1 = HookFlagMaskActive
+    toEnum 2 = HookFlagMaskInCall
+    toEnum 15 = HookFlagMaskMask
+    toEnum k = AnotherHookFlagMask k
+
+instance IsGFlag HookFlagMask
+
+-- callback HookFunc
+hookFuncClosure :: HookFunc -> IO Closure
+hookFuncClosure cb = newCClosure =<< mkHookFunc wrapped
+    where wrapped = hookFuncWrapper Nothing cb
+
+type HookFuncC =
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkHookFunc :: HookFuncC -> IO (FunPtr HookFuncC)
+
+type HookFunc =
+    Ptr () ->
+    IO ()
+
+noHookFunc :: Maybe HookFunc
+noHookFunc = Nothing
+
+hookFuncWrapper ::
+    Maybe (Ptr (FunPtr (HookFuncC))) ->
+    HookFunc ->
+    Ptr () ->
+    IO ()
+hookFuncWrapper funptrptr _cb data_ = do
+    _cb  data_
+    maybeReleaseFunPtr funptrptr
+
+-- struct HookList
+newtype HookList = HookList (ForeignPtr HookList)
+noHookList :: Maybe HookList
+noHookList = Nothing
+
+hookListReadSeqId :: HookList -> IO Word64
+hookListReadSeqId s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word64
+    return val
+
+hookListReadHookSize :: HookList -> IO Word32
+hookListReadHookSize s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Word32
+    return val
+
+hookListReadIsSetup :: HookList -> IO Word32
+hookListReadIsSetup s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 12) :: IO Word32
+    return val
+
+hookListReadHooks :: HookList -> IO Hook
+hookListReadHooks s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr Hook)
+    val' <- (newPtr 64 Hook) val
+    return val'
+
+hookListReadDummy3 :: HookList -> IO (Ptr ())
+hookListReadDummy3 s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr ())
+    return val
+
+-- XXX Skipped getter for "HookList:finalize_hook" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "HookList:dummy" :: Not implemented: "Don't know how to unpack C array of type TCArray False 2 (-1) (TBasicType TVoid)"
+
+-- method HookList::clear
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_list_clear" g_hook_list_clear :: 
+    Ptr HookList ->                         -- _obj : TInterface "GLib" "HookList"
+    IO ()
+
+
+hookListClear ::
+    (MonadIO m) =>
+    HookList ->                             -- _obj
+    m ()
+hookListClear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_hook_list_clear _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method HookList::init
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_list_init" g_hook_list_init :: 
+    Ptr HookList ->                         -- _obj : TInterface "GLib" "HookList"
+    Word32 ->                               -- hook_size : TBasicType TUInt32
+    IO ()
+
+
+hookListInit ::
+    (MonadIO m) =>
+    HookList ->                             -- _obj
+    Word32 ->                               -- hook_size
+    m ()
+hookListInit _obj hook_size = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_hook_list_init _obj' hook_size
+    touchManagedPtr _obj
+    return ()
+
+-- method HookList::invoke
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "may_recurse", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "may_recurse", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_list_invoke" g_hook_list_invoke :: 
+    Ptr HookList ->                         -- _obj : TInterface "GLib" "HookList"
+    CInt ->                                 -- may_recurse : TBasicType TBoolean
+    IO ()
+
+
+hookListInvoke ::
+    (MonadIO m) =>
+    HookList ->                             -- _obj
+    Bool ->                                 -- may_recurse
+    m ()
+hookListInvoke _obj may_recurse = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let may_recurse' = (fromIntegral . fromEnum) may_recurse
+    g_hook_list_invoke _obj' may_recurse'
+    touchManagedPtr _obj
+    return ()
+
+-- method HookList::invoke_check
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "may_recurse", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "may_recurse", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_list_invoke_check" g_hook_list_invoke_check :: 
+    Ptr HookList ->                         -- _obj : TInterface "GLib" "HookList"
+    CInt ->                                 -- may_recurse : TBasicType TBoolean
+    IO ()
+
+
+hookListInvokeCheck ::
+    (MonadIO m) =>
+    HookList ->                             -- _obj
+    Bool ->                                 -- may_recurse
+    m ()
+hookListInvokeCheck _obj may_recurse = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let may_recurse' = (fromIntegral . fromEnum) may_recurse
+    g_hook_list_invoke_check _obj' may_recurse'
+    touchManagedPtr _obj
+    return ()
+
+-- callback HookMarshaller
+hookMarshallerClosure :: HookMarshaller -> IO Closure
+hookMarshallerClosure cb = newCClosure =<< mkHookMarshaller wrapped
+    where wrapped = hookMarshallerWrapper Nothing cb
+
+type HookMarshallerC =
+    Ptr Hook ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkHookMarshaller :: HookMarshallerC -> IO (FunPtr HookMarshallerC)
+
+type HookMarshaller =
+    Hook ->
+    Ptr () ->
+    IO ()
+
+noHookMarshaller :: Maybe HookMarshaller
+noHookMarshaller = Nothing
+
+hookMarshallerWrapper ::
+    Maybe (Ptr (FunPtr (HookMarshallerC))) ->
+    HookMarshaller ->
+    Ptr Hook ->
+    Ptr () ->
+    IO ()
+hookMarshallerWrapper funptrptr _cb hook marshal_data = do
+    hook' <- (newPtr 64 Hook) hook
+    _cb  hook' marshal_data
+    maybeReleaseFunPtr funptrptr
+
+-- struct IConv
+newtype IConv = IConv (ForeignPtr IConv)
+noIConv :: Maybe IConv
+noIConv = Nothing
+
+-- method IConv::close
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_iconv_close" g_iconv_close :: 
+    Ptr IConv ->                            -- _obj : TInterface "GLib" "IConv"
+    IO Int32
+
+
+iConvClose ::
+    (MonadIO m) =>
+    IConv ->                                -- _obj
+    m Int32
+iConvClose _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_iconv_close _obj'
+    touchManagedPtr _obj
+    return result
+
+-- struct IOChannel
+newtype IOChannel = IOChannel (ForeignPtr IOChannel)
+noIOChannel :: Maybe IOChannel
+noIOChannel = Nothing
+
+foreign import ccall "g_io_channel_get_type" c_g_io_channel_get_type :: 
+    IO GType
+
+instance BoxedObject IOChannel where
+    boxedType _ = c_g_io_channel_get_type
+
+-- method IOChannel::new_file
+-- method type : Constructor
+-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOChannel"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_new_file" g_io_channel_new_file :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    CString ->                              -- mode : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr IOChannel)
+
+
+iOChannelNewFile ::
+    (MonadIO m) =>
+    T.Text ->                               -- filename
+    T.Text ->                               -- mode
+    m IOChannel
+iOChannelNewFile filename mode = liftIO $ do
+    filename' <- textToCString filename
+    mode' <- textToCString mode
+    onException (do
+        result <- propagateGError $ g_io_channel_new_file filename' mode'
+        result' <- (wrapBoxed IOChannel) result
+        freeMem filename'
+        freeMem mode'
+        return result'
+     ) (do
+        freeMem filename'
+        freeMem mode'
+     )
+
+-- method IOChannel::unix_new
+-- method type : Constructor
+-- Args : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOChannel"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_unix_new" g_io_channel_unix_new :: 
+    Int32 ->                                -- fd : TBasicType TInt32
+    IO (Ptr IOChannel)
+
+
+iOChannelUnixNew ::
+    (MonadIO m) =>
+    Int32 ->                                -- fd
+    m IOChannel
+iOChannelUnixNew fd = liftIO $ do
+    result <- g_io_channel_unix_new fd
+    result' <- (wrapBoxed IOChannel) result
+    return result'
+
+-- method IOChannel::close
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_close" g_io_channel_close :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO ()
+
+{-# DEPRECATED iOChannelClose ["(Since version 2.2)","Use g_io_channel_shutdown() instead."]#-}
+iOChannelClose ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m ()
+iOChannelClose _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_io_channel_close _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method IOChannel::flush
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_flush" g_io_channel_flush :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelFlush ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m IOStatus
+iOChannelFlush _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    onException (do
+        result <- propagateGError $ g_io_channel_flush _obj'
+        let result' = (toEnum . fromIntegral) result
+        touchManagedPtr _obj
+        return result'
+     ) (do
+        return ()
+     )
+
+-- method IOChannel::get_buffer_condition
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOCondition"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_get_buffer_condition" g_io_channel_get_buffer_condition :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO CUInt
+
+
+iOChannelGetBufferCondition ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m [IOCondition]
+iOChannelGetBufferCondition _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_io_channel_get_buffer_condition _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method IOChannel::get_buffer_size
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_get_buffer_size" g_io_channel_get_buffer_size :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO Word64
+
+
+iOChannelGetBufferSize ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m Word64
+iOChannelGetBufferSize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_io_channel_get_buffer_size _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method IOChannel::get_buffered
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_get_buffered" g_io_channel_get_buffered :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO CInt
+
+
+iOChannelGetBuffered ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m Bool
+iOChannelGetBuffered _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_io_channel_get_buffered _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method IOChannel::get_close_on_unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_get_close_on_unref" g_io_channel_get_close_on_unref :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO CInt
+
+
+iOChannelGetCloseOnUnref ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m Bool
+iOChannelGetCloseOnUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_io_channel_get_close_on_unref _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method IOChannel::get_encoding
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_get_encoding" g_io_channel_get_encoding :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO CString
+
+
+iOChannelGetEncoding ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m T.Text
+iOChannelGetEncoding _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_io_channel_get_encoding _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method IOChannel::get_flags
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOFlags"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_get_flags" g_io_channel_get_flags :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO CUInt
+
+
+iOChannelGetFlags ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m [IOFlags]
+iOChannelGetFlags _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_io_channel_get_flags _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method IOChannel::get_line_term
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_get_line_term" g_io_channel_get_line_term :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    Int32 ->                                -- length : TBasicType TInt32
+    IO CString
+
+
+iOChannelGetLineTerm ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Int32 ->                                -- length
+    m T.Text
+iOChannelGetLineTerm _obj length_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_io_channel_get_line_term _obj' length_
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method IOChannel::init
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_init" g_io_channel_init :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO ()
+
+
+iOChannelInit ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m ()
+iOChannelInit _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_io_channel_init _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method IOChannel::read
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOError"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_read" g_io_channel_read :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    CString ->                              -- buf : TBasicType TUTF8
+    Word64 ->                               -- count : TBasicType TUInt64
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    IO CUInt
+
+{-# DEPRECATED iOChannelRead ["(Since version 2.2)","Use g_io_channel_read_chars() instead."]#-}
+iOChannelRead ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    T.Text ->                               -- buf
+    Word64 ->                               -- count
+    Word64 ->                               -- bytes_read
+    m IOError
+iOChannelRead _obj buf count bytes_read = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    buf' <- textToCString buf
+    result <- g_io_channel_read _obj' buf' count bytes_read
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    freeMem buf'
+    return result'
+
+-- method IOChannel::read_line
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str_return", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "terminator_pos", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_read_line" g_io_channel_read_line :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    Ptr CString ->                          -- str_return : TBasicType TUTF8
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr Word64 ->                           -- terminator_pos : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelReadLine ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m (IOStatus,T.Text,Word64,Word64)
+iOChannelReadLine _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    str_return <- allocMem :: IO (Ptr CString)
+    length_ <- allocMem :: IO (Ptr Word64)
+    terminator_pos <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_io_channel_read_line _obj' str_return length_ terminator_pos
+        let result' = (toEnum . fromIntegral) result
+        str_return' <- peek str_return
+        str_return'' <- cstringToText str_return'
+        freeMem str_return'
+        length_' <- peek length_
+        terminator_pos' <- peek terminator_pos
+        touchManagedPtr _obj
+        freeMem str_return
+        freeMem length_
+        freeMem terminator_pos
+        return (result', str_return'', length_', terminator_pos')
+     ) (do
+        freeMem str_return
+        freeMem length_
+        freeMem terminator_pos
+     )
+
+-- method IOChannel::read_to_end
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str_return", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_read_to_end" g_io_channel_read_to_end :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    Ptr (Ptr Word8) ->                      -- str_return : TCArray False (-1) 2 (TBasicType TUInt8)
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelReadToEnd ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m (IOStatus,ByteString)
+iOChannelReadToEnd _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    str_return <- allocMem :: IO (Ptr (Ptr Word8))
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_io_channel_read_to_end _obj' str_return length_
+        length_' <- peek length_
+        let result' = (toEnum . fromIntegral) result
+        str_return' <- peek str_return
+        str_return'' <- (unpackByteStringWithLength length_') str_return'
+        freeMem str_return'
+        touchManagedPtr _obj
+        freeMem str_return
+        freeMem length_
+        return (result', str_return'')
+     ) (do
+        freeMem str_return
+        freeMem length_
+     )
+
+-- method IOChannel::read_unichar
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "thechar", argType = TBasicType TUniChar, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_read_unichar" g_io_channel_read_unichar :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    Ptr CInt ->                             -- thechar : TBasicType TUniChar
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelReadUnichar ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m (IOStatus,Char)
+iOChannelReadUnichar _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    thechar <- allocMem :: IO (Ptr CInt)
+    onException (do
+        result <- propagateGError $ g_io_channel_read_unichar _obj' thechar
+        let result' = (toEnum . fromIntegral) result
+        thechar' <- peek thechar
+        let thechar'' = (chr . fromIntegral) thechar'
+        touchManagedPtr _obj
+        freeMem thechar
+        return (result', thechar'')
+     ) (do
+        freeMem thechar
+     )
+
+-- method IOChannel::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOChannel"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_ref" g_io_channel_ref :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO (Ptr IOChannel)
+
+
+iOChannelRef ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m IOChannel
+iOChannelRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_io_channel_ref _obj'
+    result' <- (wrapBoxed IOChannel) result
+    touchManagedPtr _obj
+    return result'
+
+-- method IOChannel::seek
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "GLib" "SeekType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "GLib" "SeekType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOError"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_seek" g_io_channel_seek :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    Int64 ->                                -- offset : TBasicType TInt64
+    CUInt ->                                -- type : TInterface "GLib" "SeekType"
+    IO CUInt
+
+{-# DEPRECATED iOChannelSeek ["(Since version 2.2)","Use g_io_channel_seek_position() instead."]#-}
+iOChannelSeek ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Int64 ->                                -- offset
+    SeekType ->                             -- type
+    m IOError
+iOChannelSeek _obj offset type_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let type_' = (fromIntegral . fromEnum) type_
+    result <- g_io_channel_seek _obj' offset type_'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method IOChannel::seek_position
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "GLib" "SeekType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "GLib" "SeekType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_seek_position" g_io_channel_seek_position :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    Int64 ->                                -- offset : TBasicType TInt64
+    CUInt ->                                -- type : TInterface "GLib" "SeekType"
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelSeekPosition ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Int64 ->                                -- offset
+    SeekType ->                             -- type
+    m IOStatus
+iOChannelSeekPosition _obj offset type_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let type_' = (fromIntegral . fromEnum) type_
+    onException (do
+        result <- propagateGError $ g_io_channel_seek_position _obj' offset type_'
+        let result' = (toEnum . fromIntegral) result
+        touchManagedPtr _obj
+        return result'
+     ) (do
+        return ()
+     )
+
+-- method IOChannel::set_buffer_size
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_set_buffer_size" g_io_channel_set_buffer_size :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    Word64 ->                               -- size : TBasicType TUInt64
+    IO ()
+
+
+iOChannelSetBufferSize ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Word64 ->                               -- size
+    m ()
+iOChannelSetBufferSize _obj size = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_io_channel_set_buffer_size _obj' size
+    touchManagedPtr _obj
+    return ()
+
+-- method IOChannel::set_buffered
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffered", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffered", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_set_buffered" g_io_channel_set_buffered :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    CInt ->                                 -- buffered : TBasicType TBoolean
+    IO ()
+
+
+iOChannelSetBuffered ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Bool ->                                 -- buffered
+    m ()
+iOChannelSetBuffered _obj buffered = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let buffered' = (fromIntegral . fromEnum) buffered
+    g_io_channel_set_buffered _obj' buffered'
+    touchManagedPtr _obj
+    return ()
+
+-- method IOChannel::set_close_on_unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "do_close", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "do_close", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_set_close_on_unref" g_io_channel_set_close_on_unref :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    CInt ->                                 -- do_close : TBasicType TBoolean
+    IO ()
+
+
+iOChannelSetCloseOnUnref ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Bool ->                                 -- do_close
+    m ()
+iOChannelSetCloseOnUnref _obj do_close = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let do_close' = (fromIntegral . fromEnum) do_close
+    g_io_channel_set_close_on_unref _obj' do_close'
+    touchManagedPtr _obj
+    return ()
+
+-- method IOChannel::set_encoding
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "encoding", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "encoding", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_set_encoding" g_io_channel_set_encoding :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    CString ->                              -- encoding : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelSetEncoding ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Maybe (T.Text) ->                       -- encoding
+    m IOStatus
+iOChannelSetEncoding _obj encoding = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeEncoding <- case encoding of
+        Nothing -> return nullPtr
+        Just jEncoding -> do
+            jEncoding' <- textToCString jEncoding
+            return jEncoding'
+    onException (do
+        result <- propagateGError $ g_io_channel_set_encoding _obj' maybeEncoding
+        let result' = (toEnum . fromIntegral) result
+        touchManagedPtr _obj
+        freeMem maybeEncoding
+        return result'
+     ) (do
+        freeMem maybeEncoding
+     )
+
+-- method IOChannel::set_flags
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "IOFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "IOFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_set_flags" g_io_channel_set_flags :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    CUInt ->                                -- flags : TInterface "GLib" "IOFlags"
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelSetFlags ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    [IOFlags] ->                            -- flags
+    m IOStatus
+iOChannelSetFlags _obj flags = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let flags' = gflagsToWord flags
+    onException (do
+        result <- propagateGError $ g_io_channel_set_flags _obj' flags'
+        let result' = (toEnum . fromIntegral) result
+        touchManagedPtr _obj
+        return result'
+     ) (do
+        return ()
+     )
+
+-- method IOChannel::set_line_term
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line_term", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line_term", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_set_line_term" g_io_channel_set_line_term :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    CString ->                              -- line_term : TBasicType TUTF8
+    Int32 ->                                -- length : TBasicType TInt32
+    IO ()
+
+
+iOChannelSetLineTerm ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Maybe (T.Text) ->                       -- line_term
+    Int32 ->                                -- length
+    m ()
+iOChannelSetLineTerm _obj line_term length_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeLine_term <- case line_term of
+        Nothing -> return nullPtr
+        Just jLine_term -> do
+            jLine_term' <- textToCString jLine_term
+            return jLine_term'
+    g_io_channel_set_line_term _obj' maybeLine_term length_
+    touchManagedPtr _obj
+    freeMem maybeLine_term
+    return ()
+
+-- method IOChannel::shutdown
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flush", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flush", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_shutdown" g_io_channel_shutdown :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    CInt ->                                 -- flush : TBasicType TBoolean
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelShutdown ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Bool ->                                 -- flush
+    m IOStatus
+iOChannelShutdown _obj flush = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let flush' = (fromIntegral . fromEnum) flush
+    onException (do
+        result <- propagateGError $ g_io_channel_shutdown _obj' flush'
+        let result' = (toEnum . fromIntegral) result
+        touchManagedPtr _obj
+        return result'
+     ) (do
+        return ()
+     )
+
+-- method IOChannel::unix_get_fd
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_unix_get_fd" g_io_channel_unix_get_fd :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO Int32
+
+
+iOChannelUnixGetFd ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m Int32
+iOChannelUnixGetFd _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_io_channel_unix_get_fd _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method IOChannel::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_unref" g_io_channel_unref :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    IO ()
+
+
+iOChannelUnref ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    m ()
+iOChannelUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_io_channel_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method IOChannel::write
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOError"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_write" g_io_channel_write :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    CString ->                              -- buf : TBasicType TUTF8
+    Word64 ->                               -- count : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    IO CUInt
+
+{-# DEPRECATED iOChannelWrite ["(Since version 2.2)","Use g_io_channel_write_chars() instead."]#-}
+iOChannelWrite ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    T.Text ->                               -- buf
+    Word64 ->                               -- count
+    Word64 ->                               -- bytes_written
+    m IOError
+iOChannelWrite _obj buf count bytes_written = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    buf' <- textToCString buf
+    result <- g_io_channel_write _obj' buf' count bytes_written
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    freeMem buf'
+    return result'
+
+-- method IOChannel::write_chars
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf", argType = TCArray False (-1) (-1) (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf", argType = TCArray False (-1) (-1) (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_write_chars" g_io_channel_write_chars :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    Ptr Word8 ->                            -- buf : TCArray False (-1) (-1) (TBasicType TUInt8)
+    Int64 ->                                -- count : TBasicType TInt64
+    Ptr Word64 ->                           -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelWriteChars ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Ptr Word8 ->                            -- buf
+    Int64 ->                                -- count
+    m (IOStatus,Word64)
+iOChannelWriteChars _obj buf count = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    bytes_written <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_io_channel_write_chars _obj' buf count bytes_written
+        let result' = (toEnum . fromIntegral) result
+        bytes_written' <- peek bytes_written
+        touchManagedPtr _obj
+        freeMem bytes_written
+        return (result', bytes_written')
+     ) (do
+        freeMem bytes_written
+     )
+
+-- method IOChannel::write_unichar
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "thechar", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "thechar", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_write_unichar" g_io_channel_write_unichar :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    CInt ->                                 -- thechar : TBasicType TUniChar
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelWriteUnichar ::
+    (MonadIO m) =>
+    IOChannel ->                            -- _obj
+    Char ->                                 -- thechar
+    m IOStatus
+iOChannelWriteUnichar _obj thechar = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let thechar' = (fromIntegral . ord) thechar
+    onException (do
+        result <- propagateGError $ g_io_channel_write_unichar _obj' thechar'
+        let result' = (toEnum . fromIntegral) result
+        touchManagedPtr _obj
+        return result'
+     ) (do
+        return ()
+     )
+
+-- Enum IOChannelError
+
+data IOChannelError = 
+      IOChannelErrorFbig
+    | IOChannelErrorInval
+    | IOChannelErrorIo
+    | IOChannelErrorIsdir
+    | IOChannelErrorNospc
+    | IOChannelErrorNxio
+    | IOChannelErrorOverflow
+    | IOChannelErrorPipe
+    | IOChannelErrorFailed
+    | AnotherIOChannelError Int
+    deriving (Show, Eq)
+
+instance Enum IOChannelError where
+    fromEnum IOChannelErrorFbig = 0
+    fromEnum IOChannelErrorInval = 1
+    fromEnum IOChannelErrorIo = 2
+    fromEnum IOChannelErrorIsdir = 3
+    fromEnum IOChannelErrorNospc = 4
+    fromEnum IOChannelErrorNxio = 5
+    fromEnum IOChannelErrorOverflow = 6
+    fromEnum IOChannelErrorPipe = 7
+    fromEnum IOChannelErrorFailed = 8
+    fromEnum (AnotherIOChannelError k) = k
+
+    toEnum 0 = IOChannelErrorFbig
+    toEnum 1 = IOChannelErrorInval
+    toEnum 2 = IOChannelErrorIo
+    toEnum 3 = IOChannelErrorIsdir
+    toEnum 4 = IOChannelErrorNospc
+    toEnum 5 = IOChannelErrorNxio
+    toEnum 6 = IOChannelErrorOverflow
+    toEnum 7 = IOChannelErrorPipe
+    toEnum 8 = IOChannelErrorFailed
+    toEnum k = AnotherIOChannelError k
+
+instance GErrorClass IOChannelError where
+    gerrorClassDomain _ = "g-io-channel-error-quark"
+
+catchIOChannelError ::
+    IO a ->
+    (IOChannelError -> GErrorMessage -> IO a) ->
+    IO a
+catchIOChannelError = catchGErrorJustDomain
+
+handleIOChannelError ::
+    (IOChannelError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleIOChannelError = handleGErrorJustDomain
+
+-- Flags IOCondition
+
+data IOCondition = 
+      IOConditionIn
+    | IOConditionOut
+    | IOConditionPri
+    | IOConditionErr
+    | IOConditionHup
+    | IOConditionNval
+    | AnotherIOCondition Int
+    deriving (Show, Eq)
+
+instance Enum IOCondition where
+    fromEnum IOConditionIn = 1
+    fromEnum IOConditionOut = 4
+    fromEnum IOConditionPri = 2
+    fromEnum IOConditionErr = 8
+    fromEnum IOConditionHup = 16
+    fromEnum IOConditionNval = 32
+    fromEnum (AnotherIOCondition k) = k
+
+    toEnum 1 = IOConditionIn
+    toEnum 2 = IOConditionPri
+    toEnum 4 = IOConditionOut
+    toEnum 8 = IOConditionErr
+    toEnum 16 = IOConditionHup
+    toEnum 32 = IOConditionNval
+    toEnum k = AnotherIOCondition k
+
+foreign import ccall "g_io_condition_get_type" c_g_io_condition_get_type :: 
+    IO GType
+
+instance BoxedEnum IOCondition where
+    boxedEnumType _ = c_g_io_condition_get_type
+
+instance IsGFlag IOCondition
+
+-- Enum IOError
+
+data IOError = 
+      IOErrorNone
+    | IOErrorAgain
+    | IOErrorInval
+    | IOErrorUnknown
+    | AnotherIOError Int
+    deriving (Show, Eq)
+
+instance Enum IOError where
+    fromEnum IOErrorNone = 0
+    fromEnum IOErrorAgain = 1
+    fromEnum IOErrorInval = 2
+    fromEnum IOErrorUnknown = 3
+    fromEnum (AnotherIOError k) = k
+
+    toEnum 0 = IOErrorNone
+    toEnum 1 = IOErrorAgain
+    toEnum 2 = IOErrorInval
+    toEnum 3 = IOErrorUnknown
+    toEnum k = AnotherIOError k
+
+-- Flags IOFlags
+
+data IOFlags = 
+      IOFlagsAppend
+    | IOFlagsNonblock
+    | IOFlagsIsReadable
+    | IOFlagsIsWritable
+    | IOFlagsIsWriteable
+    | IOFlagsIsSeekable
+    | IOFlagsMask
+    | IOFlagsGetMask
+    | IOFlagsSetMask
+    | AnotherIOFlags Int
+    deriving (Show, Eq)
+
+instance Enum IOFlags where
+    fromEnum IOFlagsAppend = 1
+    fromEnum IOFlagsNonblock = 2
+    fromEnum IOFlagsIsReadable = 4
+    fromEnum IOFlagsIsWritable = 8
+    fromEnum IOFlagsIsWriteable = 8
+    fromEnum IOFlagsIsSeekable = 16
+    fromEnum IOFlagsMask = 31
+    fromEnum IOFlagsGetMask = 31
+    fromEnum IOFlagsSetMask = 3
+    fromEnum (AnotherIOFlags k) = k
+
+    toEnum 1 = IOFlagsAppend
+    toEnum 2 = IOFlagsNonblock
+    toEnum 3 = IOFlagsSetMask
+    toEnum 4 = IOFlagsIsReadable
+    toEnum 8 = IOFlagsIsWritable
+    toEnum 16 = IOFlagsIsSeekable
+    toEnum 31 = IOFlagsMask
+    toEnum k = AnotherIOFlags k
+
+instance IsGFlag IOFlags
+
+-- callback IOFunc
+iOFuncClosure :: IOFunc -> IO Closure
+iOFuncClosure cb = newCClosure =<< mkIOFunc wrapped
+    where wrapped = iOFuncWrapper Nothing cb
+
+type IOFuncC =
+    Ptr IOChannel ->
+    CUInt ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkIOFunc :: IOFuncC -> IO (FunPtr IOFuncC)
+
+type IOFunc =
+    IOChannel ->
+    [IOCondition] ->
+    Ptr () ->
+    IO Bool
+
+noIOFunc :: Maybe IOFunc
+noIOFunc = Nothing
+
+iOFuncWrapper ::
+    Maybe (Ptr (FunPtr (IOFuncC))) ->
+    IOFunc ->
+    Ptr IOChannel ->
+    CUInt ->
+    Ptr () ->
+    IO CInt
+iOFuncWrapper funptrptr _cb source condition data_ = do
+    source' <- (newBoxed IOChannel) source
+    let condition' = wordToGFlags condition
+    result <- _cb  source' condition' data_
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- struct IOFuncs
+newtype IOFuncs = IOFuncs (ForeignPtr IOFuncs)
+noIOFuncs :: Maybe IOFuncs
+noIOFuncs = Nothing
+
+-- XXX Skipped getter for "IOFuncs:io_read" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "IOFuncs:io_write" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "IOFuncs:io_seek" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "IOFuncs:io_close" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "IOFuncs:io_create_watch" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "IOFuncs:io_free" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "IOFuncs:io_set_flags" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "IOFuncs:io_get_flags" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- Enum IOStatus
+
+data IOStatus = 
+      IOStatusError
+    | IOStatusNormal
+    | IOStatusEof
+    | IOStatusAgain
+    | AnotherIOStatus Int
+    deriving (Show, Eq)
+
+instance Enum IOStatus where
+    fromEnum IOStatusError = 0
+    fromEnum IOStatusNormal = 1
+    fromEnum IOStatusEof = 2
+    fromEnum IOStatusAgain = 3
+    fromEnum (AnotherIOStatus k) = k
+
+    toEnum 0 = IOStatusError
+    toEnum 1 = IOStatusNormal
+    toEnum 2 = IOStatusEof
+    toEnum 3 = IOStatusAgain
+    toEnum k = AnotherIOStatus k
+
+-- struct KeyFile
+newtype KeyFile = KeyFile (ForeignPtr KeyFile)
+noKeyFile :: Maybe KeyFile
+noKeyFile = Nothing
+
+foreign import ccall "g_key_file_get_type" c_g_key_file_get_type :: 
+    IO GType
+
+instance BoxedObject KeyFile where
+    boxedType _ = c_g_key_file_get_type
+
+-- method KeyFile::new
+-- method type : Constructor
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "KeyFile"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_new" g_key_file_new :: 
+    IO (Ptr KeyFile)
+
+
+keyFileNew ::
+    (MonadIO m) =>
+    m KeyFile
+keyFileNew  = liftIO $ do
+    result <- g_key_file_new
+    result' <- (wrapBoxed KeyFile) result
+    return result'
+
+-- method KeyFile::get_boolean
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_boolean" g_key_file_get_boolean :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+keyFileGetBoolean ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m ()
+keyFileGetBoolean _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    onException (do
+        _ <- propagateGError $ g_key_file_get_boolean _obj' group_name' key'
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        return ()
+     ) (do
+        freeMem group_name'
+        freeMem key'
+     )
+
+-- method KeyFile::get_boolean_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray False (-1) 3 (TBasicType TBoolean)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_boolean_list" g_key_file_get_boolean_list :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr CInt)
+
+
+keyFileGetBooleanList ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m [Bool]
+keyFileGetBooleanList _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_boolean_list _obj' group_name' key' length_
+        length_' <- peek length_
+        result' <- (unpackMapStorableArrayWithLength (/= 0) length_') result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        freeMem length_
+        return result'
+     ) (do
+        freeMem group_name'
+        freeMem key'
+        freeMem length_
+     )
+
+-- method KeyFile::get_comment
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_comment" g_key_file_get_comment :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+keyFileGetComment ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    Maybe (T.Text) ->                       -- group_name
+    T.Text ->                               -- key
+    m T.Text
+keyFileGetComment _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeGroup_name <- case group_name of
+        Nothing -> return nullPtr
+        Just jGroup_name -> do
+            jGroup_name' <- textToCString jGroup_name
+            return jGroup_name'
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_comment _obj' maybeGroup_name key'
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem maybeGroup_name
+        freeMem key'
+        return result'
+     ) (do
+        freeMem maybeGroup_name
+        freeMem key'
+     )
+
+-- method KeyFile::get_double
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TDouble
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_double" g_key_file_get_double :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CDouble
+
+
+keyFileGetDouble ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m Double
+keyFileGetDouble _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_double _obj' group_name' key'
+        let result' = realToFrac result
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        return result'
+     ) (do
+        freeMem group_name'
+        freeMem key'
+     )
+
+-- method KeyFile::get_double_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray False (-1) 3 (TBasicType TDouble)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_double_list" g_key_file_get_double_list :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr CDouble)
+
+
+keyFileGetDoubleList ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m [Double]
+keyFileGetDoubleList _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_double_list _obj' group_name' key' length_
+        length_' <- peek length_
+        result' <- (unpackMapStorableArrayWithLength realToFrac length_') result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        freeMem length_
+        return result'
+     ) (do
+        freeMem group_name'
+        freeMem key'
+        freeMem length_
+     )
+
+-- method KeyFile::get_groups
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_groups" g_key_file_get_groups :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    IO (Ptr CString)
+
+
+keyFileGetGroups ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    m ([T.Text],Word64)
+keyFileGetGroups _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    length_ <- allocMem :: IO (Ptr Word64)
+    result <- g_key_file_get_groups _obj' length_
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    length_' <- peek length_
+    touchManagedPtr _obj
+    freeMem length_
+    return (result', length_')
+
+-- method KeyFile::get_int64
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_int64" g_key_file_get_int64 :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO Int64
+
+
+keyFileGetInt64 ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m Int64
+keyFileGetInt64 _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_int64 _obj' group_name' key'
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        return result
+     ) (do
+        freeMem group_name'
+        freeMem key'
+     )
+
+-- method KeyFile::get_integer
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_integer" g_key_file_get_integer :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO Int32
+
+
+keyFileGetInteger ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m Int32
+keyFileGetInteger _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_integer _obj' group_name' key'
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        return result
+     ) (do
+        freeMem group_name'
+        freeMem key'
+     )
+
+-- method KeyFile::get_integer_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray False (-1) 3 (TBasicType TInt32)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_integer_list" g_key_file_get_integer_list :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr Int32)
+
+
+keyFileGetIntegerList ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m [Int32]
+keyFileGetIntegerList _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_integer_list _obj' group_name' key' length_
+        length_' <- peek length_
+        result' <- (unpackStorableArrayWithLength length_') result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        freeMem length_
+        return result'
+     ) (do
+        freeMem group_name'
+        freeMem key'
+        freeMem length_
+     )
+
+-- method KeyFile::get_keys
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_keys" g_key_file_get_keys :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr CString)
+
+
+keyFileGetKeys ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    m ([T.Text],Word64)
+keyFileGetKeys _obj group_name = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_keys _obj' group_name' length_
+        result' <- unpackZeroTerminatedUTF8CArray result
+        mapZeroTerminatedCArray freeMem result
+        freeMem result
+        length_' <- peek length_
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem length_
+        return (result', length_')
+     ) (do
+        freeMem group_name'
+        freeMem length_
+     )
+
+-- method KeyFile::get_locale_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_locale_string" g_key_file_get_locale_string :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    CString ->                              -- locale : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+keyFileGetLocaleString ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    Maybe (T.Text) ->                       -- locale
+    m T.Text
+keyFileGetLocaleString _obj group_name key locale = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    maybeLocale <- case locale of
+        Nothing -> return nullPtr
+        Just jLocale -> do
+            jLocale' <- textToCString jLocale
+            return jLocale'
+    onException (do
+        result <- propagateGError $ g_key_file_get_locale_string _obj' group_name' key' maybeLocale
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        freeMem maybeLocale
+        return result'
+     ) (do
+        freeMem group_name'
+        freeMem key'
+        freeMem maybeLocale
+     )
+
+-- method KeyFile::get_locale_string_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) 4 (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_locale_string_list" g_key_file_get_locale_string_list :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    CString ->                              -- locale : TBasicType TUTF8
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr CString)
+
+
+keyFileGetLocaleStringList ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    Maybe (T.Text) ->                       -- locale
+    m ([T.Text],Word64)
+keyFileGetLocaleStringList _obj group_name key locale = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    maybeLocale <- case locale of
+        Nothing -> return nullPtr
+        Just jLocale -> do
+            jLocale' <- textToCString jLocale
+            return jLocale'
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_locale_string_list _obj' group_name' key' maybeLocale length_
+        result' <- unpackZeroTerminatedUTF8CArray result
+        mapZeroTerminatedCArray freeMem result
+        freeMem result
+        length_' <- peek length_
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        freeMem maybeLocale
+        freeMem length_
+        return (result', length_')
+     ) (do
+        freeMem group_name'
+        freeMem key'
+        freeMem maybeLocale
+        freeMem length_
+     )
+
+-- method KeyFile::get_start_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_start_group" g_key_file_get_start_group :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    IO CString
+
+
+keyFileGetStartGroup ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    m T.Text
+keyFileGetStartGroup _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_key_file_get_start_group _obj'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+-- method KeyFile::get_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_string" g_key_file_get_string :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+keyFileGetString ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m T.Text
+keyFileGetString _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_string _obj' group_name' key'
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        return result'
+     ) (do
+        freeMem group_name'
+        freeMem key'
+     )
+
+-- method KeyFile::get_string_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) 3 (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_string_list" g_key_file_get_string_list :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr CString)
+
+
+keyFileGetStringList ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m ([T.Text],Word64)
+keyFileGetStringList _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_string_list _obj' group_name' key' length_
+        result' <- unpackZeroTerminatedUTF8CArray result
+        mapZeroTerminatedCArray freeMem result
+        freeMem result
+        length_' <- peek length_
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        freeMem length_
+        return (result', length_')
+     ) (do
+        freeMem group_name'
+        freeMem key'
+        freeMem length_
+     )
+
+-- method KeyFile::get_uint64
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_uint64" g_key_file_get_uint64 :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO Word64
+
+
+keyFileGetUint64 ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m Word64
+keyFileGetUint64 _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_uint64 _obj' group_name' key'
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        return result
+     ) (do
+        freeMem group_name'
+        freeMem key'
+     )
+
+-- method KeyFile::get_value
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_get_value" g_key_file_get_value :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+keyFileGetValue ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m T.Text
+keyFileGetValue _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_value _obj' group_name' key'
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        return result'
+     ) (do
+        freeMem group_name'
+        freeMem key'
+     )
+
+-- method KeyFile::has_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_has_group" g_key_file_has_group :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    IO CInt
+
+
+keyFileHasGroup ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    m Bool
+keyFileHasGroup _obj group_name = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    result <- g_key_file_has_group _obj' group_name'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    freeMem group_name'
+    return result'
+
+-- method KeyFile::load_from_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_load_from_data" g_key_file_load_from_data :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- data : TBasicType TUTF8
+    Word64 ->                               -- length : TBasicType TUInt64
+    CUInt ->                                -- flags : TInterface "GLib" "KeyFileFlags"
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+keyFileLoadFromData ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- data
+    Word64 ->                               -- length
+    [KeyFileFlags] ->                       -- flags
+    m ()
+keyFileLoadFromData _obj data_ length_ flags = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    data_' <- textToCString data_
+    let flags' = gflagsToWord flags
+    onException (do
+        _ <- propagateGError $ g_key_file_load_from_data _obj' data_' length_ flags'
+        touchManagedPtr _obj
+        freeMem data_'
+        return ()
+     ) (do
+        freeMem data_'
+     )
+
+-- method KeyFile::load_from_data_dirs
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "full_path", argType = TBasicType TFileName, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_load_from_data_dirs" g_key_file_load_from_data_dirs :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- file : TBasicType TFileName
+    Ptr CString ->                          -- full_path : TBasicType TFileName
+    CUInt ->                                -- flags : TInterface "GLib" "KeyFileFlags"
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+keyFileLoadFromDataDirs ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    [Char] ->                               -- file
+    [KeyFileFlags] ->                       -- flags
+    m ([Char])
+keyFileLoadFromDataDirs _obj file flags = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    file' <- stringToCString file
+    full_path <- allocMem :: IO (Ptr CString)
+    let flags' = gflagsToWord flags
+    onException (do
+        _ <- propagateGError $ g_key_file_load_from_data_dirs _obj' file' full_path flags'
+        full_path' <- peek full_path
+        full_path'' <- cstringToString full_path'
+        freeMem full_path'
+        touchManagedPtr _obj
+        freeMem file'
+        freeMem full_path
+        return full_path''
+     ) (do
+        freeMem file'
+        freeMem full_path
+     )
+
+-- method KeyFile::load_from_dirs
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "search_dirs", argType = TCArray True (-1) (-1) (TBasicType TFileName), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "full_path", argType = TBasicType TFileName, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "search_dirs", argType = TCArray True (-1) (-1) (TBasicType TFileName), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_load_from_dirs" g_key_file_load_from_dirs :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- file : TBasicType TFileName
+    Ptr CString ->                          -- search_dirs : TCArray True (-1) (-1) (TBasicType TFileName)
+    Ptr CString ->                          -- full_path : TBasicType TFileName
+    CUInt ->                                -- flags : TInterface "GLib" "KeyFileFlags"
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+keyFileLoadFromDirs ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    [Char] ->                               -- file
+    [[Char]] ->                             -- search_dirs
+    [KeyFileFlags] ->                       -- flags
+    m ([Char])
+keyFileLoadFromDirs _obj file search_dirs flags = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    file' <- stringToCString file
+    search_dirs' <- packZeroTerminatedFileNameArray search_dirs
+    full_path <- allocMem :: IO (Ptr CString)
+    let flags' = gflagsToWord flags
+    onException (do
+        _ <- propagateGError $ g_key_file_load_from_dirs _obj' file' search_dirs' full_path flags'
+        full_path' <- peek full_path
+        full_path'' <- cstringToString full_path'
+        freeMem full_path'
+        touchManagedPtr _obj
+        freeMem file'
+        mapZeroTerminatedCArray freeMem search_dirs'
+        freeMem search_dirs'
+        freeMem full_path
+        return full_path''
+     ) (do
+        freeMem file'
+        mapZeroTerminatedCArray freeMem search_dirs'
+        freeMem search_dirs'
+        freeMem full_path
+     )
+
+-- method KeyFile::load_from_file
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_load_from_file" g_key_file_load_from_file :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- file : TBasicType TFileName
+    CUInt ->                                -- flags : TInterface "GLib" "KeyFileFlags"
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+keyFileLoadFromFile ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    [Char] ->                               -- file
+    [KeyFileFlags] ->                       -- flags
+    m ()
+keyFileLoadFromFile _obj file flags = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    file' <- stringToCString file
+    let flags' = gflagsToWord flags
+    onException (do
+        _ <- propagateGError $ g_key_file_load_from_file _obj' file' flags'
+        touchManagedPtr _obj
+        freeMem file'
+        return ()
+     ) (do
+        freeMem file'
+     )
+
+-- method KeyFile::remove_comment
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_remove_comment" g_key_file_remove_comment :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+keyFileRemoveComment ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    Maybe (T.Text) ->                       -- group_name
+    Maybe (T.Text) ->                       -- key
+    m ()
+keyFileRemoveComment _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeGroup_name <- case group_name of
+        Nothing -> return nullPtr
+        Just jGroup_name -> do
+            jGroup_name' <- textToCString jGroup_name
+            return jGroup_name'
+    maybeKey <- case key of
+        Nothing -> return nullPtr
+        Just jKey -> do
+            jKey' <- textToCString jKey
+            return jKey'
+    onException (do
+        _ <- propagateGError $ g_key_file_remove_comment _obj' maybeGroup_name maybeKey
+        touchManagedPtr _obj
+        freeMem maybeGroup_name
+        freeMem maybeKey
+        return ()
+     ) (do
+        freeMem maybeGroup_name
+        freeMem maybeKey
+     )
+
+-- method KeyFile::remove_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_remove_group" g_key_file_remove_group :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+keyFileRemoveGroup ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    m ()
+keyFileRemoveGroup _obj group_name = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    onException (do
+        _ <- propagateGError $ g_key_file_remove_group _obj' group_name'
+        touchManagedPtr _obj
+        freeMem group_name'
+        return ()
+     ) (do
+        freeMem group_name'
+     )
+
+-- method KeyFile::remove_key
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_remove_key" g_key_file_remove_key :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+keyFileRemoveKey ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    m ()
+keyFileRemoveKey _obj group_name key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    onException (do
+        _ <- propagateGError $ g_key_file_remove_key _obj' group_name' key'
+        touchManagedPtr _obj
+        freeMem group_name'
+        freeMem key'
+        return ()
+     ) (do
+        freeMem group_name'
+        freeMem key'
+     )
+
+-- method KeyFile::save_to_file
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_save_to_file" g_key_file_save_to_file :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- filename : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+keyFileSaveToFile ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- filename
+    m ()
+keyFileSaveToFile _obj filename = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    filename' <- textToCString filename
+    onException (do
+        _ <- propagateGError $ g_key_file_save_to_file _obj' filename'
+        touchManagedPtr _obj
+        freeMem filename'
+        return ()
+     ) (do
+        freeMem filename'
+     )
+
+-- method KeyFile::set_boolean
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_boolean" g_key_file_set_boolean :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    CInt ->                                 -- value : TBasicType TBoolean
+    IO ()
+
+
+keyFileSetBoolean ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    Bool ->                                 -- value
+    m ()
+keyFileSetBoolean _obj group_name key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    let value' = (fromIntegral . fromEnum) value
+    g_key_file_set_boolean _obj' group_name' key' value'
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    return ()
+
+-- method KeyFile::set_boolean_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray False (-1) 4 (TBasicType TBoolean), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray False (-1) 4 (TBasicType TBoolean), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_boolean_list" g_key_file_set_boolean_list :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr CInt ->                             -- list : TCArray False (-1) 4 (TBasicType TBoolean)
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO ()
+
+
+keyFileSetBooleanList ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    [Bool] ->                               -- list
+    m ()
+keyFileSetBooleanList _obj group_name key list = liftIO $ do
+    let length_ = fromIntegral $ length list
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    list' <- (packMapStorableArray (fromIntegral . fromEnum)) list
+    g_key_file_set_boolean_list _obj' group_name' key' list' length_
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    freeMem list'
+    return ()
+
+-- method KeyFile::set_comment
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "comment", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "comment", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_comment" g_key_file_set_comment :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    CString ->                              -- comment : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+keyFileSetComment ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    Maybe (T.Text) ->                       -- group_name
+    Maybe (T.Text) ->                       -- key
+    T.Text ->                               -- comment
+    m ()
+keyFileSetComment _obj group_name key comment = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeGroup_name <- case group_name of
+        Nothing -> return nullPtr
+        Just jGroup_name -> do
+            jGroup_name' <- textToCString jGroup_name
+            return jGroup_name'
+    maybeKey <- case key of
+        Nothing -> return nullPtr
+        Just jKey -> do
+            jKey' <- textToCString jKey
+            return jKey'
+    comment' <- textToCString comment
+    onException (do
+        _ <- propagateGError $ g_key_file_set_comment _obj' maybeGroup_name maybeKey comment'
+        touchManagedPtr _obj
+        freeMem maybeGroup_name
+        freeMem maybeKey
+        freeMem comment'
+        return ()
+     ) (do
+        freeMem maybeGroup_name
+        freeMem maybeKey
+        freeMem comment'
+     )
+
+-- method KeyFile::set_double
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_double" g_key_file_set_double :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    CDouble ->                              -- value : TBasicType TDouble
+    IO ()
+
+
+keyFileSetDouble ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    Double ->                               -- value
+    m ()
+keyFileSetDouble _obj group_name key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    let value' = realToFrac value
+    g_key_file_set_double _obj' group_name' key' value'
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    return ()
+
+-- method KeyFile::set_double_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray False (-1) 4 (TBasicType TDouble), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray False (-1) 4 (TBasicType TDouble), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_double_list" g_key_file_set_double_list :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr CDouble ->                          -- list : TCArray False (-1) 4 (TBasicType TDouble)
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO ()
+
+
+keyFileSetDoubleList ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    [Double] ->                             -- list
+    m ()
+keyFileSetDoubleList _obj group_name key list = liftIO $ do
+    let length_ = fromIntegral $ length list
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    list' <- (packMapStorableArray realToFrac) list
+    g_key_file_set_double_list _obj' group_name' key' list' length_
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    freeMem list'
+    return ()
+
+-- method KeyFile::set_int64
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_int64" g_key_file_set_int64 :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Int64 ->                                -- value : TBasicType TInt64
+    IO ()
+
+
+keyFileSetInt64 ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    Int64 ->                                -- value
+    m ()
+keyFileSetInt64 _obj group_name key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    g_key_file_set_int64 _obj' group_name' key' value
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    return ()
+
+-- method KeyFile::set_integer
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_integer" g_key_file_set_integer :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Int32 ->                                -- value : TBasicType TInt32
+    IO ()
+
+
+keyFileSetInteger ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    Int32 ->                                -- value
+    m ()
+keyFileSetInteger _obj group_name key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    g_key_file_set_integer _obj' group_name' key' value
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    return ()
+
+-- method KeyFile::set_integer_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray False (-1) 4 (TBasicType TInt32), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray False (-1) 4 (TBasicType TInt32), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_integer_list" g_key_file_set_integer_list :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr Int32 ->                            -- list : TCArray False (-1) 4 (TBasicType TInt32)
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO ()
+
+
+keyFileSetIntegerList ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    [Int32] ->                              -- list
+    m ()
+keyFileSetIntegerList _obj group_name key list = liftIO $ do
+    let length_ = fromIntegral $ length list
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    list' <- packStorableArray list
+    g_key_file_set_integer_list _obj' group_name' key' list' length_
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    freeMem list'
+    return ()
+
+-- method KeyFile::set_list_separator
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "separator", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "separator", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_list_separator" g_key_file_set_list_separator :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    Int8 ->                                 -- separator : TBasicType TInt8
+    IO ()
+
+
+keyFileSetListSeparator ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    Int8 ->                                 -- separator
+    m ()
+keyFileSetListSeparator _obj separator = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_key_file_set_list_separator _obj' separator
+    touchManagedPtr _obj
+    return ()
+
+-- method KeyFile::set_locale_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_locale_string" g_key_file_set_locale_string :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    CString ->                              -- locale : TBasicType TUTF8
+    CString ->                              -- string : TBasicType TUTF8
+    IO ()
+
+
+keyFileSetLocaleString ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    T.Text ->                               -- locale
+    T.Text ->                               -- string
+    m ()
+keyFileSetLocaleString _obj group_name key locale string = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    locale' <- textToCString locale
+    string' <- textToCString string
+    g_key_file_set_locale_string _obj' group_name' key' locale' string'
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    freeMem locale'
+    freeMem string'
+    return ()
+
+-- method KeyFile::set_locale_string_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray True (-1) 5 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray True (-1) 5 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_locale_string_list" g_key_file_set_locale_string_list :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    CString ->                              -- locale : TBasicType TUTF8
+    Ptr CString ->                          -- list : TCArray True (-1) 5 (TBasicType TUTF8)
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO ()
+
+
+keyFileSetLocaleStringList ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    T.Text ->                               -- locale
+    [T.Text] ->                             -- list
+    Word64 ->                               -- length
+    m ()
+keyFileSetLocaleStringList _obj group_name key locale list length_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    locale' <- textToCString locale
+    list' <- packZeroTerminatedUTF8CArray list
+    g_key_file_set_locale_string_list _obj' group_name' key' locale' list' length_
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    freeMem locale'
+    mapZeroTerminatedCArray freeMem list'
+    freeMem list'
+    return ()
+
+-- method KeyFile::set_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_string" g_key_file_set_string :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    CString ->                              -- string : TBasicType TUTF8
+    IO ()
+
+
+keyFileSetString ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    T.Text ->                               -- string
+    m ()
+keyFileSetString _obj group_name key string = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    string' <- textToCString string
+    g_key_file_set_string _obj' group_name' key' string'
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    freeMem string'
+    return ()
+
+-- method KeyFile::set_string_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray True (-1) 4 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray True (-1) 4 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_string_list" g_key_file_set_string_list :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr CString ->                          -- list : TCArray True (-1) 4 (TBasicType TUTF8)
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO ()
+
+
+keyFileSetStringList ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    [T.Text] ->                             -- list
+    Word64 ->                               -- length
+    m ()
+keyFileSetStringList _obj group_name key list length_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    list' <- packZeroTerminatedUTF8CArray list
+    g_key_file_set_string_list _obj' group_name' key' list' length_
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    mapZeroTerminatedCArray freeMem list'
+    freeMem list'
+    return ()
+
+-- method KeyFile::set_uint64
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_uint64" g_key_file_set_uint64 :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    Word64 ->                               -- value : TBasicType TUInt64
+    IO ()
+
+
+keyFileSetUint64 ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    Word64 ->                               -- value
+    m ()
+keyFileSetUint64 _obj group_name key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    g_key_file_set_uint64 _obj' group_name' key' value
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    return ()
+
+-- method KeyFile::set_value
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_set_value" g_key_file_set_value :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    CString ->                              -- group_name : TBasicType TUTF8
+    CString ->                              -- key : TBasicType TUTF8
+    CString ->                              -- value : TBasicType TUTF8
+    IO ()
+
+
+keyFileSetValue ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    T.Text ->                               -- group_name
+    T.Text ->                               -- key
+    T.Text ->                               -- value
+    m ()
+keyFileSetValue _obj group_name key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group_name' <- textToCString group_name
+    key' <- textToCString key
+    value' <- textToCString value
+    g_key_file_set_value _obj' group_name' key' value'
+    touchManagedPtr _obj
+    freeMem group_name'
+    freeMem key'
+    freeMem value'
+    return ()
+
+-- method KeyFile::to_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_key_file_to_data" g_key_file_to_data :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+keyFileToData ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    m (T.Text,Word64)
+keyFileToData _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_to_data _obj' length_
+        result' <- cstringToText result
+        freeMem result
+        length_' <- peek length_
+        touchManagedPtr _obj
+        freeMem length_
+        return (result', length_')
+     ) (do
+        freeMem length_
+     )
+
+-- method KeyFile::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_unref" g_key_file_unref :: 
+    Ptr KeyFile ->                          -- _obj : TInterface "GLib" "KeyFile"
+    IO ()
+
+
+keyFileUnref ::
+    (MonadIO m) =>
+    KeyFile ->                              -- _obj
+    m ()
+keyFileUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_key_file_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Enum KeyFileError
+
+data KeyFileError = 
+      KeyFileErrorUnknownEncoding
+    | KeyFileErrorParse
+    | KeyFileErrorNotFound
+    | KeyFileErrorKeyNotFound
+    | KeyFileErrorGroupNotFound
+    | KeyFileErrorInvalidValue
+    | AnotherKeyFileError Int
+    deriving (Show, Eq)
+
+instance Enum KeyFileError where
+    fromEnum KeyFileErrorUnknownEncoding = 0
+    fromEnum KeyFileErrorParse = 1
+    fromEnum KeyFileErrorNotFound = 2
+    fromEnum KeyFileErrorKeyNotFound = 3
+    fromEnum KeyFileErrorGroupNotFound = 4
+    fromEnum KeyFileErrorInvalidValue = 5
+    fromEnum (AnotherKeyFileError k) = k
+
+    toEnum 0 = KeyFileErrorUnknownEncoding
+    toEnum 1 = KeyFileErrorParse
+    toEnum 2 = KeyFileErrorNotFound
+    toEnum 3 = KeyFileErrorKeyNotFound
+    toEnum 4 = KeyFileErrorGroupNotFound
+    toEnum 5 = KeyFileErrorInvalidValue
+    toEnum k = AnotherKeyFileError k
+
+instance GErrorClass KeyFileError where
+    gerrorClassDomain _ = "g-key-file-error-quark"
+
+catchKeyFileError ::
+    IO a ->
+    (KeyFileError -> GErrorMessage -> IO a) ->
+    IO a
+catchKeyFileError = catchGErrorJustDomain
+
+handleKeyFileError ::
+    (KeyFileError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleKeyFileError = handleGErrorJustDomain
+
+-- Flags KeyFileFlags
+
+data KeyFileFlags = 
+      KeyFileFlagsNone
+    | KeyFileFlagsKeepComments
+    | KeyFileFlagsKeepTranslations
+    | AnotherKeyFileFlags Int
+    deriving (Show, Eq)
+
+instance Enum KeyFileFlags where
+    fromEnum KeyFileFlagsNone = 0
+    fromEnum KeyFileFlagsKeepComments = 1
+    fromEnum KeyFileFlagsKeepTranslations = 2
+    fromEnum (AnotherKeyFileFlags k) = k
+
+    toEnum 0 = KeyFileFlagsNone
+    toEnum 1 = KeyFileFlagsKeepComments
+    toEnum 2 = KeyFileFlagsKeepTranslations
+    toEnum k = AnotherKeyFileFlags k
+
+instance IsGFlag KeyFileFlags
+
+-- callback LogFunc
+logFuncClosure :: LogFunc -> IO Closure
+logFuncClosure cb = newCClosure =<< mkLogFunc wrapped
+    where wrapped = logFuncWrapper Nothing cb
+
+type LogFuncC =
+    CString ->
+    CUInt ->
+    CString ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkLogFunc :: LogFuncC -> IO (FunPtr LogFuncC)
+
+type LogFunc =
+    T.Text ->
+    [LogLevelFlags] ->
+    T.Text ->
+    IO ()
+
+noLogFunc :: Maybe LogFunc
+noLogFunc = Nothing
+
+logFuncWrapper ::
+    Maybe (Ptr (FunPtr (LogFuncC))) ->
+    LogFunc ->
+    CString ->
+    CUInt ->
+    CString ->
+    Ptr () ->
+    IO ()
+logFuncWrapper funptrptr _cb log_domain log_level message _ = do
+    log_domain' <- cstringToText log_domain
+    let log_level' = wordToGFlags log_level
+    message' <- cstringToText message
+    _cb  log_domain' log_level' message'
+    maybeReleaseFunPtr funptrptr
+
+-- Flags LogLevelFlags
+
+data LogLevelFlags = 
+      LogLevelFlagsFlagRecursion
+    | LogLevelFlagsFlagFatal
+    | LogLevelFlagsLevelError
+    | LogLevelFlagsLevelCritical
+    | LogLevelFlagsLevelWarning
+    | LogLevelFlagsLevelMessage
+    | LogLevelFlagsLevelInfo
+    | LogLevelFlagsLevelDebug
+    | LogLevelFlagsLevelMask
+    | AnotherLogLevelFlags Int
+    deriving (Show, Eq)
+
+instance Enum LogLevelFlags where
+    fromEnum LogLevelFlagsFlagRecursion = 1
+    fromEnum LogLevelFlagsFlagFatal = 2
+    fromEnum LogLevelFlagsLevelError = 4
+    fromEnum LogLevelFlagsLevelCritical = 8
+    fromEnum LogLevelFlagsLevelWarning = 16
+    fromEnum LogLevelFlagsLevelMessage = 32
+    fromEnum LogLevelFlagsLevelInfo = 64
+    fromEnum LogLevelFlagsLevelDebug = 128
+    fromEnum LogLevelFlagsLevelMask = -4
+    fromEnum (AnotherLogLevelFlags k) = k
+
+    toEnum -4 = LogLevelFlagsLevelMask
+    toEnum 1 = LogLevelFlagsFlagRecursion
+    toEnum 2 = LogLevelFlagsFlagFatal
+    toEnum 4 = LogLevelFlagsLevelError
+    toEnum 8 = LogLevelFlagsLevelCritical
+    toEnum 16 = LogLevelFlagsLevelWarning
+    toEnum 32 = LogLevelFlagsLevelMessage
+    toEnum 64 = LogLevelFlagsLevelInfo
+    toEnum 128 = LogLevelFlagsLevelDebug
+    toEnum k = AnotherLogLevelFlags k
+
+instance IsGFlag LogLevelFlags
+
+-- struct MainContext
+newtype MainContext = MainContext (ForeignPtr MainContext)
+noMainContext :: Maybe MainContext
+noMainContext = Nothing
+
+foreign import ccall "g_main_context_get_type" c_g_main_context_get_type :: 
+    IO GType
+
+instance BoxedObject MainContext where
+    boxedType _ = c_g_main_context_get_type
+
+-- method MainContext::new
+-- method type : Constructor
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "MainContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_new" g_main_context_new :: 
+    IO (Ptr MainContext)
+
+
+mainContextNew ::
+    (MonadIO m) =>
+    m MainContext
+mainContextNew  = liftIO $ do
+    result <- g_main_context_new
+    result' <- (wrapBoxed MainContext) result
+    return result'
+
+-- method MainContext::acquire
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_acquire" g_main_context_acquire :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    IO CInt
+
+
+mainContextAcquire ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    m Bool
+mainContextAcquire _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_main_context_acquire _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainContext::add_poll
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_add_poll" g_main_context_add_poll :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    Ptr PollFD ->                           -- fd : TInterface "GLib" "PollFD"
+    Int32 ->                                -- priority : TBasicType TInt32
+    IO ()
+
+
+mainContextAddPoll ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    PollFD ->                               -- fd
+    Int32 ->                                -- priority
+    m ()
+mainContextAddPoll _obj fd priority = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let fd' = unsafeManagedPtrGetPtr fd
+    g_main_context_add_poll _obj' fd' priority
+    touchManagedPtr _obj
+    touchManagedPtr fd
+    return ()
+
+-- method MainContext::check
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fds", argType = TCArray False (-1) 3 (TInterface "GLib" "PollFD"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_fds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "n_fds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fds", argType = TCArray False (-1) 3 (TInterface "GLib" "PollFD"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_check" g_main_context_check :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    Int32 ->                                -- max_priority : TBasicType TInt32
+    Ptr PollFD ->                           -- fds : TCArray False (-1) 3 (TInterface "GLib" "PollFD")
+    Int32 ->                                -- n_fds : TBasicType TInt32
+    IO Int32
+
+
+mainContextCheck ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    Int32 ->                                -- max_priority
+    [PollFD] ->                             -- fds
+    m Int32
+mainContextCheck _obj max_priority fds = liftIO $ do
+    let n_fds = fromIntegral $ length fds
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let fds' = map unsafeManagedPtrGetPtr fds
+    fds'' <- packBlockArray 8 fds'
+    result <- g_main_context_check _obj' max_priority fds'' n_fds
+    touchManagedPtr _obj
+    mapM_ touchManagedPtr fds
+    freeMem fds''
+    return result
+
+-- method MainContext::dispatch
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_dispatch" g_main_context_dispatch :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    IO ()
+
+
+mainContextDispatch ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    m ()
+mainContextDispatch _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_main_context_dispatch _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method MainContext::find_source_by_funcs_user_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_find_source_by_funcs_user_data" g_main_context_find_source_by_funcs_user_data :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    Ptr SourceFuncs ->                      -- funcs : TInterface "GLib" "SourceFuncs"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    IO (Ptr Source)
+
+
+mainContextFindSourceByFuncsUserData ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    SourceFuncs ->                          -- funcs
+    Ptr () ->                               -- user_data
+    m Source
+mainContextFindSourceByFuncsUserData _obj funcs user_data = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let funcs' = unsafeManagedPtrGetPtr funcs
+    result <- g_main_context_find_source_by_funcs_user_data _obj' funcs' user_data
+    result' <- (newBoxed Source) result
+    touchManagedPtr _obj
+    touchManagedPtr funcs
+    return result'
+
+-- method MainContext::find_source_by_id
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_find_source_by_id" g_main_context_find_source_by_id :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    Word32 ->                               -- source_id : TBasicType TUInt32
+    IO (Ptr Source)
+
+
+mainContextFindSourceById ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    Word32 ->                               -- source_id
+    m Source
+mainContextFindSourceById _obj source_id = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_main_context_find_source_by_id _obj' source_id
+    result' <- (newBoxed Source) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainContext::find_source_by_user_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_find_source_by_user_data" g_main_context_find_source_by_user_data :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    IO (Ptr Source)
+
+
+mainContextFindSourceByUserData ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    Ptr () ->                               -- user_data
+    m Source
+mainContextFindSourceByUserData _obj user_data = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_main_context_find_source_by_user_data _obj' user_data
+    result' <- (newBoxed Source) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainContext::invoke_full
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_invoke_full" g_main_context_invoke_full :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    Int32 ->                                -- priority : TBasicType TInt32
+    FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+mainContextInvokeFull ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    Int32 ->                                -- priority
+    SourceFunc ->                           -- function
+    m ()
+mainContextInvokeFull _obj priority function = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    g_main_context_invoke_full _obj' priority function' data_ notify
+    touchManagedPtr _obj
+    return ()
+
+-- method MainContext::is_owner
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_is_owner" g_main_context_is_owner :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    IO CInt
+
+
+mainContextIsOwner ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    m Bool
+mainContextIsOwner _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_main_context_is_owner _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainContext::iteration
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "may_block", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "may_block", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_iteration" g_main_context_iteration :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    CInt ->                                 -- may_block : TBasicType TBoolean
+    IO CInt
+
+
+mainContextIteration ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    Bool ->                                 -- may_block
+    m Bool
+mainContextIteration _obj may_block = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let may_block' = (fromIntegral . fromEnum) may_block
+    result <- g_main_context_iteration _obj' may_block'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainContext::pending
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_pending" g_main_context_pending :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    IO CInt
+
+
+mainContextPending ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    m Bool
+mainContextPending _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_main_context_pending _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainContext::pop_thread_default
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_pop_thread_default" g_main_context_pop_thread_default :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    IO ()
+
+
+mainContextPopThreadDefault ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    m ()
+mainContextPopThreadDefault _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_main_context_pop_thread_default _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method MainContext::prepare
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_prepare" g_main_context_prepare :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    Int32 ->                                -- priority : TBasicType TInt32
+    IO CInt
+
+
+mainContextPrepare ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    Int32 ->                                -- priority
+    m Bool
+mainContextPrepare _obj priority = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_main_context_prepare _obj' priority
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainContext::push_thread_default
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_push_thread_default" g_main_context_push_thread_default :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    IO ()
+
+
+mainContextPushThreadDefault ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    m ()
+mainContextPushThreadDefault _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_main_context_push_thread_default _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method MainContext::query
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timeout_", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "fds", argType = TCArray False (-1) 4 (TInterface "GLib" "PollFD"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_fds", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "n_fds", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_query" g_main_context_query :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    Int32 ->                                -- max_priority : TBasicType TInt32
+    Ptr Int32 ->                            -- timeout_ : TBasicType TInt32
+    Ptr (Ptr PollFD) ->                     -- fds : TCArray False (-1) 4 (TInterface "GLib" "PollFD")
+    Ptr Int32 ->                            -- n_fds : TBasicType TInt32
+    IO Int32
+
+
+mainContextQuery ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    Int32 ->                                -- max_priority
+    m (Int32,Int32,[PollFD])
+mainContextQuery _obj max_priority = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    timeout_ <- allocMem :: IO (Ptr Int32)
+    fds <- allocMem :: IO (Ptr (Ptr PollFD))
+    n_fds <- allocMem :: IO (Ptr Int32)
+    result <- g_main_context_query _obj' max_priority timeout_ fds n_fds
+    n_fds' <- peek n_fds
+    timeout_' <- peek timeout_
+    fds' <- peek fds
+    fds'' <- (unpackBoxedArrayWithLength 8 n_fds') fds'
+    fds''' <- mapM (newBoxed PollFD) fds''
+    touchManagedPtr _obj
+    freeMem timeout_
+    freeMem fds
+    freeMem n_fds
+    return (result, timeout_', fds''')
+
+-- method MainContext::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MainContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_ref" g_main_context_ref :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    IO (Ptr MainContext)
+
+
+mainContextRef ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    m MainContext
+mainContextRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_main_context_ref _obj'
+    result' <- (wrapBoxed MainContext) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainContext::release
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_release" g_main_context_release :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    IO ()
+
+
+mainContextRelease ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    m ()
+mainContextRelease _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_main_context_release _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method MainContext::remove_poll
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_remove_poll" g_main_context_remove_poll :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    Ptr PollFD ->                           -- fd : TInterface "GLib" "PollFD"
+    IO ()
+
+
+mainContextRemovePoll ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    PollFD ->                               -- fd
+    m ()
+mainContextRemovePoll _obj fd = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let fd' = unsafeManagedPtrGetPtr fd
+    g_main_context_remove_poll _obj' fd'
+    touchManagedPtr _obj
+    touchManagedPtr fd
+    return ()
+
+-- method MainContext::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_unref" g_main_context_unref :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    IO ()
+
+
+mainContextUnref ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    m ()
+mainContextUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_main_context_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method MainContext::wait
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cond", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mutex", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cond", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mutex", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_wait" g_main_context_wait :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    Ptr Cond ->                             -- cond : TInterface "GLib" "Cond"
+    Ptr Mutex ->                            -- mutex : TInterface "GLib" "Mutex"
+    IO CInt
+
+
+mainContextWait ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    Cond ->                                 -- cond
+    Mutex ->                                -- mutex
+    m Bool
+mainContextWait _obj cond mutex = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let cond' = unsafeManagedPtrGetPtr cond
+    let mutex' = unsafeManagedPtrGetPtr mutex
+    result <- g_main_context_wait _obj' cond' mutex'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr cond
+    touchManagedPtr mutex
+    return result'
+
+-- method MainContext::wakeup
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_wakeup" g_main_context_wakeup :: 
+    Ptr MainContext ->                      -- _obj : TInterface "GLib" "MainContext"
+    IO ()
+
+
+mainContextWakeup ::
+    (MonadIO m) =>
+    MainContext ->                          -- _obj
+    m ()
+mainContextWakeup _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_main_context_wakeup _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct MainLoop
+newtype MainLoop = MainLoop (ForeignPtr MainLoop)
+noMainLoop :: Maybe MainLoop
+noMainLoop = Nothing
+
+foreign import ccall "g_main_loop_get_type" c_g_main_loop_get_type :: 
+    IO GType
+
+instance BoxedObject MainLoop where
+    boxedType _ = c_g_main_loop_get_type
+
+-- method MainLoop::new
+-- method type : Constructor
+-- Args : [Arg {argName = "context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_running", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_running", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MainLoop"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_loop_new" g_main_loop_new :: 
+    Ptr MainContext ->                      -- context : TInterface "GLib" "MainContext"
+    CInt ->                                 -- is_running : TBasicType TBoolean
+    IO (Ptr MainLoop)
+
+
+mainLoopNew ::
+    (MonadIO m) =>
+    Maybe (MainContext) ->                  -- context
+    Bool ->                                 -- is_running
+    m MainLoop
+mainLoopNew context is_running = liftIO $ do
+    maybeContext <- case context of
+        Nothing -> return nullPtr
+        Just jContext -> do
+            let jContext' = unsafeManagedPtrGetPtr jContext
+            return jContext'
+    let is_running' = (fromIntegral . fromEnum) is_running
+    result <- g_main_loop_new maybeContext is_running'
+    result' <- (wrapBoxed MainLoop) result
+    whenJust context touchManagedPtr
+    return result'
+
+-- method MainLoop::get_context
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MainContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_loop_get_context" g_main_loop_get_context :: 
+    Ptr MainLoop ->                         -- _obj : TInterface "GLib" "MainLoop"
+    IO (Ptr MainContext)
+
+
+mainLoopGetContext ::
+    (MonadIO m) =>
+    MainLoop ->                             -- _obj
+    m MainContext
+mainLoopGetContext _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_main_loop_get_context _obj'
+    result' <- (newBoxed MainContext) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainLoop::is_running
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_loop_is_running" g_main_loop_is_running :: 
+    Ptr MainLoop ->                         -- _obj : TInterface "GLib" "MainLoop"
+    IO CInt
+
+
+mainLoopIsRunning ::
+    (MonadIO m) =>
+    MainLoop ->                             -- _obj
+    m Bool
+mainLoopIsRunning _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_main_loop_is_running _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainLoop::quit
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_loop_quit" g_main_loop_quit :: 
+    Ptr MainLoop ->                         -- _obj : TInterface "GLib" "MainLoop"
+    IO ()
+
+
+mainLoopQuit ::
+    (MonadIO m) =>
+    MainLoop ->                             -- _obj
+    m ()
+mainLoopQuit _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_main_loop_quit _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method MainLoop::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MainLoop"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_loop_ref" g_main_loop_ref :: 
+    Ptr MainLoop ->                         -- _obj : TInterface "GLib" "MainLoop"
+    IO (Ptr MainLoop)
+
+
+mainLoopRef ::
+    (MonadIO m) =>
+    MainLoop ->                             -- _obj
+    m MainLoop
+mainLoopRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_main_loop_ref _obj'
+    result' <- (wrapBoxed MainLoop) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MainLoop::run
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_loop_run" g_main_loop_run :: 
+    Ptr MainLoop ->                         -- _obj : TInterface "GLib" "MainLoop"
+    IO ()
+
+
+mainLoopRun ::
+    (MonadIO m) =>
+    MainLoop ->                             -- _obj
+    m ()
+mainLoopRun _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_main_loop_run _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method MainLoop::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_loop_unref" g_main_loop_unref :: 
+    Ptr MainLoop ->                         -- _obj : TInterface "GLib" "MainLoop"
+    IO ()
+
+
+mainLoopUnref ::
+    (MonadIO m) =>
+    MainLoop ->                             -- _obj
+    m ()
+mainLoopUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_main_loop_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct MappedFile
+newtype MappedFile = MappedFile (ForeignPtr MappedFile)
+noMappedFile :: Maybe MappedFile
+noMappedFile = Nothing
+
+foreign import ccall "g_mapped_file_get_type" c_g_mapped_file_get_type :: 
+    IO GType
+
+instance BoxedObject MappedFile where
+    boxedType _ = c_g_mapped_file_get_type
+
+-- method MappedFile::new
+-- method type : Constructor
+-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "writable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "writable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MappedFile"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_mapped_file_new" g_mapped_file_new :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    CInt ->                                 -- writable : TBasicType TBoolean
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr MappedFile)
+
+
+mappedFileNew ::
+    (MonadIO m) =>
+    T.Text ->                               -- filename
+    Bool ->                                 -- writable
+    m MappedFile
+mappedFileNew filename writable = liftIO $ do
+    filename' <- textToCString filename
+    let writable' = (fromIntegral . fromEnum) writable
+    onException (do
+        result <- propagateGError $ g_mapped_file_new filename' writable'
+        result' <- (wrapBoxed MappedFile) result
+        freeMem filename'
+        return result'
+     ) (do
+        freeMem filename'
+     )
+
+-- method MappedFile::new_from_fd
+-- method type : Constructor
+-- Args : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "writable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "writable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MappedFile"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_mapped_file_new_from_fd" g_mapped_file_new_from_fd :: 
+    Int32 ->                                -- fd : TBasicType TInt32
+    CInt ->                                 -- writable : TBasicType TBoolean
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr MappedFile)
+
+
+mappedFileNewFromFd ::
+    (MonadIO m) =>
+    Int32 ->                                -- fd
+    Bool ->                                 -- writable
+    m MappedFile
+mappedFileNewFromFd fd writable = liftIO $ do
+    let writable' = (fromIntegral . fromEnum) writable
+    onException (do
+        result <- propagateGError $ g_mapped_file_new_from_fd fd writable'
+        result' <- (wrapBoxed MappedFile) result
+        return result'
+     ) (do
+        return ()
+     )
+
+-- method MappedFile::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mapped_file_free" g_mapped_file_free :: 
+    Ptr MappedFile ->                       -- _obj : TInterface "GLib" "MappedFile"
+    IO ()
+
+{-# DEPRECATED mappedFileFree ["(Since version 2.22)","Use g_mapped_file_unref() instead."]#-}
+mappedFileFree ::
+    (MonadIO m) =>
+    MappedFile ->                           -- _obj
+    m ()
+mappedFileFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_mapped_file_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method MappedFile::get_bytes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Bytes"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mapped_file_get_bytes" g_mapped_file_get_bytes :: 
+    Ptr MappedFile ->                       -- _obj : TInterface "GLib" "MappedFile"
+    IO (Ptr Bytes)
+
+
+mappedFileGetBytes ::
+    (MonadIO m) =>
+    MappedFile ->                           -- _obj
+    m Bytes
+mappedFileGetBytes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_mapped_file_get_bytes _obj'
+    result' <- (wrapBoxed Bytes) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MappedFile::get_contents
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mapped_file_get_contents" g_mapped_file_get_contents :: 
+    Ptr MappedFile ->                       -- _obj : TInterface "GLib" "MappedFile"
+    IO CString
+
+
+mappedFileGetContents ::
+    (MonadIO m) =>
+    MappedFile ->                           -- _obj
+    m T.Text
+mappedFileGetContents _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_mapped_file_get_contents _obj'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+-- method MappedFile::get_length
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mapped_file_get_length" g_mapped_file_get_length :: 
+    Ptr MappedFile ->                       -- _obj : TInterface "GLib" "MappedFile"
+    IO Word64
+
+
+mappedFileGetLength ::
+    (MonadIO m) =>
+    MappedFile ->                           -- _obj
+    m Word64
+mappedFileGetLength _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_mapped_file_get_length _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method MappedFile::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MappedFile"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mapped_file_ref" g_mapped_file_ref :: 
+    Ptr MappedFile ->                       -- _obj : TInterface "GLib" "MappedFile"
+    IO (Ptr MappedFile)
+
+
+mappedFileRef ::
+    (MonadIO m) =>
+    MappedFile ->                           -- _obj
+    m MappedFile
+mappedFileRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_mapped_file_ref _obj'
+    result' <- (wrapBoxed MappedFile) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MappedFile::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mapped_file_unref" g_mapped_file_unref :: 
+    Ptr MappedFile ->                       -- _obj : TInterface "GLib" "MappedFile"
+    IO ()
+
+
+mappedFileUnref ::
+    (MonadIO m) =>
+    MappedFile ->                           -- _obj
+    m ()
+mappedFileUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_mapped_file_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Flags MarkupCollectType
+
+data MarkupCollectType = 
+      MarkupCollectTypeInvalid
+    | MarkupCollectTypeString
+    | MarkupCollectTypeStrdup
+    | MarkupCollectTypeBoolean
+    | MarkupCollectTypeTristate
+    | MarkupCollectTypeOptional
+    | AnotherMarkupCollectType Int
+    deriving (Show, Eq)
+
+instance Enum MarkupCollectType where
+    fromEnum MarkupCollectTypeInvalid = 0
+    fromEnum MarkupCollectTypeString = 1
+    fromEnum MarkupCollectTypeStrdup = 2
+    fromEnum MarkupCollectTypeBoolean = 3
+    fromEnum MarkupCollectTypeTristate = 4
+    fromEnum MarkupCollectTypeOptional = 65536
+    fromEnum (AnotherMarkupCollectType k) = k
+
+    toEnum 0 = MarkupCollectTypeInvalid
+    toEnum 1 = MarkupCollectTypeString
+    toEnum 2 = MarkupCollectTypeStrdup
+    toEnum 3 = MarkupCollectTypeBoolean
+    toEnum 4 = MarkupCollectTypeTristate
+    toEnum 65536 = MarkupCollectTypeOptional
+    toEnum k = AnotherMarkupCollectType k
+
+instance IsGFlag MarkupCollectType
+
+-- Enum MarkupError
+
+data MarkupError = 
+      MarkupErrorBadUtf8
+    | MarkupErrorEmpty
+    | MarkupErrorParse
+    | MarkupErrorUnknownElement
+    | MarkupErrorUnknownAttribute
+    | MarkupErrorInvalidContent
+    | MarkupErrorMissingAttribute
+    | AnotherMarkupError Int
+    deriving (Show, Eq)
+
+instance Enum MarkupError where
+    fromEnum MarkupErrorBadUtf8 = 0
+    fromEnum MarkupErrorEmpty = 1
+    fromEnum MarkupErrorParse = 2
+    fromEnum MarkupErrorUnknownElement = 3
+    fromEnum MarkupErrorUnknownAttribute = 4
+    fromEnum MarkupErrorInvalidContent = 5
+    fromEnum MarkupErrorMissingAttribute = 6
+    fromEnum (AnotherMarkupError k) = k
+
+    toEnum 0 = MarkupErrorBadUtf8
+    toEnum 1 = MarkupErrorEmpty
+    toEnum 2 = MarkupErrorParse
+    toEnum 3 = MarkupErrorUnknownElement
+    toEnum 4 = MarkupErrorUnknownAttribute
+    toEnum 5 = MarkupErrorInvalidContent
+    toEnum 6 = MarkupErrorMissingAttribute
+    toEnum k = AnotherMarkupError k
+
+instance GErrorClass MarkupError where
+    gerrorClassDomain _ = "g-markup-error-quark"
+
+catchMarkupError ::
+    IO a ->
+    (MarkupError -> GErrorMessage -> IO a) ->
+    IO a
+catchMarkupError = catchGErrorJustDomain
+
+handleMarkupError ::
+    (MarkupError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleMarkupError = handleGErrorJustDomain
+
+-- struct MarkupParseContext
+newtype MarkupParseContext = MarkupParseContext (ForeignPtr MarkupParseContext)
+noMarkupParseContext :: Maybe MarkupParseContext
+noMarkupParseContext = Nothing
+
+foreign import ccall "g_markup_parse_context_get_type" c_g_markup_parse_context_get_type :: 
+    IO GType
+
+instance BoxedObject MarkupParseContext where
+    boxedType _ = c_g_markup_parse_context_get_type
+
+-- method MarkupParseContext::new
+-- method type : Constructor
+-- Args : [Arg {argName = "parser", argType = TInterface "GLib" "MarkupParser", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "MarkupParseFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data_dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "parser", argType = TInterface "GLib" "MarkupParser", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "MarkupParseFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data_dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MarkupParseContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_markup_parse_context_new" g_markup_parse_context_new :: 
+    Ptr MarkupParser ->                     -- parser : TInterface "GLib" "MarkupParser"
+    CUInt ->                                -- flags : TInterface "GLib" "MarkupParseFlags"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- user_data_dnotify : TInterface "GLib" "DestroyNotify"
+    IO (Ptr MarkupParseContext)
+
+
+markupParseContextNew ::
+    (MonadIO m) =>
+    MarkupParser ->                         -- parser
+    [MarkupParseFlags] ->                   -- flags
+    Ptr () ->                               -- user_data
+    DestroyNotify ->                        -- user_data_dnotify
+    m MarkupParseContext
+markupParseContextNew parser flags user_data user_data_dnotify = liftIO $ do
+    let parser' = unsafeManagedPtrGetPtr parser
+    let flags' = gflagsToWord flags
+    ptruser_data_dnotify <- callocBytes $ sizeOf (undefined :: FunPtr DestroyNotifyC)
+    user_data_dnotify' <- mkDestroyNotify (destroyNotifyWrapper (Just ptruser_data_dnotify) user_data_dnotify)
+    poke ptruser_data_dnotify user_data_dnotify'
+    result <- g_markup_parse_context_new parser' flags' user_data user_data_dnotify'
+    result' <- (wrapBoxed MarkupParseContext) result
+    touchManagedPtr parser
+    return result'
+
+-- method MarkupParseContext::end_parse
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_markup_parse_context_end_parse" g_markup_parse_context_end_parse :: 
+    Ptr MarkupParseContext ->               -- _obj : TInterface "GLib" "MarkupParseContext"
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+markupParseContextEndParse ::
+    (MonadIO m) =>
+    MarkupParseContext ->                   -- _obj
+    m ()
+markupParseContextEndParse _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    onException (do
+        _ <- propagateGError $ g_markup_parse_context_end_parse _obj'
+        touchManagedPtr _obj
+        return ()
+     ) (do
+        return ()
+     )
+
+-- method MarkupParseContext::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_markup_parse_context_free" g_markup_parse_context_free :: 
+    Ptr MarkupParseContext ->               -- _obj : TInterface "GLib" "MarkupParseContext"
+    IO ()
+
+
+markupParseContextFree ::
+    (MonadIO m) =>
+    MarkupParseContext ->                   -- _obj
+    m ()
+markupParseContextFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_markup_parse_context_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method MarkupParseContext::get_element
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_markup_parse_context_get_element" g_markup_parse_context_get_element :: 
+    Ptr MarkupParseContext ->               -- _obj : TInterface "GLib" "MarkupParseContext"
+    IO CString
+
+
+markupParseContextGetElement ::
+    (MonadIO m) =>
+    MarkupParseContext ->                   -- _obj
+    m T.Text
+markupParseContextGetElement _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_markup_parse_context_get_element _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method MarkupParseContext::parse
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_markup_parse_context_parse" g_markup_parse_context_parse :: 
+    Ptr MarkupParseContext ->               -- _obj : TInterface "GLib" "MarkupParseContext"
+    CString ->                              -- text : TBasicType TUTF8
+    Int64 ->                                -- text_len : TBasicType TInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+markupParseContextParse ::
+    (MonadIO m) =>
+    MarkupParseContext ->                   -- _obj
+    T.Text ->                               -- text
+    Int64 ->                                -- text_len
+    m ()
+markupParseContextParse _obj text text_len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    text' <- textToCString text
+    onException (do
+        _ <- propagateGError $ g_markup_parse_context_parse _obj' text' text_len
+        touchManagedPtr _obj
+        freeMem text'
+        return ()
+     ) (do
+        freeMem text'
+     )
+
+-- method MarkupParseContext::push
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parser", argType = TInterface "GLib" "MarkupParser", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parser", argType = TInterface "GLib" "MarkupParser", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_markup_parse_context_push" g_markup_parse_context_push :: 
+    Ptr MarkupParseContext ->               -- _obj : TInterface "GLib" "MarkupParseContext"
+    Ptr MarkupParser ->                     -- parser : TInterface "GLib" "MarkupParser"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    IO ()
+
+
+markupParseContextPush ::
+    (MonadIO m) =>
+    MarkupParseContext ->                   -- _obj
+    MarkupParser ->                         -- parser
+    Ptr () ->                               -- user_data
+    m ()
+markupParseContextPush _obj parser user_data = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let parser' = unsafeManagedPtrGetPtr parser
+    g_markup_parse_context_push _obj' parser' user_data
+    touchManagedPtr _obj
+    touchManagedPtr parser
+    return ()
+
+-- method MarkupParseContext::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MarkupParseContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_markup_parse_context_ref" g_markup_parse_context_ref :: 
+    Ptr MarkupParseContext ->               -- _obj : TInterface "GLib" "MarkupParseContext"
+    IO (Ptr MarkupParseContext)
+
+
+markupParseContextRef ::
+    (MonadIO m) =>
+    MarkupParseContext ->                   -- _obj
+    m MarkupParseContext
+markupParseContextRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_markup_parse_context_ref _obj'
+    result' <- (wrapBoxed MarkupParseContext) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MarkupParseContext::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_markup_parse_context_unref" g_markup_parse_context_unref :: 
+    Ptr MarkupParseContext ->               -- _obj : TInterface "GLib" "MarkupParseContext"
+    IO ()
+
+
+markupParseContextUnref ::
+    (MonadIO m) =>
+    MarkupParseContext ->                   -- _obj
+    m ()
+markupParseContextUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_markup_parse_context_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Flags MarkupParseFlags
+
+data MarkupParseFlags = 
+      MarkupParseFlagsDoNotUseThisUnsupportedFlag
+    | MarkupParseFlagsTreatCdataAsText
+    | MarkupParseFlagsPrefixErrorPosition
+    | MarkupParseFlagsIgnoreQualified
+    | AnotherMarkupParseFlags Int
+    deriving (Show, Eq)
+
+instance Enum MarkupParseFlags where
+    fromEnum MarkupParseFlagsDoNotUseThisUnsupportedFlag = 1
+    fromEnum MarkupParseFlagsTreatCdataAsText = 2
+    fromEnum MarkupParseFlagsPrefixErrorPosition = 4
+    fromEnum MarkupParseFlagsIgnoreQualified = 8
+    fromEnum (AnotherMarkupParseFlags k) = k
+
+    toEnum 1 = MarkupParseFlagsDoNotUseThisUnsupportedFlag
+    toEnum 2 = MarkupParseFlagsTreatCdataAsText
+    toEnum 4 = MarkupParseFlagsPrefixErrorPosition
+    toEnum 8 = MarkupParseFlagsIgnoreQualified
+    toEnum k = AnotherMarkupParseFlags k
+
+instance IsGFlag MarkupParseFlags
+
+-- struct MarkupParser
+newtype MarkupParser = MarkupParser (ForeignPtr MarkupParser)
+noMarkupParser :: Maybe MarkupParser
+noMarkupParser = Nothing
+
+-- XXX Skipped getter for "MarkupParser:start_element" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "MarkupParser:end_element" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "MarkupParser:text" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "MarkupParser:passthrough" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "MarkupParser:error" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- struct MatchInfo
+newtype MatchInfo = MatchInfo (ForeignPtr MatchInfo)
+noMatchInfo :: Maybe MatchInfo
+noMatchInfo = Nothing
+
+foreign import ccall "g_match_info_get_type" c_g_match_info_get_type :: 
+    IO GType
+
+instance BoxedObject MatchInfo where
+    boxedType _ = c_g_match_info_get_type
+
+-- method MatchInfo::expand_references
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_to_expand", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_to_expand", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_match_info_expand_references" g_match_info_expand_references :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    CString ->                              -- string_to_expand : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+matchInfoExpandReferences ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    T.Text ->                               -- string_to_expand
+    m T.Text
+matchInfoExpandReferences _obj string_to_expand = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string_to_expand' <- textToCString string_to_expand
+    onException (do
+        result <- propagateGError $ g_match_info_expand_references _obj' string_to_expand'
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem string_to_expand'
+        return result'
+     ) (do
+        freeMem string_to_expand'
+     )
+
+-- method MatchInfo::fetch
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_fetch" g_match_info_fetch :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    Int32 ->                                -- match_num : TBasicType TInt32
+    IO CString
+
+
+matchInfoFetch ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    Int32 ->                                -- match_num
+    m T.Text
+matchInfoFetch _obj match_num = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_match_info_fetch _obj' match_num
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+-- method MatchInfo::fetch_all
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_fetch_all" g_match_info_fetch_all :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    IO (Ptr CString)
+
+
+matchInfoFetchAll ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    m [T.Text]
+matchInfoFetchAll _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_match_info_fetch_all _obj'
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+-- method MatchInfo::fetch_named
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_fetch_named" g_match_info_fetch_named :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    CString ->                              -- name : TBasicType TUTF8
+    IO CString
+
+
+matchInfoFetchNamed ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    T.Text ->                               -- name
+    m T.Text
+matchInfoFetchNamed _obj name = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    name' <- textToCString name
+    result <- g_match_info_fetch_named _obj' name'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    freeMem name'
+    return result'
+
+-- method MatchInfo::fetch_named_pos
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "end_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_fetch_named_pos" g_match_info_fetch_named_pos :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    CString ->                              -- name : TBasicType TUTF8
+    Ptr Int32 ->                            -- start_pos : TBasicType TInt32
+    Ptr Int32 ->                            -- end_pos : TBasicType TInt32
+    IO CInt
+
+
+matchInfoFetchNamedPos ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    T.Text ->                               -- name
+    m (Bool,Int32,Int32)
+matchInfoFetchNamedPos _obj name = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    name' <- textToCString name
+    start_pos <- allocMem :: IO (Ptr Int32)
+    end_pos <- allocMem :: IO (Ptr Int32)
+    result <- g_match_info_fetch_named_pos _obj' name' start_pos end_pos
+    let result' = (/= 0) result
+    start_pos' <- peek start_pos
+    end_pos' <- peek end_pos
+    touchManagedPtr _obj
+    freeMem name'
+    freeMem start_pos
+    freeMem end_pos
+    return (result', start_pos', end_pos')
+
+-- method MatchInfo::fetch_pos
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "end_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_fetch_pos" g_match_info_fetch_pos :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    Int32 ->                                -- match_num : TBasicType TInt32
+    Ptr Int32 ->                            -- start_pos : TBasicType TInt32
+    Ptr Int32 ->                            -- end_pos : TBasicType TInt32
+    IO CInt
+
+
+matchInfoFetchPos ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    Int32 ->                                -- match_num
+    m (Bool,Int32,Int32)
+matchInfoFetchPos _obj match_num = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    start_pos <- allocMem :: IO (Ptr Int32)
+    end_pos <- allocMem :: IO (Ptr Int32)
+    result <- g_match_info_fetch_pos _obj' match_num start_pos end_pos
+    let result' = (/= 0) result
+    start_pos' <- peek start_pos
+    end_pos' <- peek end_pos
+    touchManagedPtr _obj
+    freeMem start_pos
+    freeMem end_pos
+    return (result', start_pos', end_pos')
+
+-- method MatchInfo::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_free" g_match_info_free :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    IO ()
+
+
+matchInfoFree ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    m ()
+matchInfoFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_match_info_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method MatchInfo::get_match_count
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_get_match_count" g_match_info_get_match_count :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    IO Int32
+
+
+matchInfoGetMatchCount ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    m Int32
+matchInfoGetMatchCount _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_match_info_get_match_count _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method MatchInfo::get_regex
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Regex"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_get_regex" g_match_info_get_regex :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    IO (Ptr Regex)
+
+
+matchInfoGetRegex ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    m Regex
+matchInfoGetRegex _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_match_info_get_regex _obj'
+    result' <- (wrapBoxed Regex) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MatchInfo::get_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_get_string" g_match_info_get_string :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    IO CString
+
+
+matchInfoGetString ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    m T.Text
+matchInfoGetString _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_match_info_get_string _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method MatchInfo::is_partial_match
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_is_partial_match" g_match_info_is_partial_match :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    IO CInt
+
+
+matchInfoIsPartialMatch ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    m Bool
+matchInfoIsPartialMatch _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_match_info_is_partial_match _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MatchInfo::matches
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_matches" g_match_info_matches :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    IO CInt
+
+
+matchInfoMatches ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    m Bool
+matchInfoMatches _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_match_info_matches _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MatchInfo::next
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_match_info_next" g_match_info_next :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+matchInfoNext ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    m ()
+matchInfoNext _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    onException (do
+        _ <- propagateGError $ g_match_info_next _obj'
+        touchManagedPtr _obj
+        return ()
+     ) (do
+        return ()
+     )
+
+-- method MatchInfo::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MatchInfo"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_ref" g_match_info_ref :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    IO (Ptr MatchInfo)
+
+
+matchInfoRef ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    m MatchInfo
+matchInfoRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_match_info_ref _obj'
+    result' <- (wrapBoxed MatchInfo) result
+    touchManagedPtr _obj
+    return result'
+
+-- method MatchInfo::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_match_info_unref" g_match_info_unref :: 
+    Ptr MatchInfo ->                        -- _obj : TInterface "GLib" "MatchInfo"
+    IO ()
+
+
+matchInfoUnref ::
+    (MonadIO m) =>
+    MatchInfo ->                            -- _obj
+    m ()
+matchInfoUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_match_info_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct MemVTable
+newtype MemVTable = MemVTable (ForeignPtr MemVTable)
+noMemVTable :: Maybe MemVTable
+noMemVTable = Nothing
+
+-- XXX Skipped getter for "MemVTable:free" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- union Mutex 
+newtype Mutex = Mutex (ForeignPtr Mutex)
+noMutex :: Maybe Mutex
+noMutex = Nothing
+
+-- method Mutex::clear
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mutex_clear" g_mutex_clear :: 
+    Ptr Mutex ->                            -- _obj : TInterface "GLib" "Mutex"
+    IO ()
+
+
+mutexClear ::
+    (MonadIO m) =>
+    Mutex ->                                -- _obj
+    m ()
+mutexClear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_mutex_clear _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Mutex::init
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mutex_init" g_mutex_init :: 
+    Ptr Mutex ->                            -- _obj : TInterface "GLib" "Mutex"
+    IO ()
+
+
+mutexInit ::
+    (MonadIO m) =>
+    Mutex ->                                -- _obj
+    m ()
+mutexInit _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_mutex_init _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Mutex::lock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mutex_lock" g_mutex_lock :: 
+    Ptr Mutex ->                            -- _obj : TInterface "GLib" "Mutex"
+    IO ()
+
+
+mutexLock ::
+    (MonadIO m) =>
+    Mutex ->                                -- _obj
+    m ()
+mutexLock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_mutex_lock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Mutex::trylock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mutex_trylock" g_mutex_trylock :: 
+    Ptr Mutex ->                            -- _obj : TInterface "GLib" "Mutex"
+    IO CInt
+
+
+mutexTrylock ::
+    (MonadIO m) =>
+    Mutex ->                                -- _obj
+    m Bool
+mutexTrylock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_mutex_trylock _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Mutex::unlock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mutex_unlock" g_mutex_unlock :: 
+    Ptr Mutex ->                            -- _obj : TInterface "GLib" "Mutex"
+    IO ()
+
+
+mutexUnlock ::
+    (MonadIO m) =>
+    Mutex ->                                -- _obj
+    m ()
+mutexUnlock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_mutex_unlock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct Node
+newtype Node = Node (ForeignPtr Node)
+noNode :: Maybe Node
+noNode = Nothing
+
+nodeReadData :: Node -> IO (Ptr ())
+nodeReadData s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
+    return val
+
+nodeReadNext :: Node -> IO Node
+nodeReadNext s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr Node)
+    val' <- (newPtr 40 Node) val
+    return val'
+
+nodeReadPrev :: Node -> IO Node
+nodeReadPrev s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO (Ptr Node)
+    val' <- (newPtr 40 Node) val
+    return val'
+
+nodeReadParent :: Node -> IO Node
+nodeReadParent s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Node)
+    val' <- (newPtr 40 Node) val
+    return val'
+
+nodeReadChildren :: Node -> IO Node
+nodeReadChildren s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO (Ptr Node)
+    val' <- (newPtr 40 Node) val
+    return val'
+
+-- method Node::child_index
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_node_child_index" g_node_child_index :: 
+    Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO Int32
+
+
+nodeChildIndex ::
+    (MonadIO m) =>
+    Node ->                                 -- _obj
+    Ptr () ->                               -- data
+    m Int32
+nodeChildIndex _obj data_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_node_child_index _obj' data_
+    touchManagedPtr _obj
+    return result
+
+-- method Node::child_position
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_node_child_position" g_node_child_position :: 
+    Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
+    Ptr Node ->                             -- child : TInterface "GLib" "Node"
+    IO Int32
+
+
+nodeChildPosition ::
+    (MonadIO m) =>
+    Node ->                                 -- _obj
+    Node ->                                 -- child
+    m Int32
+nodeChildPosition _obj child = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let child' = unsafeManagedPtrGetPtr child
+    result <- g_node_child_position _obj' child'
+    touchManagedPtr _obj
+    touchManagedPtr child
+    return result
+
+-- method Node::depth
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_node_depth" g_node_depth :: 
+    Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
+    IO Word32
+
+
+nodeDepth ::
+    (MonadIO m) =>
+    Node ->                                 -- _obj
+    m Word32
+nodeDepth _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_node_depth _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Node::destroy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_node_destroy" g_node_destroy :: 
+    Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
+    IO ()
+
+
+nodeDestroy ::
+    (MonadIO m) =>
+    Node ->                                 -- _obj
+    m ()
+nodeDestroy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_node_destroy _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Node::is_ancestor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "descendant", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "descendant", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_node_is_ancestor" g_node_is_ancestor :: 
+    Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
+    Ptr Node ->                             -- descendant : TInterface "GLib" "Node"
+    IO CInt
+
+
+nodeIsAncestor ::
+    (MonadIO m) =>
+    Node ->                                 -- _obj
+    Node ->                                 -- descendant
+    m Bool
+nodeIsAncestor _obj descendant = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let descendant' = unsafeManagedPtrGetPtr descendant
+    result <- g_node_is_ancestor _obj' descendant'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr descendant
+    return result'
+
+-- method Node::max_height
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_node_max_height" g_node_max_height :: 
+    Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
+    IO Word32
+
+
+nodeMaxHeight ::
+    (MonadIO m) =>
+    Node ->                                 -- _obj
+    m Word32
+nodeMaxHeight _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_node_max_height _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Node::n_children
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_node_n_children" g_node_n_children :: 
+    Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
+    IO Word32
+
+
+nodeNChildren ::
+    (MonadIO m) =>
+    Node ->                                 -- _obj
+    m Word32
+nodeNChildren _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_node_n_children _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Node::n_nodes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "TraverseFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "TraverseFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_node_n_nodes" g_node_n_nodes :: 
+    Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
+    CUInt ->                                -- flags : TInterface "GLib" "TraverseFlags"
+    IO Word32
+
+
+nodeNNodes ::
+    (MonadIO m) =>
+    Node ->                                 -- _obj
+    [TraverseFlags] ->                      -- flags
+    m Word32
+nodeNNodes _obj flags = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let flags' = gflagsToWord flags
+    result <- g_node_n_nodes _obj' flags'
+    touchManagedPtr _obj
+    return result
+
+-- method Node::reverse_children
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_node_reverse_children" g_node_reverse_children :: 
+    Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
+    IO ()
+
+
+nodeReverseChildren ::
+    (MonadIO m) =>
+    Node ->                                 -- _obj
+    m ()
+nodeReverseChildren _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_node_reverse_children _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Node::unlink
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_node_unlink" g_node_unlink :: 
+    Ptr Node ->                             -- _obj : TInterface "GLib" "Node"
+    IO ()
+
+
+nodeUnlink ::
+    (MonadIO m) =>
+    Node ->                                 -- _obj
+    m ()
+nodeUnlink _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_node_unlink _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- callback NodeForeachFunc
+nodeForeachFuncClosure :: NodeForeachFunc -> IO Closure
+nodeForeachFuncClosure cb = newCClosure =<< mkNodeForeachFunc wrapped
+    where wrapped = nodeForeachFuncWrapper Nothing cb
+
+type NodeForeachFuncC =
+    Ptr Node ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkNodeForeachFunc :: NodeForeachFuncC -> IO (FunPtr NodeForeachFuncC)
+
+type NodeForeachFunc =
+    Node ->
+    Ptr () ->
+    IO ()
+
+noNodeForeachFunc :: Maybe NodeForeachFunc
+noNodeForeachFunc = Nothing
+
+nodeForeachFuncWrapper ::
+    Maybe (Ptr (FunPtr (NodeForeachFuncC))) ->
+    NodeForeachFunc ->
+    Ptr Node ->
+    Ptr () ->
+    IO ()
+nodeForeachFuncWrapper funptrptr _cb node data_ = do
+    node' <- (newPtr 40 Node) node
+    _cb  node' data_
+    maybeReleaseFunPtr funptrptr
+
+-- callback NodeTraverseFunc
+nodeTraverseFuncClosure :: NodeTraverseFunc -> IO Closure
+nodeTraverseFuncClosure cb = newCClosure =<< mkNodeTraverseFunc wrapped
+    where wrapped = nodeTraverseFuncWrapper Nothing cb
+
+type NodeTraverseFuncC =
+    Ptr Node ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkNodeTraverseFunc :: NodeTraverseFuncC -> IO (FunPtr NodeTraverseFuncC)
+
+type NodeTraverseFunc =
+    Node ->
+    Ptr () ->
+    IO Bool
+
+noNodeTraverseFunc :: Maybe NodeTraverseFunc
+noNodeTraverseFunc = Nothing
+
+nodeTraverseFuncWrapper ::
+    Maybe (Ptr (FunPtr (NodeTraverseFuncC))) ->
+    NodeTraverseFunc ->
+    Ptr Node ->
+    Ptr () ->
+    IO CInt
+nodeTraverseFuncWrapper funptrptr _cb node data_ = do
+    node' <- (newPtr 40 Node) node
+    result <- _cb  node' data_
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- Enum NormalizeMode
+
+data NormalizeMode = 
+      NormalizeModeDefault
+    | NormalizeModeNfd
+    | NormalizeModeDefaultCompose
+    | NormalizeModeNfc
+    | NormalizeModeAll
+    | NormalizeModeNfkd
+    | NormalizeModeAllCompose
+    | NormalizeModeNfkc
+    | AnotherNormalizeMode Int
+    deriving (Show, Eq)
+
+instance Enum NormalizeMode where
+    fromEnum NormalizeModeDefault = 0
+    fromEnum NormalizeModeNfd = 0
+    fromEnum NormalizeModeDefaultCompose = 1
+    fromEnum NormalizeModeNfc = 1
+    fromEnum NormalizeModeAll = 2
+    fromEnum NormalizeModeNfkd = 2
+    fromEnum NormalizeModeAllCompose = 3
+    fromEnum NormalizeModeNfkc = 3
+    fromEnum (AnotherNormalizeMode k) = k
+
+    toEnum 0 = NormalizeModeDefault
+    toEnum 1 = NormalizeModeDefaultCompose
+    toEnum 2 = NormalizeModeAll
+    toEnum 3 = NormalizeModeAllCompose
+    toEnum k = AnotherNormalizeMode k
+
+-- struct Once
+newtype Once = Once (ForeignPtr Once)
+noOnce :: Maybe Once
+noOnce = Nothing
+
+onceReadStatus :: Once -> IO OnceStatus
+onceReadStatus s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+onceReadRetval :: Once -> IO (Ptr ())
+onceReadRetval s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr ())
+    return val
+
+-- Enum OnceStatus
+
+data OnceStatus = 
+      OnceStatusNotcalled
+    | OnceStatusProgress
+    | OnceStatusReady
+    | AnotherOnceStatus Int
+    deriving (Show, Eq)
+
+instance Enum OnceStatus where
+    fromEnum OnceStatusNotcalled = 0
+    fromEnum OnceStatusProgress = 1
+    fromEnum OnceStatusReady = 2
+    fromEnum (AnotherOnceStatus k) = k
+
+    toEnum 0 = OnceStatusNotcalled
+    toEnum 1 = OnceStatusProgress
+    toEnum 2 = OnceStatusReady
+    toEnum k = AnotherOnceStatus k
+
+-- Enum OptionArg
+
+data OptionArg = 
+      OptionArgNone
+    | OptionArgString
+    | OptionArgInt
+    | OptionArgCallback
+    | OptionArgFilename
+    | OptionArgStringArray
+    | OptionArgFilenameArray
+    | OptionArgDouble
+    | OptionArgInt64
+    | AnotherOptionArg Int
+    deriving (Show, Eq)
+
+instance Enum OptionArg where
+    fromEnum OptionArgNone = 0
+    fromEnum OptionArgString = 1
+    fromEnum OptionArgInt = 2
+    fromEnum OptionArgCallback = 3
+    fromEnum OptionArgFilename = 4
+    fromEnum OptionArgStringArray = 5
+    fromEnum OptionArgFilenameArray = 6
+    fromEnum OptionArgDouble = 7
+    fromEnum OptionArgInt64 = 8
+    fromEnum (AnotherOptionArg k) = k
+
+    toEnum 0 = OptionArgNone
+    toEnum 1 = OptionArgString
+    toEnum 2 = OptionArgInt
+    toEnum 3 = OptionArgCallback
+    toEnum 4 = OptionArgFilename
+    toEnum 5 = OptionArgStringArray
+    toEnum 6 = OptionArgFilenameArray
+    toEnum 7 = OptionArgDouble
+    toEnum 8 = OptionArgInt64
+    toEnum k = AnotherOptionArg k
+
+-- callback OptionArgFunc
+optionArgFuncClosure :: OptionArgFunc -> IO Closure
+optionArgFuncClosure cb = newCClosure =<< mkOptionArgFunc wrapped
+    where wrapped = optionArgFuncWrapper Nothing cb
+
+type OptionArgFuncC =
+    CString ->
+    CString ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkOptionArgFunc :: OptionArgFuncC -> IO (FunPtr OptionArgFuncC)
+
+type OptionArgFunc =
+    T.Text ->
+    T.Text ->
+    Ptr () ->
+    IO Bool
+
+noOptionArgFunc :: Maybe OptionArgFunc
+noOptionArgFunc = Nothing
+
+optionArgFuncWrapper ::
+    Maybe (Ptr (FunPtr (OptionArgFuncC))) ->
+    OptionArgFunc ->
+    CString ->
+    CString ->
+    Ptr () ->
+    IO CInt
+optionArgFuncWrapper funptrptr _cb option_name value data_ = do
+    option_name' <- cstringToText option_name
+    value' <- cstringToText value
+    result <- _cb  option_name' value' data_
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- struct OptionContext
+newtype OptionContext = OptionContext (ForeignPtr OptionContext)
+noOptionContext :: Maybe OptionContext
+noOptionContext = Nothing
+
+-- method OptionContext::add_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_add_group" g_option_context_add_group :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    Ptr OptionGroup ->                      -- group : TInterface "GLib" "OptionGroup"
+    IO ()
+
+
+optionContextAddGroup ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    OptionGroup ->                          -- group
+    m ()
+optionContextAddGroup _obj group = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group' <- copyBoxed group
+    g_option_context_add_group _obj' group'
+    touchManagedPtr _obj
+    touchManagedPtr group
+    return ()
+
+-- method OptionContext::add_main_entries
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "entries", argType = TInterface "GLib" "OptionEntry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "translation_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "entries", argType = TInterface "GLib" "OptionEntry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "translation_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_add_main_entries" g_option_context_add_main_entries :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    Ptr OptionEntry ->                      -- entries : TInterface "GLib" "OptionEntry"
+    CString ->                              -- translation_domain : TBasicType TUTF8
+    IO ()
+
+
+optionContextAddMainEntries ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    OptionEntry ->                          -- entries
+    Maybe (T.Text) ->                       -- translation_domain
+    m ()
+optionContextAddMainEntries _obj entries translation_domain = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let entries' = unsafeManagedPtrGetPtr entries
+    maybeTranslation_domain <- case translation_domain of
+        Nothing -> return nullPtr
+        Just jTranslation_domain -> do
+            jTranslation_domain' <- textToCString jTranslation_domain
+            return jTranslation_domain'
+    g_option_context_add_main_entries _obj' entries' maybeTranslation_domain
+    touchManagedPtr _obj
+    touchManagedPtr entries
+    freeMem maybeTranslation_domain
+    return ()
+
+-- method OptionContext::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_free" g_option_context_free :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    IO ()
+
+
+optionContextFree ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    m ()
+optionContextFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_option_context_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method OptionContext::get_description
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_get_description" g_option_context_get_description :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    IO CString
+
+
+optionContextGetDescription ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    m T.Text
+optionContextGetDescription _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_option_context_get_description _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method OptionContext::get_help
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "main_help", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "main_help", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_get_help" g_option_context_get_help :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    CInt ->                                 -- main_help : TBasicType TBoolean
+    Ptr OptionGroup ->                      -- group : TInterface "GLib" "OptionGroup"
+    IO CString
+
+
+optionContextGetHelp ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    Bool ->                                 -- main_help
+    Maybe (OptionGroup) ->                  -- group
+    m T.Text
+optionContextGetHelp _obj main_help group = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let main_help' = (fromIntegral . fromEnum) main_help
+    maybeGroup <- case group of
+        Nothing -> return nullPtr
+        Just jGroup -> do
+            let jGroup' = unsafeManagedPtrGetPtr jGroup
+            return jGroup'
+    result <- g_option_context_get_help _obj' main_help' maybeGroup
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    whenJust group touchManagedPtr
+    return result'
+
+-- method OptionContext::get_help_enabled
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_get_help_enabled" g_option_context_get_help_enabled :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    IO CInt
+
+
+optionContextGetHelpEnabled ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    m Bool
+optionContextGetHelpEnabled _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_option_context_get_help_enabled _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method OptionContext::get_ignore_unknown_options
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_get_ignore_unknown_options" g_option_context_get_ignore_unknown_options :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    IO CInt
+
+
+optionContextGetIgnoreUnknownOptions ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    m Bool
+optionContextGetIgnoreUnknownOptions _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_option_context_get_ignore_unknown_options _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method OptionContext::get_main_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "OptionGroup"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_get_main_group" g_option_context_get_main_group :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    IO (Ptr OptionGroup)
+
+
+optionContextGetMainGroup ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    m OptionGroup
+optionContextGetMainGroup _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_option_context_get_main_group _obj'
+    result' <- (newBoxed OptionGroup) result
+    touchManagedPtr _obj
+    return result'
+
+-- method OptionContext::get_strict_posix
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_get_strict_posix" g_option_context_get_strict_posix :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    IO CInt
+
+
+optionContextGetStrictPosix ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    m Bool
+optionContextGetStrictPosix _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_option_context_get_strict_posix _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method OptionContext::get_summary
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_get_summary" g_option_context_get_summary :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    IO CString
+
+
+optionContextGetSummary ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    m T.Text
+optionContextGetSummary _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_option_context_get_summary _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- XXX Could not generate method OptionContext::parse
+-- Error was : Bad introspection data: "argument \"argc\" is not of nullable type, but it is marked as such."
+-- method OptionContext::parse_strv
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "arguments", argType = TCArray False (-1) (-1) (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "arguments", argType = TCArray False (-1) (-1) (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_option_context_parse_strv" g_option_context_parse_strv :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    Ptr (Ptr CString) ->                    -- arguments : TCArray False (-1) (-1) (TBasicType TUTF8)
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+optionContextParseStrv ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    Ptr CString ->                          -- arguments
+    m ((Ptr CString))
+optionContextParseStrv _obj arguments = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    arguments' <- allocMem :: IO (Ptr (Ptr CString))
+    poke arguments' arguments
+    onException (do
+        _ <- propagateGError $ g_option_context_parse_strv _obj' arguments'
+        arguments'' <- peek arguments'
+        touchManagedPtr _obj
+        freeMem arguments'
+        return arguments''
+     ) (do
+        freeMem arguments'
+     )
+
+-- method OptionContext::set_description
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_set_description" g_option_context_set_description :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    CString ->                              -- description : TBasicType TUTF8
+    IO ()
+
+
+optionContextSetDescription ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    Maybe (T.Text) ->                       -- description
+    m ()
+optionContextSetDescription _obj description = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeDescription <- case description of
+        Nothing -> return nullPtr
+        Just jDescription -> do
+            jDescription' <- textToCString jDescription
+            return jDescription'
+    g_option_context_set_description _obj' maybeDescription
+    touchManagedPtr _obj
+    freeMem maybeDescription
+    return ()
+
+-- method OptionContext::set_help_enabled
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "help_enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "help_enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_set_help_enabled" g_option_context_set_help_enabled :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    CInt ->                                 -- help_enabled : TBasicType TBoolean
+    IO ()
+
+
+optionContextSetHelpEnabled ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    Bool ->                                 -- help_enabled
+    m ()
+optionContextSetHelpEnabled _obj help_enabled = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let help_enabled' = (fromIntegral . fromEnum) help_enabled
+    g_option_context_set_help_enabled _obj' help_enabled'
+    touchManagedPtr _obj
+    return ()
+
+-- method OptionContext::set_ignore_unknown_options
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ignore_unknown", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ignore_unknown", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_set_ignore_unknown_options" g_option_context_set_ignore_unknown_options :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    CInt ->                                 -- ignore_unknown : TBasicType TBoolean
+    IO ()
+
+
+optionContextSetIgnoreUnknownOptions ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    Bool ->                                 -- ignore_unknown
+    m ()
+optionContextSetIgnoreUnknownOptions _obj ignore_unknown = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let ignore_unknown' = (fromIntegral . fromEnum) ignore_unknown
+    g_option_context_set_ignore_unknown_options _obj' ignore_unknown'
+    touchManagedPtr _obj
+    return ()
+
+-- method OptionContext::set_main_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_set_main_group" g_option_context_set_main_group :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    Ptr OptionGroup ->                      -- group : TInterface "GLib" "OptionGroup"
+    IO ()
+
+
+optionContextSetMainGroup ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    OptionGroup ->                          -- group
+    m ()
+optionContextSetMainGroup _obj group = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    group' <- copyBoxed group
+    g_option_context_set_main_group _obj' group'
+    touchManagedPtr _obj
+    touchManagedPtr group
+    return ()
+
+-- method OptionContext::set_strict_posix
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "strict_posix", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "strict_posix", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_set_strict_posix" g_option_context_set_strict_posix :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    CInt ->                                 -- strict_posix : TBasicType TBoolean
+    IO ()
+
+
+optionContextSetStrictPosix ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    Bool ->                                 -- strict_posix
+    m ()
+optionContextSetStrictPosix _obj strict_posix = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let strict_posix' = (fromIntegral . fromEnum) strict_posix
+    g_option_context_set_strict_posix _obj' strict_posix'
+    touchManagedPtr _obj
+    return ()
+
+-- method OptionContext::set_summary
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "summary", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "summary", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_set_summary" g_option_context_set_summary :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    CString ->                              -- summary : TBasicType TUTF8
+    IO ()
+
+
+optionContextSetSummary ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    Maybe (T.Text) ->                       -- summary
+    m ()
+optionContextSetSummary _obj summary = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeSummary <- case summary of
+        Nothing -> return nullPtr
+        Just jSummary -> do
+            jSummary' <- textToCString jSummary
+            return jSummary'
+    g_option_context_set_summary _obj' maybeSummary
+    touchManagedPtr _obj
+    freeMem maybeSummary
+    return ()
+
+-- method OptionContext::set_translate_func
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "GLib" "TranslateFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "GLib" "TranslateFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_set_translate_func" g_option_context_set_translate_func :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    FunPtr TranslateFuncC ->                -- func : TInterface "GLib" "TranslateFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- destroy_notify : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+optionContextSetTranslateFunc ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    Maybe (TranslateFunc) ->                -- func
+    m ()
+optionContextSetTranslateFunc _obj func = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeFunc <- case func of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jFunc -> do
+            jFunc' <- mkTranslateFunc (translateFuncWrapper Nothing jFunc)
+            return jFunc'
+    let data_ = castFunPtrToPtr maybeFunc
+    let destroy_notify = safeFreeFunPtrPtr
+    g_option_context_set_translate_func _obj' maybeFunc data_ destroy_notify
+    touchManagedPtr _obj
+    return ()
+
+-- method OptionContext::set_translation_domain
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_context_set_translation_domain" g_option_context_set_translation_domain :: 
+    Ptr OptionContext ->                    -- _obj : TInterface "GLib" "OptionContext"
+    CString ->                              -- domain : TBasicType TUTF8
+    IO ()
+
+
+optionContextSetTranslationDomain ::
+    (MonadIO m) =>
+    OptionContext ->                        -- _obj
+    T.Text ->                               -- domain
+    m ()
+optionContextSetTranslationDomain _obj domain = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    domain' <- textToCString domain
+    g_option_context_set_translation_domain _obj' domain'
+    touchManagedPtr _obj
+    freeMem domain'
+    return ()
+
+-- struct OptionEntry
+newtype OptionEntry = OptionEntry (ForeignPtr OptionEntry)
+noOptionEntry :: Maybe OptionEntry
+noOptionEntry = Nothing
+
+optionEntryReadLongName :: OptionEntry -> IO T.Text
+optionEntryReadLongName s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+optionEntryReadShortName :: OptionEntry -> IO Int8
+optionEntryReadShortName s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Int8
+    return val
+
+optionEntryReadFlags :: OptionEntry -> IO Int32
+optionEntryReadFlags s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 12) :: IO Int32
+    return val
+
+optionEntryReadArg :: OptionEntry -> IO OptionArg
+optionEntryReadArg s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+optionEntryReadArgData :: OptionEntry -> IO (Ptr ())
+optionEntryReadArgData s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr ())
+    return val
+
+optionEntryReadDescription :: OptionEntry -> IO T.Text
+optionEntryReadDescription s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+optionEntryReadArgDescription :: OptionEntry -> IO T.Text
+optionEntryReadArgDescription s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+-- Enum OptionError
+
+data OptionError = 
+      OptionErrorUnknownOption
+    | OptionErrorBadValue
+    | OptionErrorFailed
+    | AnotherOptionError Int
+    deriving (Show, Eq)
+
+instance Enum OptionError where
+    fromEnum OptionErrorUnknownOption = 0
+    fromEnum OptionErrorBadValue = 1
+    fromEnum OptionErrorFailed = 2
+    fromEnum (AnotherOptionError k) = k
+
+    toEnum 0 = OptionErrorUnknownOption
+    toEnum 1 = OptionErrorBadValue
+    toEnum 2 = OptionErrorFailed
+    toEnum k = AnotherOptionError k
+
+instance GErrorClass OptionError where
+    gerrorClassDomain _ = "g-option-context-error-quark"
+
+catchOptionError ::
+    IO a ->
+    (OptionError -> GErrorMessage -> IO a) ->
+    IO a
+catchOptionError = catchGErrorJustDomain
+
+handleOptionError ::
+    (OptionError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleOptionError = handleGErrorJustDomain
+
+-- callback OptionErrorFunc
+optionErrorFuncClosure :: OptionErrorFunc -> IO Closure
+optionErrorFuncClosure cb = newCClosure =<< mkOptionErrorFunc wrapped
+    where wrapped = optionErrorFuncWrapper Nothing cb
+
+type OptionErrorFuncC =
+    Ptr OptionContext ->
+    Ptr OptionGroup ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkOptionErrorFunc :: OptionErrorFuncC -> IO (FunPtr OptionErrorFuncC)
+
+type OptionErrorFunc =
+    OptionContext ->
+    OptionGroup ->
+    Ptr () ->
+    IO ()
+
+noOptionErrorFunc :: Maybe OptionErrorFunc
+noOptionErrorFunc = Nothing
+
+optionErrorFuncWrapper ::
+    Maybe (Ptr (FunPtr (OptionErrorFuncC))) ->
+    OptionErrorFunc ->
+    Ptr OptionContext ->
+    Ptr OptionGroup ->
+    Ptr () ->
+    IO ()
+optionErrorFuncWrapper funptrptr _cb context group data_ = do
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    context' <- (\x -> OptionContext <$> newForeignPtr_ x) context
+    group' <- (newBoxed OptionGroup) group
+    _cb  context' group' data_
+    maybeReleaseFunPtr funptrptr
+
+-- Flags OptionFlags
+
+data OptionFlags = 
+      OptionFlagsNone
+    | OptionFlagsHidden
+    | OptionFlagsInMain
+    | OptionFlagsReverse
+    | OptionFlagsNoArg
+    | OptionFlagsFilename
+    | OptionFlagsOptionalArg
+    | OptionFlagsNoalias
+    | AnotherOptionFlags Int
+    deriving (Show, Eq)
+
+instance Enum OptionFlags where
+    fromEnum OptionFlagsNone = 0
+    fromEnum OptionFlagsHidden = 1
+    fromEnum OptionFlagsInMain = 2
+    fromEnum OptionFlagsReverse = 4
+    fromEnum OptionFlagsNoArg = 8
+    fromEnum OptionFlagsFilename = 16
+    fromEnum OptionFlagsOptionalArg = 32
+    fromEnum OptionFlagsNoalias = 64
+    fromEnum (AnotherOptionFlags k) = k
+
+    toEnum 0 = OptionFlagsNone
+    toEnum 1 = OptionFlagsHidden
+    toEnum 2 = OptionFlagsInMain
+    toEnum 4 = OptionFlagsReverse
+    toEnum 8 = OptionFlagsNoArg
+    toEnum 16 = OptionFlagsFilename
+    toEnum 32 = OptionFlagsOptionalArg
+    toEnum 64 = OptionFlagsNoalias
+    toEnum k = AnotherOptionFlags k
+
+instance IsGFlag OptionFlags
+
+-- struct OptionGroup
+newtype OptionGroup = OptionGroup (ForeignPtr OptionGroup)
+noOptionGroup :: Maybe OptionGroup
+noOptionGroup = Nothing
+
+foreign import ccall "g_option_group_get_type" c_g_option_group_get_type :: 
+    IO GType
+
+instance BoxedObject OptionGroup where
+    boxedType _ = c_g_option_group_get_type
+
+-- method OptionGroup::new
+-- method type : Constructor
+-- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "help_description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "help_description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "OptionGroup"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_group_new" g_option_group_new :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- description : TBasicType TUTF8
+    CString ->                              -- help_description : TBasicType TUTF8
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- destroy : TInterface "GLib" "DestroyNotify"
+    IO (Ptr OptionGroup)
+
+
+optionGroupNew ::
+    (MonadIO m) =>
+    T.Text ->                               -- name
+    T.Text ->                               -- description
+    T.Text ->                               -- help_description
+    Maybe (Ptr ()) ->                       -- user_data
+    Maybe (DestroyNotify) ->                -- destroy
+    m OptionGroup
+optionGroupNew name description help_description user_data destroy = liftIO $ do
+    name' <- textToCString name
+    description' <- textToCString description
+    help_description' <- textToCString help_description
+    maybeUser_data <- case user_data of
+        Nothing -> return nullPtr
+        Just jUser_data -> do
+            return jUser_data
+    ptrdestroy <- callocBytes $ sizeOf (undefined :: FunPtr DestroyNotifyC)
+    maybeDestroy <- case destroy of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jDestroy -> do
+            jDestroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroy) jDestroy)
+            poke ptrdestroy jDestroy'
+            return jDestroy'
+    result <- g_option_group_new name' description' help_description' maybeUser_data maybeDestroy
+    result' <- (wrapBoxed OptionGroup) result
+    freeMem name'
+    freeMem description'
+    freeMem help_description'
+    return result'
+
+-- method OptionGroup::add_entries
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "entries", argType = TInterface "GLib" "OptionEntry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "entries", argType = TInterface "GLib" "OptionEntry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_group_add_entries" g_option_group_add_entries :: 
+    Ptr OptionGroup ->                      -- _obj : TInterface "GLib" "OptionGroup"
+    Ptr OptionEntry ->                      -- entries : TInterface "GLib" "OptionEntry"
+    IO ()
+
+
+optionGroupAddEntries ::
+    (MonadIO m) =>
+    OptionGroup ->                          -- _obj
+    OptionEntry ->                          -- entries
+    m ()
+optionGroupAddEntries _obj entries = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let entries' = unsafeManagedPtrGetPtr entries
+    g_option_group_add_entries _obj' entries'
+    touchManagedPtr _obj
+    touchManagedPtr entries
+    return ()
+
+-- method OptionGroup::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_group_free" g_option_group_free :: 
+    Ptr OptionGroup ->                      -- _obj : TInterface "GLib" "OptionGroup"
+    IO ()
+
+{-# DEPRECATED optionGroupFree ["(Since version 2.44)","Use g_option_group_unref() instead."]#-}
+optionGroupFree ::
+    (MonadIO m) =>
+    OptionGroup ->                          -- _obj
+    m ()
+optionGroupFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_option_group_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method OptionGroup::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "OptionGroup"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_group_ref" g_option_group_ref :: 
+    Ptr OptionGroup ->                      -- _obj : TInterface "GLib" "OptionGroup"
+    IO (Ptr OptionGroup)
+
+
+optionGroupRef ::
+    (MonadIO m) =>
+    OptionGroup ->                          -- _obj
+    m OptionGroup
+optionGroupRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_option_group_ref _obj'
+    result' <- (wrapBoxed OptionGroup) result
+    touchManagedPtr _obj
+    return result'
+
+-- method OptionGroup::set_translate_func
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "GLib" "TranslateFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "GLib" "TranslateFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_group_set_translate_func" g_option_group_set_translate_func :: 
+    Ptr OptionGroup ->                      -- _obj : TInterface "GLib" "OptionGroup"
+    FunPtr TranslateFuncC ->                -- func : TInterface "GLib" "TranslateFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- destroy_notify : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+optionGroupSetTranslateFunc ::
+    (MonadIO m) =>
+    OptionGroup ->                          -- _obj
+    Maybe (TranslateFunc) ->                -- func
+    m ()
+optionGroupSetTranslateFunc _obj func = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeFunc <- case func of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jFunc -> do
+            jFunc' <- mkTranslateFunc (translateFuncWrapper Nothing jFunc)
+            return jFunc'
+    let data_ = castFunPtrToPtr maybeFunc
+    let destroy_notify = safeFreeFunPtrPtr
+    g_option_group_set_translate_func _obj' maybeFunc data_ destroy_notify
+    touchManagedPtr _obj
+    return ()
+
+-- method OptionGroup::set_translation_domain
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_group_set_translation_domain" g_option_group_set_translation_domain :: 
+    Ptr OptionGroup ->                      -- _obj : TInterface "GLib" "OptionGroup"
+    CString ->                              -- domain : TBasicType TUTF8
+    IO ()
+
+
+optionGroupSetTranslationDomain ::
+    (MonadIO m) =>
+    OptionGroup ->                          -- _obj
+    T.Text ->                               -- domain
+    m ()
+optionGroupSetTranslationDomain _obj domain = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    domain' <- textToCString domain
+    g_option_group_set_translation_domain _obj' domain'
+    touchManagedPtr _obj
+    freeMem domain'
+    return ()
+
+-- method OptionGroup::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_group_unref" g_option_group_unref :: 
+    Ptr OptionGroup ->                      -- _obj : TInterface "GLib" "OptionGroup"
+    IO ()
+
+
+optionGroupUnref ::
+    (MonadIO m) =>
+    OptionGroup ->                          -- _obj
+    m ()
+optionGroupUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_option_group_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- callback OptionParseFunc
+optionParseFuncClosure :: OptionParseFunc -> IO Closure
+optionParseFuncClosure cb = newCClosure =<< mkOptionParseFunc wrapped
+    where wrapped = optionParseFuncWrapper Nothing cb
+
+type OptionParseFuncC =
+    Ptr OptionContext ->
+    Ptr OptionGroup ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkOptionParseFunc :: OptionParseFuncC -> IO (FunPtr OptionParseFuncC)
+
+type OptionParseFunc =
+    OptionContext ->
+    OptionGroup ->
+    Ptr () ->
+    IO Bool
+
+noOptionParseFunc :: Maybe OptionParseFunc
+noOptionParseFunc = Nothing
+
+optionParseFuncWrapper ::
+    Maybe (Ptr (FunPtr (OptionParseFuncC))) ->
+    OptionParseFunc ->
+    Ptr OptionContext ->
+    Ptr OptionGroup ->
+    Ptr () ->
+    IO CInt
+optionParseFuncWrapper funptrptr _cb context group data_ = do
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    context' <- (\x -> OptionContext <$> newForeignPtr_ x) context
+    group' <- (newBoxed OptionGroup) group
+    result <- _cb  context' group' data_
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- struct PatternSpec
+newtype PatternSpec = PatternSpec (ForeignPtr PatternSpec)
+noPatternSpec :: Maybe PatternSpec
+noPatternSpec = Nothing
+
+-- method PatternSpec::equal
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec2", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec2", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pattern_spec_equal" g_pattern_spec_equal :: 
+    Ptr PatternSpec ->                      -- _obj : TInterface "GLib" "PatternSpec"
+    Ptr PatternSpec ->                      -- pspec2 : TInterface "GLib" "PatternSpec"
+    IO CInt
+
+
+patternSpecEqual ::
+    (MonadIO m) =>
+    PatternSpec ->                          -- _obj
+    PatternSpec ->                          -- pspec2
+    m Bool
+patternSpecEqual _obj pspec2 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let pspec2' = unsafeManagedPtrGetPtr pspec2
+    result <- g_pattern_spec_equal _obj' pspec2'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr pspec2
+    return result'
+
+-- method PatternSpec::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pattern_spec_free" g_pattern_spec_free :: 
+    Ptr PatternSpec ->                      -- _obj : TInterface "GLib" "PatternSpec"
+    IO ()
+
+
+patternSpecFree ::
+    (MonadIO m) =>
+    PatternSpec ->                          -- _obj
+    m ()
+patternSpecFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_pattern_spec_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct PollFD
+newtype PollFD = PollFD (ForeignPtr PollFD)
+noPollFD :: Maybe PollFD
+noPollFD = Nothing
+
+foreign import ccall "g_pollfd_get_type" c_g_pollfd_get_type :: 
+    IO GType
+
+instance BoxedObject PollFD where
+    boxedType _ = c_g_pollfd_get_type
+
+pollFDReadFd :: PollFD -> IO Int32
+pollFDReadFd s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Int32
+    return val
+
+pollFDReadEvents :: PollFD -> IO Word16
+pollFDReadEvents s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 4) :: IO Word16
+    return val
+
+pollFDReadRevents :: PollFD -> IO Word16
+pollFDReadRevents s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 6) :: IO Word16
+    return val
+
+-- callback PollFunc
+pollFuncClosure :: PollFunc -> IO Closure
+pollFuncClosure cb = newCClosure =<< mkPollFunc wrapped
+    where wrapped = pollFuncWrapper Nothing cb
+
+type PollFuncC =
+    Ptr PollFD ->
+    Word32 ->
+    Int32 ->
+    IO Int32
+
+foreign import ccall "wrapper"
+    mkPollFunc :: PollFuncC -> IO (FunPtr PollFuncC)
+
+type PollFunc =
+    PollFD ->
+    Word32 ->
+    Int32 ->
+    IO Int32
+
+noPollFunc :: Maybe PollFunc
+noPollFunc = Nothing
+
+pollFuncWrapper ::
+    Maybe (Ptr (FunPtr (PollFuncC))) ->
+    PollFunc ->
+    Ptr PollFD ->
+    Word32 ->
+    Int32 ->
+    IO Int32
+pollFuncWrapper funptrptr _cb ufds nfsd timeout_ = do
+    ufds' <- (newBoxed PollFD) ufds
+    result <- _cb  ufds' nfsd timeout_
+    maybeReleaseFunPtr funptrptr
+    return result
+
+-- callback PrintFunc
+printFuncClosure :: PrintFunc -> IO Closure
+printFuncClosure cb = newCClosure =<< mkPrintFunc wrapped
+    where wrapped = printFuncWrapper Nothing cb
+
+type PrintFuncC =
+    CString ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkPrintFunc :: PrintFuncC -> IO (FunPtr PrintFuncC)
+
+type PrintFunc =
+    T.Text ->
+    IO ()
+
+noPrintFunc :: Maybe PrintFunc
+noPrintFunc = Nothing
+
+printFuncWrapper ::
+    Maybe (Ptr (FunPtr (PrintFuncC))) ->
+    PrintFunc ->
+    CString ->
+    IO ()
+printFuncWrapper funptrptr _cb string = do
+    string' <- cstringToText string
+    _cb  string'
+    maybeReleaseFunPtr funptrptr
+
+-- struct PtrArray
+newtype PtrArray = PtrArray (ForeignPtr PtrArray)
+noPtrArray :: Maybe PtrArray
+noPtrArray = Nothing
+
+foreign import ccall "g_ptr_array_get_type" c_g_ptr_array_get_type :: 
+    IO GType
+
+instance BoxedObject PtrArray where
+    boxedType _ = c_g_ptr_array_get_type
+
+ptrArrayReadPdata :: PtrArray -> IO (Ptr ())
+ptrArrayReadPdata s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
+    return val
+
+ptrArrayReadLen :: PtrArray -> IO Word32
+ptrArrayReadLen s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Word32
+    return val
+
+-- struct Queue
+newtype Queue = Queue (ForeignPtr Queue)
+noQueue :: Maybe Queue
+noQueue = Nothing
+
+queueReadHead :: Queue -> IO ([Ptr ()])
+queueReadHead s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr (GList (Ptr ())))
+    val' <- unpackGList val
+    return val'
+
+queueReadTail :: Queue -> IO ([Ptr ()])
+queueReadTail s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr (GList (Ptr ())))
+    val' <- unpackGList val
+    return val'
+
+queueReadLength :: Queue -> IO Word32
+queueReadLength s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Word32
+    return val
+
+-- method Queue::clear
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_clear" g_queue_clear :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    IO ()
+
+
+queueClear ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    m ()
+queueClear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_queue_clear _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Queue::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_free" g_queue_free :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    IO ()
+
+
+queueFree ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    m ()
+queueFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_queue_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Queue::free_full
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "free_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "free_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_free_full" g_queue_free_full :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    FunPtr DestroyNotifyC ->                -- free_func : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+queueFreeFull ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    DestroyNotify ->                        -- free_func
+    m ()
+queueFreeFull _obj free_func = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    ptrfree_func <- callocBytes $ sizeOf (undefined :: FunPtr DestroyNotifyC)
+    free_func' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrfree_func) free_func)
+    poke ptrfree_func free_func'
+    g_queue_free_full _obj' free_func'
+    touchManagedPtr _obj
+    return ()
+
+-- method Queue::get_length
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_get_length" g_queue_get_length :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    IO Word32
+
+
+queueGetLength ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    m Word32
+queueGetLength _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_queue_get_length _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Queue::index
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_index" g_queue_index :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO Int32
+
+
+queueIndex ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    Ptr () ->                               -- data
+    m Int32
+queueIndex _obj data_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_queue_index _obj' data_
+    touchManagedPtr _obj
+    return result
+
+-- method Queue::init
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_init" g_queue_init :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    IO ()
+
+
+queueInit ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    m ()
+queueInit _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_queue_init _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Queue::is_empty
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_is_empty" g_queue_is_empty :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    IO CInt
+
+
+queueIsEmpty ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    m Bool
+queueIsEmpty _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_queue_is_empty _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Queue::push_head
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_push_head" g_queue_push_head :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO ()
+
+
+queuePushHead ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    Ptr () ->                               -- data
+    m ()
+queuePushHead _obj data_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_queue_push_head _obj' data_
+    touchManagedPtr _obj
+    return ()
+
+-- method Queue::push_nth
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_push_nth" g_queue_push_nth :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    Ptr () ->                               -- data : TBasicType TVoid
+    Int32 ->                                -- n : TBasicType TInt32
+    IO ()
+
+
+queuePushNth ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    Ptr () ->                               -- data
+    Int32 ->                                -- n
+    m ()
+queuePushNth _obj data_ n = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_queue_push_nth _obj' data_ n
+    touchManagedPtr _obj
+    return ()
+
+-- method Queue::push_tail
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_push_tail" g_queue_push_tail :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO ()
+
+
+queuePushTail ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    Ptr () ->                               -- data
+    m ()
+queuePushTail _obj data_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_queue_push_tail _obj' data_
+    touchManagedPtr _obj
+    return ()
+
+-- method Queue::remove
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_remove" g_queue_remove :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO CInt
+
+
+queueRemove ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    Ptr () ->                               -- data
+    m Bool
+queueRemove _obj data_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_queue_remove _obj' data_
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Queue::remove_all
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_remove_all" g_queue_remove_all :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO Word32
+
+
+queueRemoveAll ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    Ptr () ->                               -- data
+    m Word32
+queueRemoveAll _obj data_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_queue_remove_all _obj' data_
+    touchManagedPtr _obj
+    return result
+
+-- method Queue::reverse
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_queue_reverse" g_queue_reverse :: 
+    Ptr Queue ->                            -- _obj : TInterface "GLib" "Queue"
+    IO ()
+
+
+queueReverse ::
+    (MonadIO m) =>
+    Queue ->                                -- _obj
+    m ()
+queueReverse _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_queue_reverse _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct RWLock
+newtype RWLock = RWLock (ForeignPtr RWLock)
+noRWLock :: Maybe RWLock
+noRWLock = Nothing
+
+-- method RWLock::clear
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rw_lock_clear" g_rw_lock_clear :: 
+    Ptr RWLock ->                           -- _obj : TInterface "GLib" "RWLock"
+    IO ()
+
+
+rWLockClear ::
+    (MonadIO m) =>
+    RWLock ->                               -- _obj
+    m ()
+rWLockClear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rw_lock_clear _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method RWLock::init
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rw_lock_init" g_rw_lock_init :: 
+    Ptr RWLock ->                           -- _obj : TInterface "GLib" "RWLock"
+    IO ()
+
+
+rWLockInit ::
+    (MonadIO m) =>
+    RWLock ->                               -- _obj
+    m ()
+rWLockInit _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rw_lock_init _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method RWLock::reader_lock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rw_lock_reader_lock" g_rw_lock_reader_lock :: 
+    Ptr RWLock ->                           -- _obj : TInterface "GLib" "RWLock"
+    IO ()
+
+
+rWLockReaderLock ::
+    (MonadIO m) =>
+    RWLock ->                               -- _obj
+    m ()
+rWLockReaderLock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rw_lock_reader_lock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method RWLock::reader_trylock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rw_lock_reader_trylock" g_rw_lock_reader_trylock :: 
+    Ptr RWLock ->                           -- _obj : TInterface "GLib" "RWLock"
+    IO CInt
+
+
+rWLockReaderTrylock ::
+    (MonadIO m) =>
+    RWLock ->                               -- _obj
+    m Bool
+rWLockReaderTrylock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_rw_lock_reader_trylock _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method RWLock::reader_unlock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rw_lock_reader_unlock" g_rw_lock_reader_unlock :: 
+    Ptr RWLock ->                           -- _obj : TInterface "GLib" "RWLock"
+    IO ()
+
+
+rWLockReaderUnlock ::
+    (MonadIO m) =>
+    RWLock ->                               -- _obj
+    m ()
+rWLockReaderUnlock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rw_lock_reader_unlock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method RWLock::writer_lock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rw_lock_writer_lock" g_rw_lock_writer_lock :: 
+    Ptr RWLock ->                           -- _obj : TInterface "GLib" "RWLock"
+    IO ()
+
+
+rWLockWriterLock ::
+    (MonadIO m) =>
+    RWLock ->                               -- _obj
+    m ()
+rWLockWriterLock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rw_lock_writer_lock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method RWLock::writer_trylock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rw_lock_writer_trylock" g_rw_lock_writer_trylock :: 
+    Ptr RWLock ->                           -- _obj : TInterface "GLib" "RWLock"
+    IO CInt
+
+
+rWLockWriterTrylock ::
+    (MonadIO m) =>
+    RWLock ->                               -- _obj
+    m Bool
+rWLockWriterTrylock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_rw_lock_writer_trylock _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method RWLock::writer_unlock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rw_lock_writer_unlock" g_rw_lock_writer_unlock :: 
+    Ptr RWLock ->                           -- _obj : TInterface "GLib" "RWLock"
+    IO ()
+
+
+rWLockWriterUnlock ::
+    (MonadIO m) =>
+    RWLock ->                               -- _obj
+    m ()
+rWLockWriterUnlock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rw_lock_writer_unlock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct Rand
+newtype Rand = Rand (ForeignPtr Rand)
+noRand :: Maybe Rand
+noRand = Nothing
+
+-- method Rand::double
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rand_double" g_rand_double :: 
+    Ptr Rand ->                             -- _obj : TInterface "GLib" "Rand"
+    IO CDouble
+
+
+randDouble ::
+    (MonadIO m) =>
+    Rand ->                                 -- _obj
+    m Double
+randDouble _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_rand_double _obj'
+    let result' = realToFrac result
+    touchManagedPtr _obj
+    return result'
+
+-- method Rand::double_range
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "begin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "begin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rand_double_range" g_rand_double_range :: 
+    Ptr Rand ->                             -- _obj : TInterface "GLib" "Rand"
+    CDouble ->                              -- begin : TBasicType TDouble
+    CDouble ->                              -- end : TBasicType TDouble
+    IO CDouble
+
+
+randDoubleRange ::
+    (MonadIO m) =>
+    Rand ->                                 -- _obj
+    Double ->                               -- begin
+    Double ->                               -- end
+    m Double
+randDoubleRange _obj begin end = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let begin' = realToFrac begin
+    let end' = realToFrac end
+    result <- g_rand_double_range _obj' begin' end'
+    let result' = realToFrac result
+    touchManagedPtr _obj
+    return result'
+
+-- method Rand::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rand_free" g_rand_free :: 
+    Ptr Rand ->                             -- _obj : TInterface "GLib" "Rand"
+    IO ()
+
+
+randFree ::
+    (MonadIO m) =>
+    Rand ->                                 -- _obj
+    m ()
+randFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rand_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Rand::int
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rand_int" g_rand_int :: 
+    Ptr Rand ->                             -- _obj : TInterface "GLib" "Rand"
+    IO Word32
+
+
+randInt ::
+    (MonadIO m) =>
+    Rand ->                                 -- _obj
+    m Word32
+randInt _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_rand_int _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Rand::int_range
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rand_int_range" g_rand_int_range :: 
+    Ptr Rand ->                             -- _obj : TInterface "GLib" "Rand"
+    Int32 ->                                -- begin : TBasicType TInt32
+    Int32 ->                                -- end : TBasicType TInt32
+    IO Int32
+
+
+randIntRange ::
+    (MonadIO m) =>
+    Rand ->                                 -- _obj
+    Int32 ->                                -- begin
+    Int32 ->                                -- end
+    m Int32
+randIntRange _obj begin end = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_rand_int_range _obj' begin end
+    touchManagedPtr _obj
+    return result
+
+-- method Rand::set_seed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rand_set_seed" g_rand_set_seed :: 
+    Ptr Rand ->                             -- _obj : TInterface "GLib" "Rand"
+    Word32 ->                               -- seed : TBasicType TUInt32
+    IO ()
+
+
+randSetSeed ::
+    (MonadIO m) =>
+    Rand ->                                 -- _obj
+    Word32 ->                               -- seed
+    m ()
+randSetSeed _obj seed = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rand_set_seed _obj' seed
+    touchManagedPtr _obj
+    return ()
+
+-- method Rand::set_seed_array
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seed_length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "seed_length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rand_set_seed_array" g_rand_set_seed_array :: 
+    Ptr Rand ->                             -- _obj : TInterface "GLib" "Rand"
+    Word32 ->                               -- seed : TBasicType TUInt32
+    Word32 ->                               -- seed_length : TBasicType TUInt32
+    IO ()
+
+
+randSetSeedArray ::
+    (MonadIO m) =>
+    Rand ->                                 -- _obj
+    Word32 ->                               -- seed
+    Word32 ->                               -- seed_length
+    m ()
+randSetSeedArray _obj seed seed_length = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rand_set_seed_array _obj' seed seed_length
+    touchManagedPtr _obj
+    return ()
+
+-- struct RecMutex
+newtype RecMutex = RecMutex (ForeignPtr RecMutex)
+noRecMutex :: Maybe RecMutex
+noRecMutex = Nothing
+
+-- method RecMutex::clear
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rec_mutex_clear" g_rec_mutex_clear :: 
+    Ptr RecMutex ->                         -- _obj : TInterface "GLib" "RecMutex"
+    IO ()
+
+
+recMutexClear ::
+    (MonadIO m) =>
+    RecMutex ->                             -- _obj
+    m ()
+recMutexClear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rec_mutex_clear _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method RecMutex::init
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rec_mutex_init" g_rec_mutex_init :: 
+    Ptr RecMutex ->                         -- _obj : TInterface "GLib" "RecMutex"
+    IO ()
+
+
+recMutexInit ::
+    (MonadIO m) =>
+    RecMutex ->                             -- _obj
+    m ()
+recMutexInit _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rec_mutex_init _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method RecMutex::lock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rec_mutex_lock" g_rec_mutex_lock :: 
+    Ptr RecMutex ->                         -- _obj : TInterface "GLib" "RecMutex"
+    IO ()
+
+
+recMutexLock ::
+    (MonadIO m) =>
+    RecMutex ->                             -- _obj
+    m ()
+recMutexLock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rec_mutex_lock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method RecMutex::trylock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rec_mutex_trylock" g_rec_mutex_trylock :: 
+    Ptr RecMutex ->                         -- _obj : TInterface "GLib" "RecMutex"
+    IO CInt
+
+
+recMutexTrylock ::
+    (MonadIO m) =>
+    RecMutex ->                             -- _obj
+    m Bool
+recMutexTrylock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_rec_mutex_trylock _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method RecMutex::unlock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rec_mutex_unlock" g_rec_mutex_unlock :: 
+    Ptr RecMutex ->                         -- _obj : TInterface "GLib" "RecMutex"
+    IO ()
+
+
+recMutexUnlock ::
+    (MonadIO m) =>
+    RecMutex ->                             -- _obj
+    m ()
+recMutexUnlock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_rec_mutex_unlock _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct Regex
+newtype Regex = Regex (ForeignPtr Regex)
+noRegex :: Maybe Regex
+noRegex = Nothing
+
+foreign import ccall "g_regex_get_type" c_g_regex_get_type :: 
+    IO GType
+
+instance BoxedObject Regex where
+    boxedType _ = c_g_regex_get_type
+
+-- method Regex::new
+-- method type : Constructor
+-- Args : [Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Regex"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_regex_new" g_regex_new :: 
+    CString ->                              -- pattern : TBasicType TUTF8
+    CUInt ->                                -- compile_options : TInterface "GLib" "RegexCompileFlags"
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr Regex)
+
+
+regexNew ::
+    (MonadIO m) =>
+    T.Text ->                               -- pattern
+    [RegexCompileFlags] ->                  -- compile_options
+    [RegexMatchFlags] ->                    -- match_options
+    m Regex
+regexNew pattern compile_options match_options = liftIO $ do
+    pattern' <- textToCString pattern
+    let compile_options' = gflagsToWord compile_options
+    let match_options' = gflagsToWord match_options
+    onException (do
+        result <- propagateGError $ g_regex_new pattern' compile_options' match_options'
+        result' <- (wrapBoxed Regex) result
+        freeMem pattern'
+        return result'
+     ) (do
+        freeMem pattern'
+     )
+
+-- method Regex::get_capture_count
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_get_capture_count" g_regex_get_capture_count :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    IO Int32
+
+
+regexGetCaptureCount ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    m Int32
+regexGetCaptureCount _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_regex_get_capture_count _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Regex::get_compile_flags
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "RegexCompileFlags"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_get_compile_flags" g_regex_get_compile_flags :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    IO CUInt
+
+
+regexGetCompileFlags ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    m [RegexCompileFlags]
+regexGetCompileFlags _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_regex_get_compile_flags _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method Regex::get_has_cr_or_lf
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_get_has_cr_or_lf" g_regex_get_has_cr_or_lf :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    IO CInt
+
+
+regexGetHasCrOrLf ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    m Bool
+regexGetHasCrOrLf _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_regex_get_has_cr_or_lf _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Regex::get_match_flags
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "RegexMatchFlags"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_get_match_flags" g_regex_get_match_flags :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    IO CUInt
+
+
+regexGetMatchFlags ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    m [RegexMatchFlags]
+regexGetMatchFlags _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_regex_get_match_flags _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method Regex::get_max_backref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_get_max_backref" g_regex_get_max_backref :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    IO Int32
+
+
+regexGetMaxBackref ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    m Int32
+regexGetMaxBackref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_regex_get_max_backref _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Regex::get_max_lookbehind
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_get_max_lookbehind" g_regex_get_max_lookbehind :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    IO Int32
+
+
+regexGetMaxLookbehind ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    m Int32
+regexGetMaxLookbehind _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_regex_get_max_lookbehind _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Regex::get_pattern
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_get_pattern" g_regex_get_pattern :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    IO CString
+
+
+regexGetPattern ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    m T.Text
+regexGetPattern _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_regex_get_pattern _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method Regex::get_string_number
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_get_string_number" g_regex_get_string_number :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    CString ->                              -- name : TBasicType TUTF8
+    IO Int32
+
+
+regexGetStringNumber ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    T.Text ->                               -- name
+    m Int32
+regexGetStringNumber _obj name = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    name' <- textToCString name
+    result <- g_regex_get_string_number _obj' name'
+    touchManagedPtr _obj
+    freeMem name'
+    return result
+
+-- method Regex::match
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_match" g_regex_match :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    CString ->                              -- string : TBasicType TUTF8
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    Ptr (Ptr MatchInfo) ->                  -- match_info : TInterface "GLib" "MatchInfo"
+    IO CInt
+
+
+regexMatch ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    T.Text ->                               -- string
+    [RegexMatchFlags] ->                    -- match_options
+    m (Bool,MatchInfo)
+regexMatch _obj string match_options = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- textToCString string
+    let match_options' = gflagsToWord match_options
+    match_info <- allocMem :: IO (Ptr (Ptr MatchInfo))
+    result <- g_regex_match _obj' string' match_options' match_info
+    let result' = (/= 0) result
+    match_info' <- peek match_info
+    match_info'' <- (wrapBoxed MatchInfo) match_info'
+    touchManagedPtr _obj
+    freeMem string'
+    freeMem match_info
+    return (result', match_info'')
+
+-- method Regex::match_all
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_match_all" g_regex_match_all :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    CString ->                              -- string : TBasicType TUTF8
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    Ptr (Ptr MatchInfo) ->                  -- match_info : TInterface "GLib" "MatchInfo"
+    IO CInt
+
+
+regexMatchAll ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    T.Text ->                               -- string
+    [RegexMatchFlags] ->                    -- match_options
+    m (Bool,MatchInfo)
+regexMatchAll _obj string match_options = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- textToCString string
+    let match_options' = gflagsToWord match_options
+    match_info <- allocMem :: IO (Ptr (Ptr MatchInfo))
+    result <- g_regex_match_all _obj' string' match_options' match_info
+    let result' = (/= 0) result
+    match_info' <- peek match_info
+    match_info'' <- (wrapBoxed MatchInfo) match_info'
+    touchManagedPtr _obj
+    freeMem string'
+    freeMem match_info
+    return (result', match_info'')
+
+-- method Regex::match_all_full
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_regex_match_all_full" g_regex_match_all_full :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    Ptr CString ->                          -- string : TCArray False (-1) 2 (TBasicType TUTF8)
+    Int64 ->                                -- string_len : TBasicType TInt64
+    Int32 ->                                -- start_position : TBasicType TInt32
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    Ptr (Ptr MatchInfo) ->                  -- match_info : TInterface "GLib" "MatchInfo"
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+regexMatchAllFull ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    [T.Text] ->                             -- string
+    Int32 ->                                -- start_position
+    [RegexMatchFlags] ->                    -- match_options
+    m (MatchInfo)
+regexMatchAllFull _obj string start_position match_options = liftIO $ do
+    let string_len = fromIntegral $ length string
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- packUTF8CArray string
+    let match_options' = gflagsToWord match_options
+    match_info <- allocMem :: IO (Ptr (Ptr MatchInfo))
+    onException (do
+        _ <- propagateGError $ g_regex_match_all_full _obj' string' string_len start_position match_options' match_info
+        match_info' <- peek match_info
+        match_info'' <- (wrapBoxed MatchInfo) match_info'
+        touchManagedPtr _obj
+        (mapCArrayWithLength string_len) freeMem string'
+        freeMem string'
+        freeMem match_info
+        return match_info''
+     ) (do
+        (mapCArrayWithLength string_len) freeMem string'
+        freeMem string'
+        freeMem match_info
+     )
+
+-- method Regex::match_full
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_regex_match_full" g_regex_match_full :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    Ptr CString ->                          -- string : TCArray False (-1) 2 (TBasicType TUTF8)
+    Int64 ->                                -- string_len : TBasicType TInt64
+    Int32 ->                                -- start_position : TBasicType TInt32
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    Ptr (Ptr MatchInfo) ->                  -- match_info : TInterface "GLib" "MatchInfo"
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+regexMatchFull ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    [T.Text] ->                             -- string
+    Int32 ->                                -- start_position
+    [RegexMatchFlags] ->                    -- match_options
+    m (MatchInfo)
+regexMatchFull _obj string start_position match_options = liftIO $ do
+    let string_len = fromIntegral $ length string
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- packUTF8CArray string
+    let match_options' = gflagsToWord match_options
+    match_info <- allocMem :: IO (Ptr (Ptr MatchInfo))
+    onException (do
+        _ <- propagateGError $ g_regex_match_full _obj' string' string_len start_position match_options' match_info
+        match_info' <- peek match_info
+        match_info'' <- (wrapBoxed MatchInfo) match_info'
+        touchManagedPtr _obj
+        (mapCArrayWithLength string_len) freeMem string'
+        freeMem string'
+        freeMem match_info
+        return match_info''
+     ) (do
+        (mapCArrayWithLength string_len) freeMem string'
+        freeMem string'
+        freeMem match_info
+     )
+
+-- method Regex::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Regex"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_ref" g_regex_ref :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    IO (Ptr Regex)
+
+
+regexRef ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    m Regex
+regexRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_regex_ref _obj'
+    result' <- (wrapBoxed Regex) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Regex::replace
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_regex_replace" g_regex_replace :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    Ptr CString ->                          -- string : TCArray False (-1) 2 (TBasicType TUTF8)
+    Int64 ->                                -- string_len : TBasicType TInt64
+    Int32 ->                                -- start_position : TBasicType TInt32
+    CString ->                              -- replacement : TBasicType TUTF8
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+regexReplace ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    [T.Text] ->                             -- string
+    Int32 ->                                -- start_position
+    T.Text ->                               -- replacement
+    [RegexMatchFlags] ->                    -- match_options
+    m T.Text
+regexReplace _obj string start_position replacement match_options = liftIO $ do
+    let string_len = fromIntegral $ length string
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- packUTF8CArray string
+    replacement' <- textToCString replacement
+    let match_options' = gflagsToWord match_options
+    onException (do
+        result <- propagateGError $ g_regex_replace _obj' string' string_len start_position replacement' match_options'
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        (mapCArrayWithLength string_len) freeMem string'
+        freeMem string'
+        freeMem replacement'
+        return result'
+     ) (do
+        (mapCArrayWithLength string_len) freeMem string'
+        freeMem string'
+        freeMem replacement'
+     )
+
+-- method Regex::replace_literal
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_regex_replace_literal" g_regex_replace_literal :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    Ptr CString ->                          -- string : TCArray False (-1) 2 (TBasicType TUTF8)
+    Int64 ->                                -- string_len : TBasicType TInt64
+    Int32 ->                                -- start_position : TBasicType TInt32
+    CString ->                              -- replacement : TBasicType TUTF8
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+regexReplaceLiteral ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    [T.Text] ->                             -- string
+    Int32 ->                                -- start_position
+    T.Text ->                               -- replacement
+    [RegexMatchFlags] ->                    -- match_options
+    m T.Text
+regexReplaceLiteral _obj string start_position replacement match_options = liftIO $ do
+    let string_len = fromIntegral $ length string
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- packUTF8CArray string
+    replacement' <- textToCString replacement
+    let match_options' = gflagsToWord match_options
+    onException (do
+        result <- propagateGError $ g_regex_replace_literal _obj' string' string_len start_position replacement' match_options'
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        (mapCArrayWithLength string_len) freeMem string'
+        freeMem string'
+        freeMem replacement'
+        return result'
+     ) (do
+        (mapCArrayWithLength string_len) freeMem string'
+        freeMem string'
+        freeMem replacement'
+     )
+
+-- method Regex::split
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_split" g_regex_split :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    CString ->                              -- string : TBasicType TUTF8
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    IO (Ptr CString)
+
+
+regexSplit ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    T.Text ->                               -- string
+    [RegexMatchFlags] ->                    -- match_options
+    m [T.Text]
+regexSplit _obj string match_options = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- textToCString string
+    let match_options' = gflagsToWord match_options
+    result <- g_regex_split _obj' string' match_options'
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    touchManagedPtr _obj
+    freeMem string'
+    return result'
+
+-- method Regex::split_full
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_tokens", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_tokens", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_regex_split_full" g_regex_split_full :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    Ptr CString ->                          -- string : TCArray False (-1) 2 (TBasicType TUTF8)
+    Int64 ->                                -- string_len : TBasicType TInt64
+    Int32 ->                                -- start_position : TBasicType TInt32
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    Int32 ->                                -- max_tokens : TBasicType TInt32
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr CString)
+
+
+regexSplitFull ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    [T.Text] ->                             -- string
+    Int32 ->                                -- start_position
+    [RegexMatchFlags] ->                    -- match_options
+    Int32 ->                                -- max_tokens
+    m [T.Text]
+regexSplitFull _obj string start_position match_options max_tokens = liftIO $ do
+    let string_len = fromIntegral $ length string
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- packUTF8CArray string
+    let match_options' = gflagsToWord match_options
+    onException (do
+        result <- propagateGError $ g_regex_split_full _obj' string' string_len start_position match_options' max_tokens
+        result' <- unpackZeroTerminatedUTF8CArray result
+        mapZeroTerminatedCArray freeMem result
+        freeMem result
+        touchManagedPtr _obj
+        (mapCArrayWithLength string_len) freeMem string'
+        freeMem string'
+        return result'
+     ) (do
+        (mapCArrayWithLength string_len) freeMem string'
+        freeMem string'
+     )
+
+-- method Regex::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_unref" g_regex_unref :: 
+    Ptr Regex ->                            -- _obj : TInterface "GLib" "Regex"
+    IO ()
+
+
+regexUnref ::
+    (MonadIO m) =>
+    Regex ->                                -- _obj
+    m ()
+regexUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_regex_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Flags RegexCompileFlags
+
+data RegexCompileFlags = 
+      RegexCompileFlagsCaseless
+    | RegexCompileFlagsMultiline
+    | RegexCompileFlagsDotall
+    | RegexCompileFlagsExtended
+    | RegexCompileFlagsAnchored
+    | RegexCompileFlagsDollarEndonly
+    | RegexCompileFlagsUngreedy
+    | RegexCompileFlagsRaw
+    | RegexCompileFlagsNoAutoCapture
+    | RegexCompileFlagsOptimize
+    | RegexCompileFlagsFirstline
+    | RegexCompileFlagsDupnames
+    | RegexCompileFlagsNewlineCr
+    | RegexCompileFlagsNewlineLf
+    | RegexCompileFlagsNewlineCrlf
+    | RegexCompileFlagsNewlineAnycrlf
+    | RegexCompileFlagsBsrAnycrlf
+    | RegexCompileFlagsJavascriptCompat
+    | AnotherRegexCompileFlags Int
+    deriving (Show, Eq)
+
+instance Enum RegexCompileFlags where
+    fromEnum RegexCompileFlagsCaseless = 1
+    fromEnum RegexCompileFlagsMultiline = 2
+    fromEnum RegexCompileFlagsDotall = 4
+    fromEnum RegexCompileFlagsExtended = 8
+    fromEnum RegexCompileFlagsAnchored = 16
+    fromEnum RegexCompileFlagsDollarEndonly = 32
+    fromEnum RegexCompileFlagsUngreedy = 512
+    fromEnum RegexCompileFlagsRaw = 2048
+    fromEnum RegexCompileFlagsNoAutoCapture = 4096
+    fromEnum RegexCompileFlagsOptimize = 8192
+    fromEnum RegexCompileFlagsFirstline = 262144
+    fromEnum RegexCompileFlagsDupnames = 524288
+    fromEnum RegexCompileFlagsNewlineCr = 1048576
+    fromEnum RegexCompileFlagsNewlineLf = 2097152
+    fromEnum RegexCompileFlagsNewlineCrlf = 3145728
+    fromEnum RegexCompileFlagsNewlineAnycrlf = 5242880
+    fromEnum RegexCompileFlagsBsrAnycrlf = 8388608
+    fromEnum RegexCompileFlagsJavascriptCompat = 33554432
+    fromEnum (AnotherRegexCompileFlags k) = k
+
+    toEnum 1 = RegexCompileFlagsCaseless
+    toEnum 2 = RegexCompileFlagsMultiline
+    toEnum 4 = RegexCompileFlagsDotall
+    toEnum 8 = RegexCompileFlagsExtended
+    toEnum 16 = RegexCompileFlagsAnchored
+    toEnum 32 = RegexCompileFlagsDollarEndonly
+    toEnum 512 = RegexCompileFlagsUngreedy
+    toEnum 2048 = RegexCompileFlagsRaw
+    toEnum 4096 = RegexCompileFlagsNoAutoCapture
+    toEnum 8192 = RegexCompileFlagsOptimize
+    toEnum 262144 = RegexCompileFlagsFirstline
+    toEnum 524288 = RegexCompileFlagsDupnames
+    toEnum 1048576 = RegexCompileFlagsNewlineCr
+    toEnum 2097152 = RegexCompileFlagsNewlineLf
+    toEnum 3145728 = RegexCompileFlagsNewlineCrlf
+    toEnum 5242880 = RegexCompileFlagsNewlineAnycrlf
+    toEnum 8388608 = RegexCompileFlagsBsrAnycrlf
+    toEnum 33554432 = RegexCompileFlagsJavascriptCompat
+    toEnum k = AnotherRegexCompileFlags k
+
+instance IsGFlag RegexCompileFlags
+
+-- Enum RegexError
+
+data RegexError = 
+      RegexErrorCompile
+    | RegexErrorOptimize
+    | RegexErrorReplace
+    | RegexErrorMatch
+    | RegexErrorInternal
+    | RegexErrorStrayBackslash
+    | RegexErrorMissingControlChar
+    | RegexErrorUnrecognizedEscape
+    | RegexErrorQuantifiersOutOfOrder
+    | RegexErrorQuantifierTooBig
+    | RegexErrorUnterminatedCharacterClass
+    | RegexErrorInvalidEscapeInCharacterClass
+    | RegexErrorRangeOutOfOrder
+    | RegexErrorNothingToRepeat
+    | RegexErrorUnrecognizedCharacter
+    | RegexErrorPosixNamedClassOutsideClass
+    | RegexErrorUnmatchedParenthesis
+    | RegexErrorInexistentSubpatternReference
+    | RegexErrorUnterminatedComment
+    | RegexErrorExpressionTooLarge
+    | RegexErrorMemoryError
+    | RegexErrorVariableLengthLookbehind
+    | RegexErrorMalformedCondition
+    | RegexErrorTooManyConditionalBranches
+    | RegexErrorAssertionExpected
+    | RegexErrorUnknownPosixClassName
+    | RegexErrorPosixCollatingElementsNotSupported
+    | RegexErrorHexCodeTooLarge
+    | RegexErrorInvalidCondition
+    | RegexErrorSingleByteMatchInLookbehind
+    | RegexErrorInfiniteLoop
+    | RegexErrorMissingSubpatternNameTerminator
+    | RegexErrorDuplicateSubpatternName
+    | RegexErrorMalformedProperty
+    | RegexErrorUnknownProperty
+    | RegexErrorSubpatternNameTooLong
+    | RegexErrorTooManySubpatterns
+    | RegexErrorInvalidOctalValue
+    | RegexErrorTooManyBranchesInDefine
+    | RegexErrorDefineRepetion
+    | RegexErrorInconsistentNewlineOptions
+    | RegexErrorMissingBackReference
+    | RegexErrorInvalidRelativeReference
+    | RegexErrorBacktrackingControlVerbArgumentForbidden
+    | RegexErrorUnknownBacktrackingControlVerb
+    | RegexErrorNumberTooBig
+    | RegexErrorMissingSubpatternName
+    | RegexErrorMissingDigit
+    | RegexErrorInvalidDataCharacter
+    | RegexErrorExtraSubpatternName
+    | RegexErrorBacktrackingControlVerbArgumentRequired
+    | RegexErrorInvalidControlChar
+    | RegexErrorMissingName
+    | RegexErrorNotSupportedInClass
+    | RegexErrorTooManyForwardReferences
+    | RegexErrorNameTooLong
+    | RegexErrorCharacterValueTooLarge
+    | AnotherRegexError Int
+    deriving (Show, Eq)
+
+instance Enum RegexError where
+    fromEnum RegexErrorCompile = 0
+    fromEnum RegexErrorOptimize = 1
+    fromEnum RegexErrorReplace = 2
+    fromEnum RegexErrorMatch = 3
+    fromEnum RegexErrorInternal = 4
+    fromEnum RegexErrorStrayBackslash = 101
+    fromEnum RegexErrorMissingControlChar = 102
+    fromEnum RegexErrorUnrecognizedEscape = 103
+    fromEnum RegexErrorQuantifiersOutOfOrder = 104
+    fromEnum RegexErrorQuantifierTooBig = 105
+    fromEnum RegexErrorUnterminatedCharacterClass = 106
+    fromEnum RegexErrorInvalidEscapeInCharacterClass = 107
+    fromEnum RegexErrorRangeOutOfOrder = 108
+    fromEnum RegexErrorNothingToRepeat = 109
+    fromEnum RegexErrorUnrecognizedCharacter = 112
+    fromEnum RegexErrorPosixNamedClassOutsideClass = 113
+    fromEnum RegexErrorUnmatchedParenthesis = 114
+    fromEnum RegexErrorInexistentSubpatternReference = 115
+    fromEnum RegexErrorUnterminatedComment = 118
+    fromEnum RegexErrorExpressionTooLarge = 120
+    fromEnum RegexErrorMemoryError = 121
+    fromEnum RegexErrorVariableLengthLookbehind = 125
+    fromEnum RegexErrorMalformedCondition = 126
+    fromEnum RegexErrorTooManyConditionalBranches = 127
+    fromEnum RegexErrorAssertionExpected = 128
+    fromEnum RegexErrorUnknownPosixClassName = 130
+    fromEnum RegexErrorPosixCollatingElementsNotSupported = 131
+    fromEnum RegexErrorHexCodeTooLarge = 134
+    fromEnum RegexErrorInvalidCondition = 135
+    fromEnum RegexErrorSingleByteMatchInLookbehind = 136
+    fromEnum RegexErrorInfiniteLoop = 140
+    fromEnum RegexErrorMissingSubpatternNameTerminator = 142
+    fromEnum RegexErrorDuplicateSubpatternName = 143
+    fromEnum RegexErrorMalformedProperty = 146
+    fromEnum RegexErrorUnknownProperty = 147
+    fromEnum RegexErrorSubpatternNameTooLong = 148
+    fromEnum RegexErrorTooManySubpatterns = 149
+    fromEnum RegexErrorInvalidOctalValue = 151
+    fromEnum RegexErrorTooManyBranchesInDefine = 154
+    fromEnum RegexErrorDefineRepetion = 155
+    fromEnum RegexErrorInconsistentNewlineOptions = 156
+    fromEnum RegexErrorMissingBackReference = 157
+    fromEnum RegexErrorInvalidRelativeReference = 158
+    fromEnum RegexErrorBacktrackingControlVerbArgumentForbidden = 159
+    fromEnum RegexErrorUnknownBacktrackingControlVerb = 160
+    fromEnum RegexErrorNumberTooBig = 161
+    fromEnum RegexErrorMissingSubpatternName = 162
+    fromEnum RegexErrorMissingDigit = 163
+    fromEnum RegexErrorInvalidDataCharacter = 164
+    fromEnum RegexErrorExtraSubpatternName = 165
+    fromEnum RegexErrorBacktrackingControlVerbArgumentRequired = 166
+    fromEnum RegexErrorInvalidControlChar = 168
+    fromEnum RegexErrorMissingName = 169
+    fromEnum RegexErrorNotSupportedInClass = 171
+    fromEnum RegexErrorTooManyForwardReferences = 172
+    fromEnum RegexErrorNameTooLong = 175
+    fromEnum RegexErrorCharacterValueTooLarge = 176
+    fromEnum (AnotherRegexError k) = k
+
+    toEnum 0 = RegexErrorCompile
+    toEnum 1 = RegexErrorOptimize
+    toEnum 2 = RegexErrorReplace
+    toEnum 3 = RegexErrorMatch
+    toEnum 4 = RegexErrorInternal
+    toEnum 101 = RegexErrorStrayBackslash
+    toEnum 102 = RegexErrorMissingControlChar
+    toEnum 103 = RegexErrorUnrecognizedEscape
+    toEnum 104 = RegexErrorQuantifiersOutOfOrder
+    toEnum 105 = RegexErrorQuantifierTooBig
+    toEnum 106 = RegexErrorUnterminatedCharacterClass
+    toEnum 107 = RegexErrorInvalidEscapeInCharacterClass
+    toEnum 108 = RegexErrorRangeOutOfOrder
+    toEnum 109 = RegexErrorNothingToRepeat
+    toEnum 112 = RegexErrorUnrecognizedCharacter
+    toEnum 113 = RegexErrorPosixNamedClassOutsideClass
+    toEnum 114 = RegexErrorUnmatchedParenthesis
+    toEnum 115 = RegexErrorInexistentSubpatternReference
+    toEnum 118 = RegexErrorUnterminatedComment
+    toEnum 120 = RegexErrorExpressionTooLarge
+    toEnum 121 = RegexErrorMemoryError
+    toEnum 125 = RegexErrorVariableLengthLookbehind
+    toEnum 126 = RegexErrorMalformedCondition
+    toEnum 127 = RegexErrorTooManyConditionalBranches
+    toEnum 128 = RegexErrorAssertionExpected
+    toEnum 130 = RegexErrorUnknownPosixClassName
+    toEnum 131 = RegexErrorPosixCollatingElementsNotSupported
+    toEnum 134 = RegexErrorHexCodeTooLarge
+    toEnum 135 = RegexErrorInvalidCondition
+    toEnum 136 = RegexErrorSingleByteMatchInLookbehind
+    toEnum 140 = RegexErrorInfiniteLoop
+    toEnum 142 = RegexErrorMissingSubpatternNameTerminator
+    toEnum 143 = RegexErrorDuplicateSubpatternName
+    toEnum 146 = RegexErrorMalformedProperty
+    toEnum 147 = RegexErrorUnknownProperty
+    toEnum 148 = RegexErrorSubpatternNameTooLong
+    toEnum 149 = RegexErrorTooManySubpatterns
+    toEnum 151 = RegexErrorInvalidOctalValue
+    toEnum 154 = RegexErrorTooManyBranchesInDefine
+    toEnum 155 = RegexErrorDefineRepetion
+    toEnum 156 = RegexErrorInconsistentNewlineOptions
+    toEnum 157 = RegexErrorMissingBackReference
+    toEnum 158 = RegexErrorInvalidRelativeReference
+    toEnum 159 = RegexErrorBacktrackingControlVerbArgumentForbidden
+    toEnum 160 = RegexErrorUnknownBacktrackingControlVerb
+    toEnum 161 = RegexErrorNumberTooBig
+    toEnum 162 = RegexErrorMissingSubpatternName
+    toEnum 163 = RegexErrorMissingDigit
+    toEnum 164 = RegexErrorInvalidDataCharacter
+    toEnum 165 = RegexErrorExtraSubpatternName
+    toEnum 166 = RegexErrorBacktrackingControlVerbArgumentRequired
+    toEnum 168 = RegexErrorInvalidControlChar
+    toEnum 169 = RegexErrorMissingName
+    toEnum 171 = RegexErrorNotSupportedInClass
+    toEnum 172 = RegexErrorTooManyForwardReferences
+    toEnum 175 = RegexErrorNameTooLong
+    toEnum 176 = RegexErrorCharacterValueTooLarge
+    toEnum k = AnotherRegexError k
+
+instance GErrorClass RegexError where
+    gerrorClassDomain _ = "g-regex-error-quark"
+
+catchRegexError ::
+    IO a ->
+    (RegexError -> GErrorMessage -> IO a) ->
+    IO a
+catchRegexError = catchGErrorJustDomain
+
+handleRegexError ::
+    (RegexError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleRegexError = handleGErrorJustDomain
+
+-- callback RegexEvalCallback
+regexEvalCallbackClosure :: RegexEvalCallback -> IO Closure
+regexEvalCallbackClosure cb = newCClosure =<< mkRegexEvalCallback wrapped
+    where wrapped = regexEvalCallbackWrapper Nothing cb
+
+type RegexEvalCallbackC =
+    Ptr MatchInfo ->
+    Ptr String ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkRegexEvalCallback :: RegexEvalCallbackC -> IO (FunPtr RegexEvalCallbackC)
+
+type RegexEvalCallback =
+    MatchInfo ->
+    String ->
+    IO Bool
+
+noRegexEvalCallback :: Maybe RegexEvalCallback
+noRegexEvalCallback = Nothing
+
+regexEvalCallbackWrapper ::
+    Maybe (Ptr (FunPtr (RegexEvalCallbackC))) ->
+    RegexEvalCallback ->
+    Ptr MatchInfo ->
+    Ptr String ->
+    Ptr () ->
+    IO CInt
+regexEvalCallbackWrapper funptrptr _cb match_info result_ _ = do
+    match_info' <- (newBoxed MatchInfo) match_info
+    result_' <- (newBoxed String) result_
+    result <- _cb  match_info' result_'
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- Flags RegexMatchFlags
+
+data RegexMatchFlags = 
+      RegexMatchFlagsAnchored
+    | RegexMatchFlagsNotbol
+    | RegexMatchFlagsNoteol
+    | RegexMatchFlagsNotempty
+    | RegexMatchFlagsPartial
+    | RegexMatchFlagsNewlineCr
+    | RegexMatchFlagsNewlineLf
+    | RegexMatchFlagsNewlineCrlf
+    | RegexMatchFlagsNewlineAny
+    | RegexMatchFlagsNewlineAnycrlf
+    | RegexMatchFlagsBsrAnycrlf
+    | RegexMatchFlagsBsrAny
+    | RegexMatchFlagsPartialSoft
+    | RegexMatchFlagsPartialHard
+    | RegexMatchFlagsNotemptyAtstart
+    | AnotherRegexMatchFlags Int
+    deriving (Show, Eq)
+
+instance Enum RegexMatchFlags where
+    fromEnum RegexMatchFlagsAnchored = 16
+    fromEnum RegexMatchFlagsNotbol = 128
+    fromEnum RegexMatchFlagsNoteol = 256
+    fromEnum RegexMatchFlagsNotempty = 1024
+    fromEnum RegexMatchFlagsPartial = 32768
+    fromEnum RegexMatchFlagsNewlineCr = 1048576
+    fromEnum RegexMatchFlagsNewlineLf = 2097152
+    fromEnum RegexMatchFlagsNewlineCrlf = 3145728
+    fromEnum RegexMatchFlagsNewlineAny = 4194304
+    fromEnum RegexMatchFlagsNewlineAnycrlf = 5242880
+    fromEnum RegexMatchFlagsBsrAnycrlf = 8388608
+    fromEnum RegexMatchFlagsBsrAny = 16777216
+    fromEnum RegexMatchFlagsPartialSoft = 32768
+    fromEnum RegexMatchFlagsPartialHard = 134217728
+    fromEnum RegexMatchFlagsNotemptyAtstart = 268435456
+    fromEnum (AnotherRegexMatchFlags k) = k
+
+    toEnum 16 = RegexMatchFlagsAnchored
+    toEnum 128 = RegexMatchFlagsNotbol
+    toEnum 256 = RegexMatchFlagsNoteol
+    toEnum 1024 = RegexMatchFlagsNotempty
+    toEnum 32768 = RegexMatchFlagsPartial
+    toEnum 1048576 = RegexMatchFlagsNewlineCr
+    toEnum 2097152 = RegexMatchFlagsNewlineLf
+    toEnum 3145728 = RegexMatchFlagsNewlineCrlf
+    toEnum 4194304 = RegexMatchFlagsNewlineAny
+    toEnum 5242880 = RegexMatchFlagsNewlineAnycrlf
+    toEnum 8388608 = RegexMatchFlagsBsrAnycrlf
+    toEnum 16777216 = RegexMatchFlagsBsrAny
+    toEnum 134217728 = RegexMatchFlagsPartialHard
+    toEnum 268435456 = RegexMatchFlagsNotemptyAtstart
+    toEnum k = AnotherRegexMatchFlags k
+
+instance IsGFlag RegexMatchFlags
+
+-- struct Scanner
+newtype Scanner = Scanner (ForeignPtr Scanner)
+noScanner :: Maybe Scanner
+noScanner = Nothing
+
+scannerReadUserData :: Scanner -> IO (Ptr ())
+scannerReadUserData s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
+    return val
+
+scannerReadMaxParseErrors :: Scanner -> IO Word32
+scannerReadMaxParseErrors s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Word32
+    return val
+
+scannerReadParseErrors :: Scanner -> IO Word32
+scannerReadParseErrors s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 12) :: IO Word32
+    return val
+
+scannerReadInputName :: Scanner -> IO T.Text
+scannerReadInputName s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+scannerReadQdata :: Scanner -> IO Data
+scannerReadQdata s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO (Ptr Data)
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    val' <- (\x -> Data <$> newForeignPtr_ x) val
+    return val'
+
+scannerReadConfig :: Scanner -> IO ScannerConfig
+scannerReadConfig s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO (Ptr ScannerConfig)
+    val' <- (newPtr 128 ScannerConfig) val
+    return val'
+
+scannerReadToken :: Scanner -> IO TokenType
+scannerReadToken s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+scannerReadValue :: Scanner -> IO TokenValue
+scannerReadValue s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO (Ptr TokenValue)
+    val' <- (newPtr 8 TokenValue) val
+    return val'
+
+scannerReadLine :: Scanner -> IO Word32
+scannerReadLine s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO Word32
+    return val
+
+scannerReadPosition :: Scanner -> IO Word32
+scannerReadPosition s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 60) :: IO Word32
+    return val
+
+scannerReadNextToken :: Scanner -> IO TokenType
+scannerReadNextToken s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 64) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+scannerReadNextValue :: Scanner -> IO TokenValue
+scannerReadNextValue s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 72) :: IO (Ptr TokenValue)
+    val' <- (newPtr 8 TokenValue) val
+    return val'
+
+scannerReadNextLine :: Scanner -> IO Word32
+scannerReadNextLine s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 80) :: IO Word32
+    return val
+
+scannerReadNextPosition :: Scanner -> IO Word32
+scannerReadNextPosition s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 84) :: IO Word32
+    return val
+
+-- XXX Skipped getter for "Scanner:msg_handler" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- method Scanner::cur_line
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_cur_line" g_scanner_cur_line :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    IO Word32
+
+
+scannerCurLine ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    m Word32
+scannerCurLine _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_scanner_cur_line _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Scanner::cur_position
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_cur_position" g_scanner_cur_position :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    IO Word32
+
+
+scannerCurPosition ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    m Word32
+scannerCurPosition _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_scanner_cur_position _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Scanner::cur_token
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "TokenType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_cur_token" g_scanner_cur_token :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    IO CUInt
+
+
+scannerCurToken ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    m TokenType
+scannerCurToken _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_scanner_cur_token _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Scanner::destroy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_destroy" g_scanner_destroy :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    IO ()
+
+
+scannerDestroy ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    m ()
+scannerDestroy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_scanner_destroy _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Scanner::eof
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_eof" g_scanner_eof :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    IO CInt
+
+
+scannerEof ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    m Bool
+scannerEof _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_scanner_eof _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Scanner::get_next_token
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "TokenType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_get_next_token" g_scanner_get_next_token :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    IO CUInt
+
+
+scannerGetNextToken ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    m TokenType
+scannerGetNextToken _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_scanner_get_next_token _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Scanner::input_file
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "input_fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "input_fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_input_file" g_scanner_input_file :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    Int32 ->                                -- input_fd : TBasicType TInt32
+    IO ()
+
+
+scannerInputFile ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    Int32 ->                                -- input_fd
+    m ()
+scannerInputFile _obj input_fd = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_scanner_input_file _obj' input_fd
+    touchManagedPtr _obj
+    return ()
+
+-- method Scanner::input_text
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text_len", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text_len", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_input_text" g_scanner_input_text :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    CString ->                              -- text : TBasicType TUTF8
+    Word32 ->                               -- text_len : TBasicType TUInt32
+    IO ()
+
+
+scannerInputText ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    T.Text ->                               -- text
+    Word32 ->                               -- text_len
+    m ()
+scannerInputText _obj text text_len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    text' <- textToCString text
+    g_scanner_input_text _obj' text' text_len
+    touchManagedPtr _obj
+    freeMem text'
+    return ()
+
+-- method Scanner::peek_next_token
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "TokenType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_peek_next_token" g_scanner_peek_next_token :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    IO CUInt
+
+
+scannerPeekNextToken ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    m TokenType
+scannerPeekNextToken _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_scanner_peek_next_token _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Scanner::scope_add_symbol
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "symbol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "symbol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_scope_add_symbol" g_scanner_scope_add_symbol :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    Word32 ->                               -- scope_id : TBasicType TUInt32
+    CString ->                              -- symbol : TBasicType TUTF8
+    Ptr () ->                               -- value : TBasicType TVoid
+    IO ()
+
+
+scannerScopeAddSymbol ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    Word32 ->                               -- scope_id
+    T.Text ->                               -- symbol
+    Ptr () ->                               -- value
+    m ()
+scannerScopeAddSymbol _obj scope_id symbol value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    symbol' <- textToCString symbol
+    g_scanner_scope_add_symbol _obj' scope_id symbol' value
+    touchManagedPtr _obj
+    freeMem symbol'
+    return ()
+
+-- method Scanner::scope_remove_symbol
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "symbol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "symbol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_scope_remove_symbol" g_scanner_scope_remove_symbol :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    Word32 ->                               -- scope_id : TBasicType TUInt32
+    CString ->                              -- symbol : TBasicType TUTF8
+    IO ()
+
+
+scannerScopeRemoveSymbol ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    Word32 ->                               -- scope_id
+    T.Text ->                               -- symbol
+    m ()
+scannerScopeRemoveSymbol _obj scope_id symbol = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    symbol' <- textToCString symbol
+    g_scanner_scope_remove_symbol _obj' scope_id symbol'
+    touchManagedPtr _obj
+    freeMem symbol'
+    return ()
+
+-- method Scanner::set_scope
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_set_scope" g_scanner_set_scope :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    Word32 ->                               -- scope_id : TBasicType TUInt32
+    IO Word32
+
+
+scannerSetScope ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    Word32 ->                               -- scope_id
+    m Word32
+scannerSetScope _obj scope_id = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_scanner_set_scope _obj' scope_id
+    touchManagedPtr _obj
+    return result
+
+-- method Scanner::sync_file_offset
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_sync_file_offset" g_scanner_sync_file_offset :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    IO ()
+
+
+scannerSyncFileOffset ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    m ()
+scannerSyncFileOffset _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_scanner_sync_file_offset _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Scanner::unexp_token
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expected_token", argType = TInterface "GLib" "TokenType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "identifier_spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "symbol_spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "symbol_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_error", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expected_token", argType = TInterface "GLib" "TokenType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "identifier_spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "symbol_spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "symbol_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_error", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_scanner_unexp_token" g_scanner_unexp_token :: 
+    Ptr Scanner ->                          -- _obj : TInterface "GLib" "Scanner"
+    CUInt ->                                -- expected_token : TInterface "GLib" "TokenType"
+    CString ->                              -- identifier_spec : TBasicType TUTF8
+    CString ->                              -- symbol_spec : TBasicType TUTF8
+    CString ->                              -- symbol_name : TBasicType TUTF8
+    CString ->                              -- message : TBasicType TUTF8
+    Int32 ->                                -- is_error : TBasicType TInt32
+    IO ()
+
+
+scannerUnexpToken ::
+    (MonadIO m) =>
+    Scanner ->                              -- _obj
+    TokenType ->                            -- expected_token
+    T.Text ->                               -- identifier_spec
+    T.Text ->                               -- symbol_spec
+    T.Text ->                               -- symbol_name
+    T.Text ->                               -- message
+    Int32 ->                                -- is_error
+    m ()
+scannerUnexpToken _obj expected_token identifier_spec symbol_spec symbol_name message is_error = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let expected_token' = (fromIntegral . fromEnum) expected_token
+    identifier_spec' <- textToCString identifier_spec
+    symbol_spec' <- textToCString symbol_spec
+    symbol_name' <- textToCString symbol_name
+    message' <- textToCString message
+    g_scanner_unexp_token _obj' expected_token' identifier_spec' symbol_spec' symbol_name' message' is_error
+    touchManagedPtr _obj
+    freeMem identifier_spec'
+    freeMem symbol_spec'
+    freeMem symbol_name'
+    freeMem message'
+    return ()
+
+-- struct ScannerConfig
+newtype ScannerConfig = ScannerConfig (ForeignPtr ScannerConfig)
+noScannerConfig :: Maybe ScannerConfig
+noScannerConfig = Nothing
+
+scannerConfigReadCsetSkipCharacters :: ScannerConfig -> IO T.Text
+scannerConfigReadCsetSkipCharacters s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+scannerConfigReadCsetIdentifierFirst :: ScannerConfig -> IO T.Text
+scannerConfigReadCsetIdentifierFirst s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+scannerConfigReadCsetIdentifierNth :: ScannerConfig -> IO T.Text
+scannerConfigReadCsetIdentifierNth s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+scannerConfigReadCpairCommentSingle :: ScannerConfig -> IO T.Text
+scannerConfigReadCpairCommentSingle s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+scannerConfigReadCaseSensitive :: ScannerConfig -> IO Word32
+scannerConfigReadCaseSensitive s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 32) :: IO Word32
+    return val
+
+scannerConfigReadSkipCommentMulti :: ScannerConfig -> IO Word32
+scannerConfigReadSkipCommentMulti s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 36) :: IO Word32
+    return val
+
+scannerConfigReadSkipCommentSingle :: ScannerConfig -> IO Word32
+scannerConfigReadSkipCommentSingle s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 40) :: IO Word32
+    return val
+
+scannerConfigReadScanCommentMulti :: ScannerConfig -> IO Word32
+scannerConfigReadScanCommentMulti s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 44) :: IO Word32
+    return val
+
+scannerConfigReadScanIdentifier :: ScannerConfig -> IO Word32
+scannerConfigReadScanIdentifier s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 48) :: IO Word32
+    return val
+
+scannerConfigReadScanIdentifier1char :: ScannerConfig -> IO Word32
+scannerConfigReadScanIdentifier1char s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 52) :: IO Word32
+    return val
+
+scannerConfigReadScanIdentifierNULL :: ScannerConfig -> IO Word32
+scannerConfigReadScanIdentifierNULL s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 56) :: IO Word32
+    return val
+
+scannerConfigReadScanSymbols :: ScannerConfig -> IO Word32
+scannerConfigReadScanSymbols s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 60) :: IO Word32
+    return val
+
+scannerConfigReadScanBinary :: ScannerConfig -> IO Word32
+scannerConfigReadScanBinary s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 64) :: IO Word32
+    return val
+
+scannerConfigReadScanOctal :: ScannerConfig -> IO Word32
+scannerConfigReadScanOctal s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 68) :: IO Word32
+    return val
+
+scannerConfigReadScanFloat :: ScannerConfig -> IO Word32
+scannerConfigReadScanFloat s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 72) :: IO Word32
+    return val
+
+scannerConfigReadScanHex :: ScannerConfig -> IO Word32
+scannerConfigReadScanHex s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 76) :: IO Word32
+    return val
+
+scannerConfigReadScanHexDollar :: ScannerConfig -> IO Word32
+scannerConfigReadScanHexDollar s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 80) :: IO Word32
+    return val
+
+scannerConfigReadScanStringSq :: ScannerConfig -> IO Word32
+scannerConfigReadScanStringSq s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 84) :: IO Word32
+    return val
+
+scannerConfigReadScanStringDq :: ScannerConfig -> IO Word32
+scannerConfigReadScanStringDq s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 88) :: IO Word32
+    return val
+
+scannerConfigReadNumbers2Int :: ScannerConfig -> IO Word32
+scannerConfigReadNumbers2Int s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 92) :: IO Word32
+    return val
+
+scannerConfigReadInt2Float :: ScannerConfig -> IO Word32
+scannerConfigReadInt2Float s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 96) :: IO Word32
+    return val
+
+scannerConfigReadIdentifier2String :: ScannerConfig -> IO Word32
+scannerConfigReadIdentifier2String s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 100) :: IO Word32
+    return val
+
+scannerConfigReadChar2Token :: ScannerConfig -> IO Word32
+scannerConfigReadChar2Token s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 104) :: IO Word32
+    return val
+
+scannerConfigReadSymbol2Token :: ScannerConfig -> IO Word32
+scannerConfigReadSymbol2Token s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 108) :: IO Word32
+    return val
+
+scannerConfigReadScope0Fallback :: ScannerConfig -> IO Word32
+scannerConfigReadScope0Fallback s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 112) :: IO Word32
+    return val
+
+scannerConfigReadStoreInt64 :: ScannerConfig -> IO Word32
+scannerConfigReadStoreInt64 s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 116) :: IO Word32
+    return val
+
+-- callback ScannerMsgFunc
+scannerMsgFuncClosure :: ScannerMsgFunc -> IO Closure
+scannerMsgFuncClosure cb = newCClosure =<< mkScannerMsgFunc wrapped
+    where wrapped = scannerMsgFuncWrapper Nothing cb
+
+type ScannerMsgFuncC =
+    Ptr Scanner ->
+    CString ->
+    CInt ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkScannerMsgFunc :: ScannerMsgFuncC -> IO (FunPtr ScannerMsgFuncC)
+
+type ScannerMsgFunc =
+    Scanner ->
+    T.Text ->
+    Bool ->
+    IO ()
+
+noScannerMsgFunc :: Maybe ScannerMsgFunc
+noScannerMsgFunc = Nothing
+
+scannerMsgFuncWrapper ::
+    Maybe (Ptr (FunPtr (ScannerMsgFuncC))) ->
+    ScannerMsgFunc ->
+    Ptr Scanner ->
+    CString ->
+    CInt ->
+    IO ()
+scannerMsgFuncWrapper funptrptr _cb scanner message error_ = do
+    scanner' <- (newPtr 144 Scanner) scanner
+    message' <- cstringToText message
+    let error_' = (/= 0) error_
+    _cb  scanner' message' error_'
+    maybeReleaseFunPtr funptrptr
+
+-- Enum SeekType
+
+data SeekType = 
+      SeekTypeCur
+    | SeekTypeSet
+    | SeekTypeEnd
+    | AnotherSeekType Int
+    deriving (Show, Eq)
+
+instance Enum SeekType where
+    fromEnum SeekTypeCur = 0
+    fromEnum SeekTypeSet = 1
+    fromEnum SeekTypeEnd = 2
+    fromEnum (AnotherSeekType k) = k
+
+    toEnum 0 = SeekTypeCur
+    toEnum 1 = SeekTypeSet
+    toEnum 2 = SeekTypeEnd
+    toEnum k = AnotherSeekType k
+
+-- struct Sequence
+newtype Sequence = Sequence (ForeignPtr Sequence)
+noSequence :: Maybe Sequence
+noSequence = Nothing
+
+-- method Sequence::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Sequence", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Sequence", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_free" g_sequence_free :: 
+    Ptr Sequence ->                         -- _obj : TInterface "GLib" "Sequence"
+    IO ()
+
+
+sequenceFree ::
+    (MonadIO m) =>
+    Sequence ->                             -- _obj
+    m ()
+sequenceFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_sequence_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Sequence::get_length
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Sequence", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Sequence", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_get_length" g_sequence_get_length :: 
+    Ptr Sequence ->                         -- _obj : TInterface "GLib" "Sequence"
+    IO Int32
+
+
+sequenceGetLength ::
+    (MonadIO m) =>
+    Sequence ->                             -- _obj
+    m Int32
+sequenceGetLength _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_sequence_get_length _obj'
+    touchManagedPtr _obj
+    return result
+
+-- struct SequenceIter
+newtype SequenceIter = SequenceIter (ForeignPtr SequenceIter)
+noSequenceIter :: Maybe SequenceIter
+noSequenceIter = Nothing
+
+-- method SequenceIter::compare
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "b", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "b", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_iter_compare" g_sequence_iter_compare :: 
+    Ptr SequenceIter ->                     -- _obj : TInterface "GLib" "SequenceIter"
+    Ptr SequenceIter ->                     -- b : TInterface "GLib" "SequenceIter"
+    IO Int32
+
+
+sequenceIterCompare ::
+    (MonadIO m) =>
+    SequenceIter ->                         -- _obj
+    SequenceIter ->                         -- b
+    m Int32
+sequenceIterCompare _obj b = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let b' = unsafeManagedPtrGetPtr b
+    result <- g_sequence_iter_compare _obj' b'
+    touchManagedPtr _obj
+    touchManagedPtr b
+    return result
+
+-- method SequenceIter::get_position
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_iter_get_position" g_sequence_iter_get_position :: 
+    Ptr SequenceIter ->                     -- _obj : TInterface "GLib" "SequenceIter"
+    IO Int32
+
+
+sequenceIterGetPosition ::
+    (MonadIO m) =>
+    SequenceIter ->                         -- _obj
+    m Int32
+sequenceIterGetPosition _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_sequence_iter_get_position _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method SequenceIter::is_begin
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_iter_is_begin" g_sequence_iter_is_begin :: 
+    Ptr SequenceIter ->                     -- _obj : TInterface "GLib" "SequenceIter"
+    IO CInt
+
+
+sequenceIterIsBegin ::
+    (MonadIO m) =>
+    SequenceIter ->                         -- _obj
+    m Bool
+sequenceIterIsBegin _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_sequence_iter_is_begin _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method SequenceIter::is_end
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_iter_is_end" g_sequence_iter_is_end :: 
+    Ptr SequenceIter ->                     -- _obj : TInterface "GLib" "SequenceIter"
+    IO CInt
+
+
+sequenceIterIsEnd ::
+    (MonadIO m) =>
+    SequenceIter ->                         -- _obj
+    m Bool
+sequenceIterIsEnd _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_sequence_iter_is_end _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- callback SequenceIterCompareFunc
+sequenceIterCompareFuncClosure :: SequenceIterCompareFunc -> IO Closure
+sequenceIterCompareFuncClosure cb = newCClosure =<< mkSequenceIterCompareFunc wrapped
+    where wrapped = sequenceIterCompareFuncWrapper Nothing cb
+
+type SequenceIterCompareFuncC =
+    Ptr SequenceIter ->
+    Ptr SequenceIter ->
+    Ptr () ->
+    IO Int32
+
+foreign import ccall "wrapper"
+    mkSequenceIterCompareFunc :: SequenceIterCompareFuncC -> IO (FunPtr SequenceIterCompareFuncC)
+
+type SequenceIterCompareFunc =
+    SequenceIter ->
+    SequenceIter ->
+    Ptr () ->
+    IO Int32
+
+noSequenceIterCompareFunc :: Maybe SequenceIterCompareFunc
+noSequenceIterCompareFunc = Nothing
+
+sequenceIterCompareFuncWrapper ::
+    Maybe (Ptr (FunPtr (SequenceIterCompareFuncC))) ->
+    SequenceIterCompareFunc ->
+    Ptr SequenceIter ->
+    Ptr SequenceIter ->
+    Ptr () ->
+    IO Int32
+sequenceIterCompareFuncWrapper funptrptr _cb a b data_ = do
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    a' <- (\x -> SequenceIter <$> newForeignPtr_ x) a
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    b' <- (\x -> SequenceIter <$> newForeignPtr_ x) b
+    result <- _cb  a' b' data_
+    maybeReleaseFunPtr funptrptr
+    return result
+
+-- Enum ShellError
+
+data ShellError = 
+      ShellErrorBadQuoting
+    | ShellErrorEmptyString
+    | ShellErrorFailed
+    | AnotherShellError Int
+    deriving (Show, Eq)
+
+instance Enum ShellError where
+    fromEnum ShellErrorBadQuoting = 0
+    fromEnum ShellErrorEmptyString = 1
+    fromEnum ShellErrorFailed = 2
+    fromEnum (AnotherShellError k) = k
+
+    toEnum 0 = ShellErrorBadQuoting
+    toEnum 1 = ShellErrorEmptyString
+    toEnum 2 = ShellErrorFailed
+    toEnum k = AnotherShellError k
+
+instance GErrorClass ShellError where
+    gerrorClassDomain _ = "g-shell-error-quark"
+
+catchShellError ::
+    IO a ->
+    (ShellError -> GErrorMessage -> IO a) ->
+    IO a
+catchShellError = catchGErrorJustDomain
+
+handleShellError ::
+    (ShellError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleShellError = handleGErrorJustDomain
+
+-- Enum SliceConfig
+
+data SliceConfig = 
+      SliceConfigAlwaysMalloc
+    | SliceConfigBypassMagazines
+    | SliceConfigWorkingSetMsecs
+    | SliceConfigColorIncrement
+    | SliceConfigChunkSizes
+    | SliceConfigContentionCounter
+    | AnotherSliceConfig Int
+    deriving (Show, Eq)
+
+instance Enum SliceConfig where
+    fromEnum SliceConfigAlwaysMalloc = 1
+    fromEnum SliceConfigBypassMagazines = 2
+    fromEnum SliceConfigWorkingSetMsecs = 3
+    fromEnum SliceConfigColorIncrement = 4
+    fromEnum SliceConfigChunkSizes = 5
+    fromEnum SliceConfigContentionCounter = 6
+    fromEnum (AnotherSliceConfig k) = k
+
+    toEnum 1 = SliceConfigAlwaysMalloc
+    toEnum 2 = SliceConfigBypassMagazines
+    toEnum 3 = SliceConfigWorkingSetMsecs
+    toEnum 4 = SliceConfigColorIncrement
+    toEnum 5 = SliceConfigChunkSizes
+    toEnum 6 = SliceConfigContentionCounter
+    toEnum k = AnotherSliceConfig k
+
+-- struct Source
+newtype Source = Source (ForeignPtr Source)
+noSource :: Maybe Source
+noSource = Nothing
+
+foreign import ccall "g_source_get_type" c_g_source_get_type :: 
+    IO GType
+
+instance BoxedObject Source where
+    boxedType _ = c_g_source_get_type
+
+-- method Source::new
+-- method type : Constructor
+-- Args : [Arg {argName = "source_funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "struct_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "source_funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "struct_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_new" g_source_new :: 
+    Ptr SourceFuncs ->                      -- source_funcs : TInterface "GLib" "SourceFuncs"
+    Word32 ->                               -- struct_size : TBasicType TUInt32
+    IO (Ptr Source)
+
+
+sourceNew ::
+    (MonadIO m) =>
+    SourceFuncs ->                          -- source_funcs
+    Word32 ->                               -- struct_size
+    m Source
+sourceNew source_funcs struct_size = liftIO $ do
+    let source_funcs' = unsafeManagedPtrGetPtr source_funcs
+    result <- g_source_new source_funcs' struct_size
+    result' <- (wrapBoxed Source) result
+    touchManagedPtr source_funcs
+    return result'
+
+-- method Source::add_child_source
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_add_child_source" g_source_add_child_source :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr Source ->                           -- child_source : TInterface "GLib" "Source"
+    IO ()
+
+
+sourceAddChildSource ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    Source ->                               -- child_source
+    m ()
+sourceAddChildSource _obj child_source = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let child_source' = unsafeManagedPtrGetPtr child_source
+    g_source_add_child_source _obj' child_source'
+    touchManagedPtr _obj
+    touchManagedPtr child_source
+    return ()
+
+-- method Source::add_poll
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_add_poll" g_source_add_poll :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr PollFD ->                           -- fd : TInterface "GLib" "PollFD"
+    IO ()
+
+
+sourceAddPoll ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    PollFD ->                               -- fd
+    m ()
+sourceAddPoll _obj fd = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let fd' = unsafeManagedPtrGetPtr fd
+    g_source_add_poll _obj' fd'
+    touchManagedPtr _obj
+    touchManagedPtr fd
+    return ()
+
+-- method Source::attach
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_attach" g_source_attach :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr MainContext ->                      -- context : TInterface "GLib" "MainContext"
+    IO Word32
+
+
+sourceAttach ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    Maybe (MainContext) ->                  -- context
+    m Word32
+sourceAttach _obj context = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeContext <- case context of
+        Nothing -> return nullPtr
+        Just jContext -> do
+            let jContext' = unsafeManagedPtrGetPtr jContext
+            return jContext'
+    result <- g_source_attach _obj' maybeContext
+    touchManagedPtr _obj
+    whenJust context touchManagedPtr
+    return result
+
+-- method Source::destroy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_destroy" g_source_destroy :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO ()
+
+
+sourceDestroy ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m ()
+sourceDestroy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_source_destroy _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Source::get_can_recurse
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_get_can_recurse" g_source_get_can_recurse :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO CInt
+
+
+sourceGetCanRecurse ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m Bool
+sourceGetCanRecurse _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_source_get_can_recurse _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Source::get_context
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "MainContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_get_context" g_source_get_context :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO (Ptr MainContext)
+
+
+sourceGetContext ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m MainContext
+sourceGetContext _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_source_get_context _obj'
+    result' <- (newBoxed MainContext) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Source::get_current_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timeval", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timeval", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_get_current_time" g_source_get_current_time :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr TimeVal ->                          -- timeval : TInterface "GLib" "TimeVal"
+    IO ()
+
+{-# DEPRECATED sourceGetCurrentTime ["(Since version 2.28)","use g_source_get_time() instead"]#-}
+sourceGetCurrentTime ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    TimeVal ->                              -- timeval
+    m ()
+sourceGetCurrentTime _obj timeval = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let timeval' = unsafeManagedPtrGetPtr timeval
+    g_source_get_current_time _obj' timeval'
+    touchManagedPtr _obj
+    touchManagedPtr timeval
+    return ()
+
+-- method Source::get_id
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_get_id" g_source_get_id :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO Word32
+
+
+sourceGetId ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m Word32
+sourceGetId _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_source_get_id _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Source::get_name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_get_name" g_source_get_name :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO CString
+
+
+sourceGetName ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m T.Text
+sourceGetName _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_source_get_name _obj'
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method Source::get_priority
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_get_priority" g_source_get_priority :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO Int32
+
+
+sourceGetPriority ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m Int32
+sourceGetPriority _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_source_get_priority _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Source::get_ready_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_get_ready_time" g_source_get_ready_time :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO Int64
+
+
+sourceGetReadyTime ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m Int64
+sourceGetReadyTime _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_source_get_ready_time _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Source::get_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_get_time" g_source_get_time :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO Int64
+
+
+sourceGetTime ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m Int64
+sourceGetTime _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_source_get_time _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Source::is_destroyed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_is_destroyed" g_source_is_destroyed :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO CInt
+
+
+sourceIsDestroyed ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m Bool
+sourceIsDestroyed _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_source_is_destroyed _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Source::modify_unix_fd
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_events", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_events", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_modify_unix_fd" g_source_modify_unix_fd :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr () ->                               -- tag : TBasicType TVoid
+    CUInt ->                                -- new_events : TInterface "GLib" "IOCondition"
+    IO ()
+
+
+sourceModifyUnixFd ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    Ptr () ->                               -- tag
+    [IOCondition] ->                        -- new_events
+    m ()
+sourceModifyUnixFd _obj tag new_events = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let new_events' = gflagsToWord new_events
+    g_source_modify_unix_fd _obj' tag new_events'
+    touchManagedPtr _obj
+    return ()
+
+-- method Source::query_unix_fd
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOCondition"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_query_unix_fd" g_source_query_unix_fd :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr () ->                               -- tag : TBasicType TVoid
+    IO CUInt
+
+
+sourceQueryUnixFd ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    Ptr () ->                               -- tag
+    m [IOCondition]
+sourceQueryUnixFd _obj tag = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_source_query_unix_fd _obj' tag
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+-- method Source::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_ref" g_source_ref :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO (Ptr Source)
+
+
+sourceRef ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m Source
+sourceRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_source_ref _obj'
+    result' <- (wrapBoxed Source) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Source::remove_child_source
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_remove_child_source" g_source_remove_child_source :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr Source ->                           -- child_source : TInterface "GLib" "Source"
+    IO ()
+
+
+sourceRemoveChildSource ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    Source ->                               -- child_source
+    m ()
+sourceRemoveChildSource _obj child_source = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let child_source' = unsafeManagedPtrGetPtr child_source
+    g_source_remove_child_source _obj' child_source'
+    touchManagedPtr _obj
+    touchManagedPtr child_source
+    return ()
+
+-- method Source::remove_poll
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_remove_poll" g_source_remove_poll :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr PollFD ->                           -- fd : TInterface "GLib" "PollFD"
+    IO ()
+
+
+sourceRemovePoll ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    PollFD ->                               -- fd
+    m ()
+sourceRemovePoll _obj fd = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let fd' = unsafeManagedPtrGetPtr fd
+    g_source_remove_poll _obj' fd'
+    touchManagedPtr _obj
+    touchManagedPtr fd
+    return ()
+
+-- method Source::remove_unix_fd
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_remove_unix_fd" g_source_remove_unix_fd :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr () ->                               -- tag : TBasicType TVoid
+    IO ()
+
+
+sourceRemoveUnixFd ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    Ptr () ->                               -- tag
+    m ()
+sourceRemoveUnixFd _obj tag = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_source_remove_unix_fd _obj' tag
+    touchManagedPtr _obj
+    return ()
+
+-- method Source::set_callback
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_set_callback" g_source_set_callback :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    FunPtr SourceFuncC ->                   -- func : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+sourceSetCallback ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    SourceFunc ->                           -- func
+    m ()
+sourceSetCallback _obj func = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    func' <- mkSourceFunc (sourceFuncWrapper Nothing func)
+    let data_ = castFunPtrToPtr func'
+    let notify = safeFreeFunPtrPtr
+    g_source_set_callback _obj' func' data_ notify
+    touchManagedPtr _obj
+    return ()
+
+-- method Source::set_callback_indirect
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback_funcs", argType = TInterface "GLib" "SourceCallbackFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "callback_funcs", argType = TInterface "GLib" "SourceCallbackFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_set_callback_indirect" g_source_set_callback_indirect :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr () ->                               -- callback_data : TBasicType TVoid
+    Ptr SourceCallbackFuncs ->              -- callback_funcs : TInterface "GLib" "SourceCallbackFuncs"
+    IO ()
+
+
+sourceSetCallbackIndirect ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    Ptr () ->                               -- callback_data
+    SourceCallbackFuncs ->                  -- callback_funcs
+    m ()
+sourceSetCallbackIndirect _obj callback_data callback_funcs = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let callback_funcs' = unsafeManagedPtrGetPtr callback_funcs
+    g_source_set_callback_indirect _obj' callback_data callback_funcs'
+    touchManagedPtr _obj
+    touchManagedPtr callback_funcs
+    return ()
+
+-- method Source::set_can_recurse
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "can_recurse", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "can_recurse", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_set_can_recurse" g_source_set_can_recurse :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    CInt ->                                 -- can_recurse : TBasicType TBoolean
+    IO ()
+
+
+sourceSetCanRecurse ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    Bool ->                                 -- can_recurse
+    m ()
+sourceSetCanRecurse _obj can_recurse = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let can_recurse' = (fromIntegral . fromEnum) can_recurse
+    g_source_set_can_recurse _obj' can_recurse'
+    touchManagedPtr _obj
+    return ()
+
+-- method Source::set_funcs
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_set_funcs" g_source_set_funcs :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Ptr SourceFuncs ->                      -- funcs : TInterface "GLib" "SourceFuncs"
+    IO ()
+
+
+sourceSetFuncs ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    SourceFuncs ->                          -- funcs
+    m ()
+sourceSetFuncs _obj funcs = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let funcs' = unsafeManagedPtrGetPtr funcs
+    g_source_set_funcs _obj' funcs'
+    touchManagedPtr _obj
+    touchManagedPtr funcs
+    return ()
+
+-- method Source::set_name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_set_name" g_source_set_name :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    CString ->                              -- name : TBasicType TUTF8
+    IO ()
+
+
+sourceSetName ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    T.Text ->                               -- name
+    m ()
+sourceSetName _obj name = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    name' <- textToCString name
+    g_source_set_name _obj' name'
+    touchManagedPtr _obj
+    freeMem name'
+    return ()
+
+-- method Source::set_priority
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_set_priority" g_source_set_priority :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Int32 ->                                -- priority : TBasicType TInt32
+    IO ()
+
+
+sourceSetPriority ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    Int32 ->                                -- priority
+    m ()
+sourceSetPriority _obj priority = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_source_set_priority _obj' priority
+    touchManagedPtr _obj
+    return ()
+
+-- method Source::set_ready_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ready_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ready_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_set_ready_time" g_source_set_ready_time :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    Int64 ->                                -- ready_time : TBasicType TInt64
+    IO ()
+
+
+sourceSetReadyTime ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    Int64 ->                                -- ready_time
+    m ()
+sourceSetReadyTime _obj ready_time = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_source_set_ready_time _obj' ready_time
+    touchManagedPtr _obj
+    return ()
+
+-- method Source::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_unref" g_source_unref :: 
+    Ptr Source ->                           -- _obj : TInterface "GLib" "Source"
+    IO ()
+
+
+sourceUnref ::
+    (MonadIO m) =>
+    Source ->                               -- _obj
+    m ()
+sourceUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_source_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct SourceCallbackFuncs
+newtype SourceCallbackFuncs = SourceCallbackFuncs (ForeignPtr SourceCallbackFuncs)
+noSourceCallbackFuncs :: Maybe SourceCallbackFuncs
+noSourceCallbackFuncs = Nothing
+
+-- XXX Skipped getter for "SourceCallbackFuncs:ref" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "SourceCallbackFuncs:unref" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- callback SourceDummyMarshal
+sourceDummyMarshalClosure :: SourceDummyMarshal -> IO Closure
+sourceDummyMarshalClosure cb = newCClosure =<< mkSourceDummyMarshal wrapped
+    where wrapped = sourceDummyMarshalWrapper Nothing cb
+
+type SourceDummyMarshalC =
+    IO ()
+
+foreign import ccall "wrapper"
+    mkSourceDummyMarshal :: SourceDummyMarshalC -> IO (FunPtr SourceDummyMarshalC)
+
+type SourceDummyMarshal =
+    IO ()
+
+noSourceDummyMarshal :: Maybe SourceDummyMarshal
+noSourceDummyMarshal = Nothing
+
+sourceDummyMarshalWrapper ::
+    Maybe (Ptr (FunPtr (SourceDummyMarshalC))) ->
+    SourceDummyMarshal ->
+    IO ()
+sourceDummyMarshalWrapper funptrptr _cb = do
+    _cb 
+    maybeReleaseFunPtr funptrptr
+
+-- callback SourceFunc
+sourceFuncClosure :: SourceFunc -> IO Closure
+sourceFuncClosure cb = newCClosure =<< mkSourceFunc wrapped
+    where wrapped = sourceFuncWrapper Nothing cb
+
+type SourceFuncC =
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkSourceFunc :: SourceFuncC -> IO (FunPtr SourceFuncC)
+
+type SourceFunc =
+    IO Bool
+
+noSourceFunc :: Maybe SourceFunc
+noSourceFunc = Nothing
+
+sourceFuncWrapper ::
+    Maybe (Ptr (FunPtr (SourceFuncC))) ->
+    SourceFunc ->
+    Ptr () ->
+    IO CInt
+sourceFuncWrapper funptrptr _cb _ = do
+    result <- _cb 
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- struct SourceFuncs
+newtype SourceFuncs = SourceFuncs (ForeignPtr SourceFuncs)
+noSourceFuncs :: Maybe SourceFuncs
+noSourceFuncs = Nothing
+
+-- XXX Skipped getter for "SourceFuncs:prepare" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "SourceFuncs:check" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- XXX Skipped getter for "SourceFuncs:finalize" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+-- callback SpawnChildSetupFunc
+spawnChildSetupFuncClosure :: SpawnChildSetupFunc -> IO Closure
+spawnChildSetupFuncClosure cb = newCClosure =<< mkSpawnChildSetupFunc wrapped
+    where wrapped = spawnChildSetupFuncWrapper Nothing cb
+
+type SpawnChildSetupFuncC =
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkSpawnChildSetupFunc :: SpawnChildSetupFuncC -> IO (FunPtr SpawnChildSetupFuncC)
+
+type SpawnChildSetupFunc =
+    IO ()
+
+noSpawnChildSetupFunc :: Maybe SpawnChildSetupFunc
+noSpawnChildSetupFunc = Nothing
+
+spawnChildSetupFuncWrapper ::
+    Maybe (Ptr (FunPtr (SpawnChildSetupFuncC))) ->
+    SpawnChildSetupFunc ->
+    Ptr () ->
+    IO ()
+spawnChildSetupFuncWrapper funptrptr _cb _ = do
+    _cb 
+    maybeReleaseFunPtr funptrptr
+
+-- Enum SpawnError
+
+data SpawnError = 
+      SpawnErrorFork
+    | SpawnErrorRead
+    | SpawnErrorChdir
+    | SpawnErrorAcces
+    | SpawnErrorPerm
+    | SpawnErrorTooBig
+    | SpawnError2big
+    | SpawnErrorNoexec
+    | SpawnErrorNametoolong
+    | SpawnErrorNoent
+    | SpawnErrorNomem
+    | SpawnErrorNotdir
+    | SpawnErrorLoop
+    | SpawnErrorTxtbusy
+    | SpawnErrorIo
+    | SpawnErrorNfile
+    | SpawnErrorMfile
+    | SpawnErrorInval
+    | SpawnErrorIsdir
+    | SpawnErrorLibbad
+    | SpawnErrorFailed
+    | AnotherSpawnError Int
+    deriving (Show, Eq)
+
+instance Enum SpawnError where
+    fromEnum SpawnErrorFork = 0
+    fromEnum SpawnErrorRead = 1
+    fromEnum SpawnErrorChdir = 2
+    fromEnum SpawnErrorAcces = 3
+    fromEnum SpawnErrorPerm = 4
+    fromEnum SpawnErrorTooBig = 5
+    fromEnum SpawnError2big = 5
+    fromEnum SpawnErrorNoexec = 6
+    fromEnum SpawnErrorNametoolong = 7
+    fromEnum SpawnErrorNoent = 8
+    fromEnum SpawnErrorNomem = 9
+    fromEnum SpawnErrorNotdir = 10
+    fromEnum SpawnErrorLoop = 11
+    fromEnum SpawnErrorTxtbusy = 12
+    fromEnum SpawnErrorIo = 13
+    fromEnum SpawnErrorNfile = 14
+    fromEnum SpawnErrorMfile = 15
+    fromEnum SpawnErrorInval = 16
+    fromEnum SpawnErrorIsdir = 17
+    fromEnum SpawnErrorLibbad = 18
+    fromEnum SpawnErrorFailed = 19
+    fromEnum (AnotherSpawnError k) = k
+
+    toEnum 0 = SpawnErrorFork
+    toEnum 1 = SpawnErrorRead
+    toEnum 2 = SpawnErrorChdir
+    toEnum 3 = SpawnErrorAcces
+    toEnum 4 = SpawnErrorPerm
+    toEnum 5 = SpawnErrorTooBig
+    toEnum 6 = SpawnErrorNoexec
+    toEnum 7 = SpawnErrorNametoolong
+    toEnum 8 = SpawnErrorNoent
+    toEnum 9 = SpawnErrorNomem
+    toEnum 10 = SpawnErrorNotdir
+    toEnum 11 = SpawnErrorLoop
+    toEnum 12 = SpawnErrorTxtbusy
+    toEnum 13 = SpawnErrorIo
+    toEnum 14 = SpawnErrorNfile
+    toEnum 15 = SpawnErrorMfile
+    toEnum 16 = SpawnErrorInval
+    toEnum 17 = SpawnErrorIsdir
+    toEnum 18 = SpawnErrorLibbad
+    toEnum 19 = SpawnErrorFailed
+    toEnum k = AnotherSpawnError k
+
+instance GErrorClass SpawnError where
+    gerrorClassDomain _ = "g-exec-error-quark"
+
+catchSpawnError ::
+    IO a ->
+    (SpawnError -> GErrorMessage -> IO a) ->
+    IO a
+catchSpawnError = catchGErrorJustDomain
+
+handleSpawnError ::
+    (SpawnError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleSpawnError = handleGErrorJustDomain
+
+-- Flags SpawnFlags
+
+data SpawnFlags = 
+      SpawnFlagsDefault
+    | SpawnFlagsLeaveDescriptorsOpen
+    | SpawnFlagsDoNotReapChild
+    | SpawnFlagsSearchPath
+    | SpawnFlagsStdoutToDevNull
+    | SpawnFlagsStderrToDevNull
+    | SpawnFlagsChildInheritsStdin
+    | SpawnFlagsFileAndArgvZero
+    | SpawnFlagsSearchPathFromEnvp
+    | SpawnFlagsCloexecPipes
+    | AnotherSpawnFlags Int
+    deriving (Show, Eq)
+
+instance Enum SpawnFlags where
+    fromEnum SpawnFlagsDefault = 0
+    fromEnum SpawnFlagsLeaveDescriptorsOpen = 1
+    fromEnum SpawnFlagsDoNotReapChild = 2
+    fromEnum SpawnFlagsSearchPath = 4
+    fromEnum SpawnFlagsStdoutToDevNull = 8
+    fromEnum SpawnFlagsStderrToDevNull = 16
+    fromEnum SpawnFlagsChildInheritsStdin = 32
+    fromEnum SpawnFlagsFileAndArgvZero = 64
+    fromEnum SpawnFlagsSearchPathFromEnvp = 128
+    fromEnum SpawnFlagsCloexecPipes = 256
+    fromEnum (AnotherSpawnFlags k) = k
+
+    toEnum 0 = SpawnFlagsDefault
+    toEnum 1 = SpawnFlagsLeaveDescriptorsOpen
+    toEnum 2 = SpawnFlagsDoNotReapChild
+    toEnum 4 = SpawnFlagsSearchPath
+    toEnum 8 = SpawnFlagsStdoutToDevNull
+    toEnum 16 = SpawnFlagsStderrToDevNull
+    toEnum 32 = SpawnFlagsChildInheritsStdin
+    toEnum 64 = SpawnFlagsFileAndArgvZero
+    toEnum 128 = SpawnFlagsSearchPathFromEnvp
+    toEnum 256 = SpawnFlagsCloexecPipes
+    toEnum k = AnotherSpawnFlags k
+
+instance IsGFlag SpawnFlags
+
+-- struct StatBuf
+newtype StatBuf = StatBuf (ForeignPtr StatBuf)
+noStatBuf :: Maybe StatBuf
+noStatBuf = Nothing
+
+-- struct String
+newtype String = String (ForeignPtr String)
+noString :: Maybe String
+noString = Nothing
+
+foreign import ccall "g_gstring_get_type" c_g_gstring_get_type :: 
+    IO GType
+
+instance BoxedObject String where
+    boxedType _ = c_g_gstring_get_type
+
+stringReadStr :: String -> IO T.Text
+stringReadStr s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+stringReadLen :: String -> IO Word64
+stringReadLen s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Word64
+    return val
+
+stringReadAllocatedLen :: String -> IO Word64
+stringReadAllocatedLen s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Word64
+    return val
+
+-- method String::append
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_append" g_string_append :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    CString ->                              -- val : TBasicType TUTF8
+    IO (Ptr String)
+
+
+stringAppend ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    T.Text ->                               -- val
+    m String
+stringAppend _obj val = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    val' <- textToCString val
+    result <- g_string_append _obj' val'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    freeMem val'
+    return result'
+
+-- method String::append_c
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_append_c" g_string_append_c :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO (Ptr String)
+
+
+stringAppendC ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Int8 ->                                 -- c
+    m String
+stringAppendC _obj c = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_append_c _obj' c
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::append_len
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_append_len" g_string_append_len :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    CString ->                              -- val : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO (Ptr String)
+
+
+stringAppendLen ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    T.Text ->                               -- val
+    Int64 ->                                -- len
+    m String
+stringAppendLen _obj val len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    val' <- textToCString val
+    result <- g_string_append_len _obj' val' len
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    freeMem val'
+    return result'
+
+-- method String::append_unichar
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_append_unichar" g_string_append_unichar :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    CInt ->                                 -- wc : TBasicType TUniChar
+    IO (Ptr String)
+
+
+stringAppendUnichar ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Char ->                                 -- wc
+    m String
+stringAppendUnichar _obj wc = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let wc' = (fromIntegral . ord) wc
+    result <- g_string_append_unichar _obj' wc'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::append_uri_escaped
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "unescaped", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "reserved_chars_allowed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "allow_utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "unescaped", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "reserved_chars_allowed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "allow_utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_append_uri_escaped" g_string_append_uri_escaped :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    CString ->                              -- unescaped : TBasicType TUTF8
+    CString ->                              -- reserved_chars_allowed : TBasicType TUTF8
+    CInt ->                                 -- allow_utf8 : TBasicType TBoolean
+    IO (Ptr String)
+
+
+stringAppendUriEscaped ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    T.Text ->                               -- unescaped
+    T.Text ->                               -- reserved_chars_allowed
+    Bool ->                                 -- allow_utf8
+    m String
+stringAppendUriEscaped _obj unescaped reserved_chars_allowed allow_utf8 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    unescaped' <- textToCString unescaped
+    reserved_chars_allowed' <- textToCString reserved_chars_allowed
+    let allow_utf8' = (fromIntegral . fromEnum) allow_utf8
+    result <- g_string_append_uri_escaped _obj' unescaped' reserved_chars_allowed' allow_utf8'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    freeMem unescaped'
+    freeMem reserved_chars_allowed'
+    return result'
+
+-- method String::ascii_down
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_ascii_down" g_string_ascii_down :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    IO (Ptr String)
+
+
+stringAsciiDown ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    m String
+stringAsciiDown _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_ascii_down _obj'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::ascii_up
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_ascii_up" g_string_ascii_up :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    IO (Ptr String)
+
+
+stringAsciiUp ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    m String
+stringAsciiUp _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_ascii_up _obj'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::assign
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rval", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rval", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_assign" g_string_assign :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    CString ->                              -- rval : TBasicType TUTF8
+    IO (Ptr String)
+
+
+stringAssign ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    T.Text ->                               -- rval
+    m String
+stringAssign _obj rval = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    rval' <- textToCString rval
+    result <- g_string_assign _obj' rval'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    freeMem rval'
+    return result'
+
+-- method String::down
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_down" g_string_down :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    IO (Ptr String)
+
+{-# DEPRECATED stringDown ["(Since version 2.2)","This function uses the locale-specific","    tolower() function, which is almost never the right thing.","    Use g_string_ascii_down() or g_utf8_strdown() instead."]#-}
+stringDown ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    m String
+stringDown _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_down _obj'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::equal
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_equal" g_string_equal :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Ptr String ->                           -- v2 : TInterface "GLib" "String"
+    IO CInt
+
+
+stringEqual ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    String ->                               -- v2
+    m Bool
+stringEqual _obj v2 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let v2' = unsafeManagedPtrGetPtr v2
+    result <- g_string_equal _obj' v2'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr v2
+    return result'
+
+-- method String::erase
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_erase" g_string_erase :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Int64 ->                                -- pos : TBasicType TInt64
+    Int64 ->                                -- len : TBasicType TInt64
+    IO (Ptr String)
+
+
+stringErase ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Int64 ->                                -- pos
+    Int64 ->                                -- len
+    m String
+stringErase _obj pos len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_erase _obj' pos len
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "free_segment", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "free_segment", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_free" g_string_free :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    CInt ->                                 -- free_segment : TBasicType TBoolean
+    IO CString
+
+
+stringFree ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Bool ->                                 -- free_segment
+    m T.Text
+stringFree _obj free_segment = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let free_segment' = (fromIntegral . fromEnum) free_segment
+    result <- g_string_free _obj' free_segment'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::free_to_bytes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Bytes"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_free_to_bytes" g_string_free_to_bytes :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    IO (Ptr Bytes)
+
+
+stringFreeToBytes ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    m Bytes
+stringFreeToBytes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_free_to_bytes _obj'
+    result' <- (wrapBoxed Bytes) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::hash
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_hash" g_string_hash :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    IO Word32
+
+
+stringHash ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    m Word32
+stringHash _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_hash _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method String::insert
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_insert" g_string_insert :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Int64 ->                                -- pos : TBasicType TInt64
+    CString ->                              -- val : TBasicType TUTF8
+    IO (Ptr String)
+
+
+stringInsert ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Int64 ->                                -- pos
+    T.Text ->                               -- val
+    m String
+stringInsert _obj pos val = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    val' <- textToCString val
+    result <- g_string_insert _obj' pos val'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    freeMem val'
+    return result'
+
+-- method String::insert_c
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_insert_c" g_string_insert_c :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Int64 ->                                -- pos : TBasicType TInt64
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO (Ptr String)
+
+
+stringInsertC ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Int64 ->                                -- pos
+    Int8 ->                                 -- c
+    m String
+stringInsertC _obj pos c = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_insert_c _obj' pos c
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::insert_len
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_insert_len" g_string_insert_len :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Int64 ->                                -- pos : TBasicType TInt64
+    CString ->                              -- val : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO (Ptr String)
+
+
+stringInsertLen ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Int64 ->                                -- pos
+    T.Text ->                               -- val
+    Int64 ->                                -- len
+    m String
+stringInsertLen _obj pos val len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    val' <- textToCString val
+    result <- g_string_insert_len _obj' pos val' len
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    freeMem val'
+    return result'
+
+-- method String::insert_unichar
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_insert_unichar" g_string_insert_unichar :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Int64 ->                                -- pos : TBasicType TInt64
+    CInt ->                                 -- wc : TBasicType TUniChar
+    IO (Ptr String)
+
+
+stringInsertUnichar ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Int64 ->                                -- pos
+    Char ->                                 -- wc
+    m String
+stringInsertUnichar _obj pos wc = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let wc' = (fromIntegral . ord) wc
+    result <- g_string_insert_unichar _obj' pos wc'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::overwrite
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_overwrite" g_string_overwrite :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Word64 ->                               -- pos : TBasicType TUInt64
+    CString ->                              -- val : TBasicType TUTF8
+    IO (Ptr String)
+
+
+stringOverwrite ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Word64 ->                               -- pos
+    T.Text ->                               -- val
+    m String
+stringOverwrite _obj pos val = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    val' <- textToCString val
+    result <- g_string_overwrite _obj' pos val'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    freeMem val'
+    return result'
+
+-- method String::overwrite_len
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_overwrite_len" g_string_overwrite_len :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Word64 ->                               -- pos : TBasicType TUInt64
+    CString ->                              -- val : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO (Ptr String)
+
+
+stringOverwriteLen ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Word64 ->                               -- pos
+    T.Text ->                               -- val
+    Int64 ->                                -- len
+    m String
+stringOverwriteLen _obj pos val len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    val' <- textToCString val
+    result <- g_string_overwrite_len _obj' pos val' len
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    freeMem val'
+    return result'
+
+-- method String::prepend
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_prepend" g_string_prepend :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    CString ->                              -- val : TBasicType TUTF8
+    IO (Ptr String)
+
+
+stringPrepend ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    T.Text ->                               -- val
+    m String
+stringPrepend _obj val = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    val' <- textToCString val
+    result <- g_string_prepend _obj' val'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    freeMem val'
+    return result'
+
+-- method String::prepend_c
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_prepend_c" g_string_prepend_c :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO (Ptr String)
+
+
+stringPrependC ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Int8 ->                                 -- c
+    m String
+stringPrependC _obj c = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_prepend_c _obj' c
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::prepend_len
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_prepend_len" g_string_prepend_len :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    CString ->                              -- val : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO (Ptr String)
+
+
+stringPrependLen ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    T.Text ->                               -- val
+    Int64 ->                                -- len
+    m String
+stringPrependLen _obj val len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    val' <- textToCString val
+    result <- g_string_prepend_len _obj' val' len
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    freeMem val'
+    return result'
+
+-- method String::prepend_unichar
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_prepend_unichar" g_string_prepend_unichar :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    CInt ->                                 -- wc : TBasicType TUniChar
+    IO (Ptr String)
+
+
+stringPrependUnichar ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Char ->                                 -- wc
+    m String
+stringPrependUnichar _obj wc = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let wc' = (fromIntegral . ord) wc
+    result <- g_string_prepend_unichar _obj' wc'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::set_size
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_set_size" g_string_set_size :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Word64 ->                               -- len : TBasicType TUInt64
+    IO (Ptr String)
+
+
+stringSetSize ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Word64 ->                               -- len
+    m String
+stringSetSize _obj len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_set_size _obj' len
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::truncate
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_truncate" g_string_truncate :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    Word64 ->                               -- len : TBasicType TUInt64
+    IO (Ptr String)
+
+
+stringTruncate ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    Word64 ->                               -- len
+    m String
+stringTruncate _obj len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_truncate _obj' len
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- method String::up
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_up" g_string_up :: 
+    Ptr String ->                           -- _obj : TInterface "GLib" "String"
+    IO (Ptr String)
+
+{-# DEPRECATED stringUp ["(Since version 2.2)","This function uses the locale-specific","    toupper() function, which is almost never the right thing.","    Use g_string_ascii_up() or g_utf8_strup() instead."]#-}
+stringUp ::
+    (MonadIO m) =>
+    String ->                               -- _obj
+    m String
+stringUp _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_string_up _obj'
+    result' <- (wrapBoxed String) result
+    touchManagedPtr _obj
+    return result'
+
+-- struct StringChunk
+newtype StringChunk = StringChunk (ForeignPtr StringChunk)
+noStringChunk :: Maybe StringChunk
+noStringChunk = Nothing
+
+-- method StringChunk::clear
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_chunk_clear" g_string_chunk_clear :: 
+    Ptr StringChunk ->                      -- _obj : TInterface "GLib" "StringChunk"
+    IO ()
+
+
+stringChunkClear ::
+    (MonadIO m) =>
+    StringChunk ->                          -- _obj
+    m ()
+stringChunkClear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_string_chunk_clear _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method StringChunk::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_chunk_free" g_string_chunk_free :: 
+    Ptr StringChunk ->                      -- _obj : TInterface "GLib" "StringChunk"
+    IO ()
+
+
+stringChunkFree ::
+    (MonadIO m) =>
+    StringChunk ->                          -- _obj
+    m ()
+stringChunkFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_string_chunk_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method StringChunk::insert
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_chunk_insert" g_string_chunk_insert :: 
+    Ptr StringChunk ->                      -- _obj : TInterface "GLib" "StringChunk"
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+stringChunkInsert ::
+    (MonadIO m) =>
+    StringChunk ->                          -- _obj
+    T.Text ->                               -- string
+    m T.Text
+stringChunkInsert _obj string = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- textToCString string
+    result <- g_string_chunk_insert _obj' string'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    freeMem string'
+    return result'
+
+-- method StringChunk::insert_const
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_chunk_insert_const" g_string_chunk_insert_const :: 
+    Ptr StringChunk ->                      -- _obj : TInterface "GLib" "StringChunk"
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+stringChunkInsertConst ::
+    (MonadIO m) =>
+    StringChunk ->                          -- _obj
+    T.Text ->                               -- string
+    m T.Text
+stringChunkInsertConst _obj string = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- textToCString string
+    result <- g_string_chunk_insert_const _obj' string'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    freeMem string'
+    return result'
+
+-- method StringChunk::insert_len
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_chunk_insert_len" g_string_chunk_insert_len :: 
+    Ptr StringChunk ->                      -- _obj : TInterface "GLib" "StringChunk"
+    CString ->                              -- string : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+stringChunkInsertLen ::
+    (MonadIO m) =>
+    StringChunk ->                          -- _obj
+    T.Text ->                               -- string
+    Int64 ->                                -- len
+    m T.Text
+stringChunkInsertLen _obj string len = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    string' <- textToCString string
+    result <- g_string_chunk_insert_len _obj' string' len
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    freeMem string'
+    return result'
+
+-- struct TestCase
+newtype TestCase = TestCase (ForeignPtr TestCase)
+noTestCase :: Maybe TestCase
+noTestCase = Nothing
+
+-- struct TestConfig
+newtype TestConfig = TestConfig (ForeignPtr TestConfig)
+noTestConfig :: Maybe TestConfig
+noTestConfig = Nothing
+
+testConfigReadTestInitialized :: TestConfig -> IO Bool
+testConfigReadTestInitialized s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+testConfigReadTestQuick :: TestConfig -> IO Bool
+testConfigReadTestQuick s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 4) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+testConfigReadTestPerf :: TestConfig -> IO Bool
+testConfigReadTestPerf s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+testConfigReadTestVerbose :: TestConfig -> IO Bool
+testConfigReadTestVerbose s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 12) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+testConfigReadTestQuiet :: TestConfig -> IO Bool
+testConfigReadTestQuiet s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+testConfigReadTestUndefined :: TestConfig -> IO Bool
+testConfigReadTestUndefined s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 20) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+-- callback TestDataFunc
+testDataFuncClosure :: TestDataFunc -> IO Closure
+testDataFuncClosure cb = newCClosure =<< mkTestDataFunc wrapped
+    where wrapped = testDataFuncWrapper Nothing cb
+
+type TestDataFuncC =
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkTestDataFunc :: TestDataFuncC -> IO (FunPtr TestDataFuncC)
+
+type TestDataFunc =
+    IO ()
+
+noTestDataFunc :: Maybe TestDataFunc
+noTestDataFunc = Nothing
+
+testDataFuncWrapper ::
+    Maybe (Ptr (FunPtr (TestDataFuncC))) ->
+    TestDataFunc ->
+    Ptr () ->
+    IO ()
+testDataFuncWrapper funptrptr _cb _ = do
+    _cb 
+    maybeReleaseFunPtr funptrptr
+
+-- Enum TestFileType
+
+data TestFileType = 
+      TestFileTypeDist
+    | TestFileTypeBuilt
+    | AnotherTestFileType Int
+    deriving (Show, Eq)
+
+instance Enum TestFileType where
+    fromEnum TestFileTypeDist = 0
+    fromEnum TestFileTypeBuilt = 1
+    fromEnum (AnotherTestFileType k) = k
+
+    toEnum 0 = TestFileTypeDist
+    toEnum 1 = TestFileTypeBuilt
+    toEnum k = AnotherTestFileType k
+
+-- callback TestFixtureFunc
+testFixtureFuncClosure :: TestFixtureFunc -> IO Closure
+testFixtureFuncClosure cb = newCClosure =<< mkTestFixtureFunc wrapped
+    where wrapped = testFixtureFuncWrapper Nothing cb
+
+type TestFixtureFuncC =
+    Ptr () ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkTestFixtureFunc :: TestFixtureFuncC -> IO (FunPtr TestFixtureFuncC)
+
+type TestFixtureFunc =
+    Ptr () ->
+    IO ()
+
+noTestFixtureFunc :: Maybe TestFixtureFunc
+noTestFixtureFunc = Nothing
+
+testFixtureFuncWrapper ::
+    Maybe (Ptr (FunPtr (TestFixtureFuncC))) ->
+    TestFixtureFunc ->
+    Ptr () ->
+    Ptr () ->
+    IO ()
+testFixtureFuncWrapper funptrptr _cb fixture _ = do
+    _cb  fixture
+    maybeReleaseFunPtr funptrptr
+
+-- callback TestFunc
+testFuncClosure :: TestFunc -> IO Closure
+testFuncClosure cb = newCClosure =<< mkTestFunc wrapped
+    where wrapped = testFuncWrapper Nothing cb
+
+type TestFuncC =
+    IO ()
+
+foreign import ccall "wrapper"
+    mkTestFunc :: TestFuncC -> IO (FunPtr TestFuncC)
+
+type TestFunc =
+    IO ()
+
+noTestFunc :: Maybe TestFunc
+noTestFunc = Nothing
+
+testFuncWrapper ::
+    Maybe (Ptr (FunPtr (TestFuncC))) ->
+    TestFunc ->
+    IO ()
+testFuncWrapper funptrptr _cb = do
+    _cb 
+    maybeReleaseFunPtr funptrptr
+
+-- struct TestLogBuffer
+newtype TestLogBuffer = TestLogBuffer (ForeignPtr TestLogBuffer)
+noTestLogBuffer :: Maybe TestLogBuffer
+noTestLogBuffer = Nothing
+
+-- method TestLogBuffer::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TestLogBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TestLogBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_log_buffer_free" g_test_log_buffer_free :: 
+    Ptr TestLogBuffer ->                    -- _obj : TInterface "GLib" "TestLogBuffer"
+    IO ()
+
+
+testLogBufferFree ::
+    (MonadIO m) =>
+    TestLogBuffer ->                        -- _obj
+    m ()
+testLogBufferFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_test_log_buffer_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method TestLogBuffer::push
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TestLogBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_bytes", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TestLogBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_bytes", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_log_buffer_push" g_test_log_buffer_push :: 
+    Ptr TestLogBuffer ->                    -- _obj : TInterface "GLib" "TestLogBuffer"
+    Word32 ->                               -- n_bytes : TBasicType TUInt32
+    Word8 ->                                -- bytes : TBasicType TUInt8
+    IO ()
+
+
+testLogBufferPush ::
+    (MonadIO m) =>
+    TestLogBuffer ->                        -- _obj
+    Word32 ->                               -- n_bytes
+    Word8 ->                                -- bytes
+    m ()
+testLogBufferPush _obj n_bytes bytes = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_test_log_buffer_push _obj' n_bytes bytes
+    touchManagedPtr _obj
+    return ()
+
+-- callback TestLogFatalFunc
+testLogFatalFuncClosure :: TestLogFatalFunc -> IO Closure
+testLogFatalFuncClosure cb = newCClosure =<< mkTestLogFatalFunc wrapped
+    where wrapped = testLogFatalFuncWrapper Nothing cb
+
+type TestLogFatalFuncC =
+    CString ->
+    CUInt ->
+    CString ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkTestLogFatalFunc :: TestLogFatalFuncC -> IO (FunPtr TestLogFatalFuncC)
+
+type TestLogFatalFunc =
+    T.Text ->
+    [LogLevelFlags] ->
+    T.Text ->
+    IO Bool
+
+noTestLogFatalFunc :: Maybe TestLogFatalFunc
+noTestLogFatalFunc = Nothing
+
+testLogFatalFuncWrapper ::
+    Maybe (Ptr (FunPtr (TestLogFatalFuncC))) ->
+    TestLogFatalFunc ->
+    CString ->
+    CUInt ->
+    CString ->
+    Ptr () ->
+    IO CInt
+testLogFatalFuncWrapper funptrptr _cb log_domain log_level message _ = do
+    log_domain' <- cstringToText log_domain
+    let log_level' = wordToGFlags log_level
+    message' <- cstringToText message
+    result <- _cb  log_domain' log_level' message'
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- struct TestLogMsg
+newtype TestLogMsg = TestLogMsg (ForeignPtr TestLogMsg)
+noTestLogMsg :: Maybe TestLogMsg
+noTestLogMsg = Nothing
+
+testLogMsgReadLogType :: TestLogMsg -> IO TestLogType
+testLogMsgReadLogType s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CUInt
+    let val' = (toEnum . fromIntegral) val
+    return val'
+
+testLogMsgReadNStrings :: TestLogMsg -> IO Word32
+testLogMsgReadNStrings s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 4) :: IO Word32
+    return val
+
+testLogMsgReadStrings :: TestLogMsg -> IO T.Text
+testLogMsgReadStrings s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+testLogMsgReadNNums :: TestLogMsg -> IO Word32
+testLogMsgReadNNums s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO Word32
+    return val
+
+testLogMsgReadNums :: TestLogMsg -> IO Int64
+testLogMsgReadNums s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 24) :: IO Int64
+    return val
+
+-- method TestLogMsg::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TestLogMsg", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TestLogMsg", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_log_msg_free" g_test_log_msg_free :: 
+    Ptr TestLogMsg ->                       -- _obj : TInterface "GLib" "TestLogMsg"
+    IO ()
+
+
+testLogMsgFree ::
+    (MonadIO m) =>
+    TestLogMsg ->                           -- _obj
+    m ()
+testLogMsgFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_test_log_msg_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Enum TestLogType
+
+data TestLogType = 
+      TestLogTypeNone
+    | TestLogTypeError
+    | TestLogTypeStartBinary
+    | TestLogTypeListCase
+    | TestLogTypeSkipCase
+    | TestLogTypeStartCase
+    | TestLogTypeStopCase
+    | TestLogTypeMinResult
+    | TestLogTypeMaxResult
+    | TestLogTypeMessage
+    | TestLogTypeStartSuite
+    | TestLogTypeStopSuite
+    | AnotherTestLogType Int
+    deriving (Show, Eq)
+
+instance Enum TestLogType where
+    fromEnum TestLogTypeNone = 0
+    fromEnum TestLogTypeError = 1
+    fromEnum TestLogTypeStartBinary = 2
+    fromEnum TestLogTypeListCase = 3
+    fromEnum TestLogTypeSkipCase = 4
+    fromEnum TestLogTypeStartCase = 5
+    fromEnum TestLogTypeStopCase = 6
+    fromEnum TestLogTypeMinResult = 7
+    fromEnum TestLogTypeMaxResult = 8
+    fromEnum TestLogTypeMessage = 9
+    fromEnum TestLogTypeStartSuite = 10
+    fromEnum TestLogTypeStopSuite = 11
+    fromEnum (AnotherTestLogType k) = k
+
+    toEnum 0 = TestLogTypeNone
+    toEnum 1 = TestLogTypeError
+    toEnum 2 = TestLogTypeStartBinary
+    toEnum 3 = TestLogTypeListCase
+    toEnum 4 = TestLogTypeSkipCase
+    toEnum 5 = TestLogTypeStartCase
+    toEnum 6 = TestLogTypeStopCase
+    toEnum 7 = TestLogTypeMinResult
+    toEnum 8 = TestLogTypeMaxResult
+    toEnum 9 = TestLogTypeMessage
+    toEnum 10 = TestLogTypeStartSuite
+    toEnum 11 = TestLogTypeStopSuite
+    toEnum k = AnotherTestLogType k
+
+-- Flags TestSubprocessFlags
+
+data TestSubprocessFlags = 
+      TestSubprocessFlagsStdin
+    | TestSubprocessFlagsStdout
+    | TestSubprocessFlagsStderr
+    | AnotherTestSubprocessFlags Int
+    deriving (Show, Eq)
+
+instance Enum TestSubprocessFlags where
+    fromEnum TestSubprocessFlagsStdin = 1
+    fromEnum TestSubprocessFlagsStdout = 2
+    fromEnum TestSubprocessFlagsStderr = 4
+    fromEnum (AnotherTestSubprocessFlags k) = k
+
+    toEnum 1 = TestSubprocessFlagsStdin
+    toEnum 2 = TestSubprocessFlagsStdout
+    toEnum 4 = TestSubprocessFlagsStderr
+    toEnum k = AnotherTestSubprocessFlags k
+
+instance IsGFlag TestSubprocessFlags
+
+-- struct TestSuite
+newtype TestSuite = TestSuite (ForeignPtr TestSuite)
+noTestSuite :: Maybe TestSuite
+noTestSuite = Nothing
+
+-- method TestSuite::add
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_case", argType = TInterface "GLib" "TestCase", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_case", argType = TInterface "GLib" "TestCase", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_suite_add" g_test_suite_add :: 
+    Ptr TestSuite ->                        -- _obj : TInterface "GLib" "TestSuite"
+    Ptr TestCase ->                         -- test_case : TInterface "GLib" "TestCase"
+    IO ()
+
+
+testSuiteAdd ::
+    (MonadIO m) =>
+    TestSuite ->                            -- _obj
+    TestCase ->                             -- test_case
+    m ()
+testSuiteAdd _obj test_case = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let test_case' = unsafeManagedPtrGetPtr test_case
+    g_test_suite_add _obj' test_case'
+    touchManagedPtr _obj
+    touchManagedPtr test_case
+    return ()
+
+-- method TestSuite::add_suite
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nestedsuite", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nestedsuite", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_suite_add_suite" g_test_suite_add_suite :: 
+    Ptr TestSuite ->                        -- _obj : TInterface "GLib" "TestSuite"
+    Ptr TestSuite ->                        -- nestedsuite : TInterface "GLib" "TestSuite"
+    IO ()
+
+
+testSuiteAddSuite ::
+    (MonadIO m) =>
+    TestSuite ->                            -- _obj
+    TestSuite ->                            -- nestedsuite
+    m ()
+testSuiteAddSuite _obj nestedsuite = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let nestedsuite' = unsafeManagedPtrGetPtr nestedsuite
+    g_test_suite_add_suite _obj' nestedsuite'
+    touchManagedPtr _obj
+    touchManagedPtr nestedsuite
+    return ()
+
+-- Flags TestTrapFlags
+{-# DEPRECATED TestTrapFlags ["#GTestTrapFlags is used only with g_test_trap_fork(),","which is deprecated. g_test_trap_subprocess() uses","#GTestTrapSubprocessFlags."]#-}
+data TestTrapFlags = 
+      TestTrapFlagsSilenceStdout
+    | TestTrapFlagsSilenceStderr
+    | TestTrapFlagsInheritStdin
+    | AnotherTestTrapFlags Int
+    deriving (Show, Eq)
+
+instance Enum TestTrapFlags where
+    fromEnum TestTrapFlagsSilenceStdout = 128
+    fromEnum TestTrapFlagsSilenceStderr = 256
+    fromEnum TestTrapFlagsInheritStdin = 512
+    fromEnum (AnotherTestTrapFlags k) = k
+
+    toEnum 128 = TestTrapFlagsSilenceStdout
+    toEnum 256 = TestTrapFlagsSilenceStderr
+    toEnum 512 = TestTrapFlagsInheritStdin
+    toEnum k = AnotherTestTrapFlags k
+
+instance IsGFlag TestTrapFlags
+
+-- struct Thread
+newtype Thread = Thread (ForeignPtr Thread)
+noThread :: Maybe Thread
+noThread = Nothing
+
+foreign import ccall "g_thread_get_type" c_g_thread_get_type :: 
+    IO GType
+
+instance BoxedObject Thread where
+    boxedType _ = c_g_thread_get_type
+
+-- method Thread::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Thread", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Thread", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Thread"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_ref" g_thread_ref :: 
+    Ptr Thread ->                           -- _obj : TInterface "GLib" "Thread"
+    IO (Ptr Thread)
+
+
+threadRef ::
+    (MonadIO m) =>
+    Thread ->                               -- _obj
+    m Thread
+threadRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_thread_ref _obj'
+    result' <- (wrapBoxed Thread) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Thread::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Thread", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Thread", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_unref" g_thread_unref :: 
+    Ptr Thread ->                           -- _obj : TInterface "GLib" "Thread"
+    IO ()
+
+
+threadUnref ::
+    (MonadIO m) =>
+    Thread ->                               -- _obj
+    m ()
+threadUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_thread_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Enum ThreadError
+
+data ThreadError = 
+      ThreadErrorThreadErrorAgain
+    | AnotherThreadError Int
+    deriving (Show, Eq)
+
+instance Enum ThreadError where
+    fromEnum ThreadErrorThreadErrorAgain = 0
+    fromEnum (AnotherThreadError k) = k
+
+    toEnum 0 = ThreadErrorThreadErrorAgain
+    toEnum k = AnotherThreadError k
+
+instance GErrorClass ThreadError where
+    gerrorClassDomain _ = "g_thread_error"
+
+catchThreadError ::
+    IO a ->
+    (ThreadError -> GErrorMessage -> IO a) ->
+    IO a
+catchThreadError = catchGErrorJustDomain
+
+handleThreadError ::
+    (ThreadError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleThreadError = handleGErrorJustDomain
+
+-- struct ThreadPool
+newtype ThreadPool = ThreadPool (ForeignPtr ThreadPool)
+noThreadPool :: Maybe ThreadPool
+noThreadPool = Nothing
+
+-- XXX Skipped getter for "ThreadPool:func" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+threadPoolReadUserData :: ThreadPool -> IO (Ptr ())
+threadPoolReadUserData s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO (Ptr ())
+    return val
+
+threadPoolReadExclusive :: ThreadPool -> IO Bool
+threadPoolReadExclusive s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 16) :: IO CInt
+    let val' = (/= 0) val
+    return val'
+
+-- method ThreadPool::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "immediate", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wait_", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "immediate", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "wait_", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_free" g_thread_pool_free :: 
+    Ptr ThreadPool ->                       -- _obj : TInterface "GLib" "ThreadPool"
+    CInt ->                                 -- immediate : TBasicType TBoolean
+    CInt ->                                 -- wait_ : TBasicType TBoolean
+    IO ()
+
+
+threadPoolFree ::
+    (MonadIO m) =>
+    ThreadPool ->                           -- _obj
+    Bool ->                                 -- immediate
+    Bool ->                                 -- wait_
+    m ()
+threadPoolFree _obj immediate wait_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let immediate' = (fromIntegral . fromEnum) immediate
+    let wait_' = (fromIntegral . fromEnum) wait_
+    g_thread_pool_free _obj' immediate' wait_'
+    touchManagedPtr _obj
+    return ()
+
+-- method ThreadPool::get_max_threads
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_get_max_threads" g_thread_pool_get_max_threads :: 
+    Ptr ThreadPool ->                       -- _obj : TInterface "GLib" "ThreadPool"
+    IO Int32
+
+
+threadPoolGetMaxThreads ::
+    (MonadIO m) =>
+    ThreadPool ->                           -- _obj
+    m Int32
+threadPoolGetMaxThreads _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_thread_pool_get_max_threads _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method ThreadPool::get_num_threads
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_get_num_threads" g_thread_pool_get_num_threads :: 
+    Ptr ThreadPool ->                       -- _obj : TInterface "GLib" "ThreadPool"
+    IO Word32
+
+
+threadPoolGetNumThreads ::
+    (MonadIO m) =>
+    ThreadPool ->                           -- _obj
+    m Word32
+threadPoolGetNumThreads _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_thread_pool_get_num_threads _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method ThreadPool::push
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_push" g_thread_pool_push :: 
+    Ptr ThreadPool ->                       -- _obj : TInterface "GLib" "ThreadPool"
+    Ptr () ->                               -- data : TBasicType TVoid
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+threadPoolPush ::
+    (MonadIO m) =>
+    ThreadPool ->                           -- _obj
+    Ptr () ->                               -- data
+    m ()
+threadPoolPush _obj data_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    onException (do
+        _ <- propagateGError $ g_thread_pool_push _obj' data_
+        touchManagedPtr _obj
+        return ()
+     ) (do
+        return ()
+     )
+
+-- method ThreadPool::set_max_threads
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_set_max_threads" g_thread_pool_set_max_threads :: 
+    Ptr ThreadPool ->                       -- _obj : TInterface "GLib" "ThreadPool"
+    Int32 ->                                -- max_threads : TBasicType TInt32
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+threadPoolSetMaxThreads ::
+    (MonadIO m) =>
+    ThreadPool ->                           -- _obj
+    Int32 ->                                -- max_threads
+    m ()
+threadPoolSetMaxThreads _obj max_threads = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    onException (do
+        _ <- propagateGError $ g_thread_pool_set_max_threads _obj' max_threads
+        touchManagedPtr _obj
+        return ()
+     ) (do
+        return ()
+     )
+
+-- method ThreadPool::unprocessed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_unprocessed" g_thread_pool_unprocessed :: 
+    Ptr ThreadPool ->                       -- _obj : TInterface "GLib" "ThreadPool"
+    IO Word32
+
+
+threadPoolUnprocessed ::
+    (MonadIO m) =>
+    ThreadPool ->                           -- _obj
+    m Word32
+threadPoolUnprocessed _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_thread_pool_unprocessed _obj'
+    touchManagedPtr _obj
+    return result
+
+-- Enum TimeType
+
+data TimeType = 
+      TimeTypeStandard
+    | TimeTypeDaylight
+    | TimeTypeUniversal
+    | AnotherTimeType Int
+    deriving (Show, Eq)
+
+instance Enum TimeType where
+    fromEnum TimeTypeStandard = 0
+    fromEnum TimeTypeDaylight = 1
+    fromEnum TimeTypeUniversal = 2
+    fromEnum (AnotherTimeType k) = k
+
+    toEnum 0 = TimeTypeStandard
+    toEnum 1 = TimeTypeDaylight
+    toEnum 2 = TimeTypeUniversal
+    toEnum k = AnotherTimeType k
+
+-- struct TimeVal
+newtype TimeVal = TimeVal (ForeignPtr TimeVal)
+noTimeVal :: Maybe TimeVal
+noTimeVal = Nothing
+
+timeValReadTvSec :: TimeVal -> IO Int64
+timeValReadTvSec s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Int64
+    return val
+
+timeValReadTvUsec :: TimeVal -> IO Int64
+timeValReadTvUsec s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 8) :: IO Int64
+    return val
+
+-- method TimeVal::add
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "microseconds", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "microseconds", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_val_add" g_time_val_add :: 
+    Ptr TimeVal ->                          -- _obj : TInterface "GLib" "TimeVal"
+    Int64 ->                                -- microseconds : TBasicType TInt64
+    IO ()
+
+
+timeValAdd ::
+    (MonadIO m) =>
+    TimeVal ->                              -- _obj
+    Int64 ->                                -- microseconds
+    m ()
+timeValAdd _obj microseconds = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_time_val_add _obj' microseconds
+    touchManagedPtr _obj
+    return ()
+
+-- method TimeVal::to_iso8601
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_val_to_iso8601" g_time_val_to_iso8601 :: 
+    Ptr TimeVal ->                          -- _obj : TInterface "GLib" "TimeVal"
+    IO CString
+
+
+timeValToIso8601 ::
+    (MonadIO m) =>
+    TimeVal ->                              -- _obj
+    m T.Text
+timeValToIso8601 _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_time_val_to_iso8601 _obj'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+-- struct TimeZone
+newtype TimeZone = TimeZone (ForeignPtr TimeZone)
+noTimeZone :: Maybe TimeZone
+noTimeZone = Nothing
+
+foreign import ccall "g_time_zone_get_type" c_g_time_zone_get_type :: 
+    IO GType
+
+instance BoxedObject TimeZone where
+    boxedType _ = c_g_time_zone_get_type
+
+-- method TimeZone::new
+-- method type : Constructor
+-- Args : [Arg {argName = "identifier", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "identifier", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "TimeZone"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_zone_new" g_time_zone_new :: 
+    CString ->                              -- identifier : TBasicType TUTF8
+    IO (Ptr TimeZone)
+
+
+timeZoneNew ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- identifier
+    m TimeZone
+timeZoneNew identifier = liftIO $ do
+    maybeIdentifier <- case identifier of
+        Nothing -> return nullPtr
+        Just jIdentifier -> do
+            jIdentifier' <- textToCString jIdentifier
+            return jIdentifier'
+    result <- g_time_zone_new maybeIdentifier
+    result' <- (wrapBoxed TimeZone) result
+    freeMem maybeIdentifier
+    return result'
+
+-- method TimeZone::new_local
+-- method type : Constructor
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "TimeZone"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_zone_new_local" g_time_zone_new_local :: 
+    IO (Ptr TimeZone)
+
+
+timeZoneNewLocal ::
+    (MonadIO m) =>
+    m TimeZone
+timeZoneNewLocal  = liftIO $ do
+    result <- g_time_zone_new_local
+    result' <- (wrapBoxed TimeZone) result
+    return result'
+
+-- method TimeZone::new_utc
+-- method type : Constructor
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "TimeZone"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_zone_new_utc" g_time_zone_new_utc :: 
+    IO (Ptr TimeZone)
+
+
+timeZoneNewUtc ::
+    (MonadIO m) =>
+    m TimeZone
+timeZoneNewUtc  = liftIO $ do
+    result <- g_time_zone_new_utc
+    result' <- (wrapBoxed TimeZone) result
+    return result'
+
+-- method TimeZone::adjust_time
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "GLib" "TimeType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "GLib" "TimeType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_zone_adjust_time" g_time_zone_adjust_time :: 
+    Ptr TimeZone ->                         -- _obj : TInterface "GLib" "TimeZone"
+    CUInt ->                                -- type : TInterface "GLib" "TimeType"
+    Int64 ->                                -- time_ : TBasicType TInt64
+    IO Int32
+
+
+timeZoneAdjustTime ::
+    (MonadIO m) =>
+    TimeZone ->                             -- _obj
+    TimeType ->                             -- type
+    Int64 ->                                -- time_
+    m Int32
+timeZoneAdjustTime _obj type_ time_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let type_' = (fromIntegral . fromEnum) type_
+    result <- g_time_zone_adjust_time _obj' type_' time_
+    touchManagedPtr _obj
+    return result
+
+-- method TimeZone::find_interval
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "GLib" "TimeType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "GLib" "TimeType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_zone_find_interval" g_time_zone_find_interval :: 
+    Ptr TimeZone ->                         -- _obj : TInterface "GLib" "TimeZone"
+    CUInt ->                                -- type : TInterface "GLib" "TimeType"
+    Int64 ->                                -- time_ : TBasicType TInt64
+    IO Int32
+
+
+timeZoneFindInterval ::
+    (MonadIO m) =>
+    TimeZone ->                             -- _obj
+    TimeType ->                             -- type
+    Int64 ->                                -- time_
+    m Int32
+timeZoneFindInterval _obj type_ time_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let type_' = (fromIntegral . fromEnum) type_
+    result <- g_time_zone_find_interval _obj' type_' time_
+    touchManagedPtr _obj
+    return result
+
+-- method TimeZone::get_abbreviation
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_zone_get_abbreviation" g_time_zone_get_abbreviation :: 
+    Ptr TimeZone ->                         -- _obj : TInterface "GLib" "TimeZone"
+    Int32 ->                                -- interval : TBasicType TInt32
+    IO CString
+
+
+timeZoneGetAbbreviation ::
+    (MonadIO m) =>
+    TimeZone ->                             -- _obj
+    Int32 ->                                -- interval
+    m T.Text
+timeZoneGetAbbreviation _obj interval = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_time_zone_get_abbreviation _obj' interval
+    result' <- cstringToText result
+    touchManagedPtr _obj
+    return result'
+
+-- method TimeZone::get_offset
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_zone_get_offset" g_time_zone_get_offset :: 
+    Ptr TimeZone ->                         -- _obj : TInterface "GLib" "TimeZone"
+    Int32 ->                                -- interval : TBasicType TInt32
+    IO Int32
+
+
+timeZoneGetOffset ::
+    (MonadIO m) =>
+    TimeZone ->                             -- _obj
+    Int32 ->                                -- interval
+    m Int32
+timeZoneGetOffset _obj interval = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_time_zone_get_offset _obj' interval
+    touchManagedPtr _obj
+    return result
+
+-- method TimeZone::is_dst
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_zone_is_dst" g_time_zone_is_dst :: 
+    Ptr TimeZone ->                         -- _obj : TInterface "GLib" "TimeZone"
+    Int32 ->                                -- interval : TBasicType TInt32
+    IO CInt
+
+
+timeZoneIsDst ::
+    (MonadIO m) =>
+    TimeZone ->                             -- _obj
+    Int32 ->                                -- interval
+    m Bool
+timeZoneIsDst _obj interval = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_time_zone_is_dst _obj' interval
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method TimeZone::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "TimeZone"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_zone_ref" g_time_zone_ref :: 
+    Ptr TimeZone ->                         -- _obj : TInterface "GLib" "TimeZone"
+    IO (Ptr TimeZone)
+
+
+timeZoneRef ::
+    (MonadIO m) =>
+    TimeZone ->                             -- _obj
+    m TimeZone
+timeZoneRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_time_zone_ref _obj'
+    result' <- (wrapBoxed TimeZone) result
+    touchManagedPtr _obj
+    return result'
+
+-- method TimeZone::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_zone_unref" g_time_zone_unref :: 
+    Ptr TimeZone ->                         -- _obj : TInterface "GLib" "TimeZone"
+    IO ()
+
+
+timeZoneUnref ::
+    (MonadIO m) =>
+    TimeZone ->                             -- _obj
+    m ()
+timeZoneUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_time_zone_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- struct Timer
+newtype Timer = Timer (ForeignPtr Timer)
+noTimer :: Maybe Timer
+noTimer = Nothing
+
+-- method Timer::continue
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timer_continue" g_timer_continue :: 
+    Ptr Timer ->                            -- _obj : TInterface "GLib" "Timer"
+    IO ()
+
+
+timerContinue ::
+    (MonadIO m) =>
+    Timer ->                                -- _obj
+    m ()
+timerContinue _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_timer_continue _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Timer::destroy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timer_destroy" g_timer_destroy :: 
+    Ptr Timer ->                            -- _obj : TInterface "GLib" "Timer"
+    IO ()
+
+
+timerDestroy ::
+    (MonadIO m) =>
+    Timer ->                                -- _obj
+    m ()
+timerDestroy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_timer_destroy _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Timer::elapsed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "microseconds", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "microseconds", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timer_elapsed" g_timer_elapsed :: 
+    Ptr Timer ->                            -- _obj : TInterface "GLib" "Timer"
+    Word64 ->                               -- microseconds : TBasicType TUInt64
+    IO CDouble
+
+
+timerElapsed ::
+    (MonadIO m) =>
+    Timer ->                                -- _obj
+    Word64 ->                               -- microseconds
+    m Double
+timerElapsed _obj microseconds = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_timer_elapsed _obj' microseconds
+    let result' = realToFrac result
+    touchManagedPtr _obj
+    return result'
+
+-- method Timer::reset
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timer_reset" g_timer_reset :: 
+    Ptr Timer ->                            -- _obj : TInterface "GLib" "Timer"
+    IO ()
+
+
+timerReset ::
+    (MonadIO m) =>
+    Timer ->                                -- _obj
+    m ()
+timerReset _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_timer_reset _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Timer::start
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timer_start" g_timer_start :: 
+    Ptr Timer ->                            -- _obj : TInterface "GLib" "Timer"
+    IO ()
+
+
+timerStart ::
+    (MonadIO m) =>
+    Timer ->                                -- _obj
+    m ()
+timerStart _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_timer_start _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Timer::stop
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timer_stop" g_timer_stop :: 
+    Ptr Timer ->                            -- _obj : TInterface "GLib" "Timer"
+    IO ()
+
+
+timerStop ::
+    (MonadIO m) =>
+    Timer ->                                -- _obj
+    m ()
+timerStop _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_timer_stop _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Enum TokenType
+
+data TokenType = 
+      TokenTypeEof
+    | TokenTypeLeftParen
+    | TokenTypeRightParen
+    | TokenTypeLeftCurly
+    | TokenTypeRightCurly
+    | TokenTypeLeftBrace
+    | TokenTypeRightBrace
+    | TokenTypeEqualSign
+    | TokenTypeComma
+    | TokenTypeNone
+    | TokenTypeError
+    | TokenTypeChar
+    | TokenTypeBinary
+    | TokenTypeOctal
+    | TokenTypeInt
+    | TokenTypeHex
+    | TokenTypeFloat
+    | TokenTypeString
+    | TokenTypeSymbol
+    | TokenTypeIdentifier
+    | TokenTypeIdentifierNull
+    | TokenTypeCommentSingle
+    | TokenTypeCommentMulti
+    | AnotherTokenType Int
+    deriving (Show, Eq)
+
+instance Enum TokenType where
+    fromEnum TokenTypeEof = 0
+    fromEnum TokenTypeLeftParen = 40
+    fromEnum TokenTypeRightParen = 41
+    fromEnum TokenTypeLeftCurly = 123
+    fromEnum TokenTypeRightCurly = 125
+    fromEnum TokenTypeLeftBrace = 91
+    fromEnum TokenTypeRightBrace = 93
+    fromEnum TokenTypeEqualSign = 61
+    fromEnum TokenTypeComma = 44
+    fromEnum TokenTypeNone = 256
+    fromEnum TokenTypeError = 257
+    fromEnum TokenTypeChar = 258
+    fromEnum TokenTypeBinary = 259
+    fromEnum TokenTypeOctal = 260
+    fromEnum TokenTypeInt = 261
+    fromEnum TokenTypeHex = 262
+    fromEnum TokenTypeFloat = 263
+    fromEnum TokenTypeString = 264
+    fromEnum TokenTypeSymbol = 265
+    fromEnum TokenTypeIdentifier = 266
+    fromEnum TokenTypeIdentifierNull = 267
+    fromEnum TokenTypeCommentSingle = 268
+    fromEnum TokenTypeCommentMulti = 269
+    fromEnum (AnotherTokenType k) = k
+
+    toEnum 0 = TokenTypeEof
+    toEnum 40 = TokenTypeLeftParen
+    toEnum 41 = TokenTypeRightParen
+    toEnum 44 = TokenTypeComma
+    toEnum 61 = TokenTypeEqualSign
+    toEnum 91 = TokenTypeLeftBrace
+    toEnum 93 = TokenTypeRightBrace
+    toEnum 123 = TokenTypeLeftCurly
+    toEnum 125 = TokenTypeRightCurly
+    toEnum 256 = TokenTypeNone
+    toEnum 257 = TokenTypeError
+    toEnum 258 = TokenTypeChar
+    toEnum 259 = TokenTypeBinary
+    toEnum 260 = TokenTypeOctal
+    toEnum 261 = TokenTypeInt
+    toEnum 262 = TokenTypeHex
+    toEnum 263 = TokenTypeFloat
+    toEnum 264 = TokenTypeString
+    toEnum 265 = TokenTypeSymbol
+    toEnum 266 = TokenTypeIdentifier
+    toEnum 267 = TokenTypeIdentifierNull
+    toEnum 268 = TokenTypeCommentSingle
+    toEnum 269 = TokenTypeCommentMulti
+    toEnum k = AnotherTokenType k
+
+-- union TokenValue 
+newtype TokenValue = TokenValue (ForeignPtr TokenValue)
+noTokenValue :: Maybe TokenValue
+noTokenValue = Nothing
+
+tokenValueReadVSymbol :: TokenValue -> IO (Ptr ())
+tokenValueReadVSymbol s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
+    return val
+
+tokenValueReadVIdentifier :: TokenValue -> IO T.Text
+tokenValueReadVIdentifier s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+tokenValueReadVBinary :: TokenValue -> IO Word64
+tokenValueReadVBinary s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word64
+    return val
+
+tokenValueReadVOctal :: TokenValue -> IO Word64
+tokenValueReadVOctal s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word64
+    return val
+
+tokenValueReadVInt :: TokenValue -> IO Word64
+tokenValueReadVInt s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word64
+    return val
+
+tokenValueReadVInt64 :: TokenValue -> IO Word64
+tokenValueReadVInt64 s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word64
+    return val
+
+tokenValueReadVFloat :: TokenValue -> IO Double
+tokenValueReadVFloat s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CDouble
+    let val' = realToFrac val
+    return val'
+
+tokenValueReadVHex :: TokenValue -> IO Word64
+tokenValueReadVHex s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word64
+    return val
+
+tokenValueReadVString :: TokenValue -> IO T.Text
+tokenValueReadVString s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+tokenValueReadVComment :: TokenValue -> IO T.Text
+tokenValueReadVComment s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO CString
+    val' <- cstringToText val
+    return val'
+
+tokenValueReadVChar :: TokenValue -> IO Word8
+tokenValueReadVChar s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word8
+    return val
+
+tokenValueReadVError :: TokenValue -> IO Word32
+tokenValueReadVError s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO Word32
+    return val
+
+-- callback TranslateFunc
+translateFuncClosure :: TranslateFunc -> IO Closure
+translateFuncClosure cb = newCClosure =<< mkTranslateFunc wrapped
+    where wrapped = translateFuncWrapper Nothing cb
+
+type TranslateFuncC =
+    CString ->
+    Ptr () ->
+    IO CString
+
+foreign import ccall "wrapper"
+    mkTranslateFunc :: TranslateFuncC -> IO (FunPtr TranslateFuncC)
+
+type TranslateFunc =
+    T.Text ->
+    Ptr () ->
+    IO T.Text
+
+noTranslateFunc :: Maybe TranslateFunc
+noTranslateFunc = Nothing
+
+translateFuncWrapper ::
+    Maybe (Ptr (FunPtr (TranslateFuncC))) ->
+    TranslateFunc ->
+    CString ->
+    Ptr () ->
+    IO CString
+translateFuncWrapper funptrptr _cb str data_ = do
+    str' <- cstringToText str
+    result <- _cb  str' data_
+    maybeReleaseFunPtr funptrptr
+    result' <- textToCString result
+    return result'
+
+-- struct TrashStack
+newtype TrashStack = TrashStack (ForeignPtr TrashStack)
+noTrashStack :: Maybe TrashStack
+noTrashStack = Nothing
+
+trashStackReadNext :: TrashStack -> IO TrashStack
+trashStackReadNext s = withManagedPtr s $ \ptr -> do
+    val <- peek (ptr `plusPtr` 0) :: IO (Ptr TrashStack)
+    val' <- (newPtr 8 TrashStack) val
+    return val'
+
+-- Flags TraverseFlags
+
+data TraverseFlags = 
+      TraverseFlagsLeaves
+    | TraverseFlagsNonLeaves
+    | TraverseFlagsAll
+    | TraverseFlagsMask
+    | TraverseFlagsLeafs
+    | TraverseFlagsNonLeafs
+    | AnotherTraverseFlags Int
+    deriving (Show, Eq)
+
+instance Enum TraverseFlags where
+    fromEnum TraverseFlagsLeaves = 1
+    fromEnum TraverseFlagsNonLeaves = 2
+    fromEnum TraverseFlagsAll = 3
+    fromEnum TraverseFlagsMask = 3
+    fromEnum TraverseFlagsLeafs = 1
+    fromEnum TraverseFlagsNonLeafs = 2
+    fromEnum (AnotherTraverseFlags k) = k
+
+    toEnum 1 = TraverseFlagsLeaves
+    toEnum 2 = TraverseFlagsNonLeaves
+    toEnum 3 = TraverseFlagsAll
+    toEnum k = AnotherTraverseFlags k
+
+instance IsGFlag TraverseFlags
+
+-- callback TraverseFunc
+traverseFuncClosure :: TraverseFunc -> IO Closure
+traverseFuncClosure cb = newCClosure =<< mkTraverseFunc wrapped
+    where wrapped = traverseFuncWrapper Nothing cb
+
+type TraverseFuncC =
+    Ptr () ->
+    Ptr () ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkTraverseFunc :: TraverseFuncC -> IO (FunPtr TraverseFuncC)
+
+type TraverseFunc =
+    Ptr () ->
+    Ptr () ->
+    Ptr () ->
+    IO Bool
+
+noTraverseFunc :: Maybe TraverseFunc
+noTraverseFunc = Nothing
+
+traverseFuncWrapper ::
+    Maybe (Ptr (FunPtr (TraverseFuncC))) ->
+    TraverseFunc ->
+    Ptr () ->
+    Ptr () ->
+    Ptr () ->
+    IO CInt
+traverseFuncWrapper funptrptr _cb key value data_ = do
+    result <- _cb  key value data_
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- Enum TraverseType
+
+data TraverseType = 
+      TraverseTypeInOrder
+    | TraverseTypePreOrder
+    | TraverseTypePostOrder
+    | TraverseTypeLevelOrder
+    | AnotherTraverseType Int
+    deriving (Show, Eq)
+
+instance Enum TraverseType where
+    fromEnum TraverseTypeInOrder = 0
+    fromEnum TraverseTypePreOrder = 1
+    fromEnum TraverseTypePostOrder = 2
+    fromEnum TraverseTypeLevelOrder = 3
+    fromEnum (AnotherTraverseType k) = k
+
+    toEnum 0 = TraverseTypeInOrder
+    toEnum 1 = TraverseTypePreOrder
+    toEnum 2 = TraverseTypePostOrder
+    toEnum 3 = TraverseTypeLevelOrder
+    toEnum k = AnotherTraverseType k
+
+-- struct Tree
+newtype Tree = Tree (ForeignPtr Tree)
+noTree :: Maybe Tree
+noTree = Nothing
+
+-- method Tree::destroy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_tree_destroy" g_tree_destroy :: 
+    Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
+    IO ()
+
+
+treeDestroy ::
+    (MonadIO m) =>
+    Tree ->                                 -- _obj
+    m ()
+treeDestroy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_tree_destroy _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method Tree::height
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_tree_height" g_tree_height :: 
+    Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
+    IO Int32
+
+
+treeHeight ::
+    (MonadIO m) =>
+    Tree ->                                 -- _obj
+    m Int32
+treeHeight _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_tree_height _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Tree::insert
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_tree_insert" g_tree_insert :: 
+    Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
+    Ptr () ->                               -- key : TBasicType TVoid
+    Ptr () ->                               -- value : TBasicType TVoid
+    IO ()
+
+
+treeInsert ::
+    (MonadIO m) =>
+    Tree ->                                 -- _obj
+    Ptr () ->                               -- key
+    Ptr () ->                               -- value
+    m ()
+treeInsert _obj key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_tree_insert _obj' key value
+    touchManagedPtr _obj
+    return ()
+
+-- method Tree::lookup_extended
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lookup_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "orig_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lookup_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "orig_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_tree_lookup_extended" g_tree_lookup_extended :: 
+    Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
+    Ptr () ->                               -- lookup_key : TBasicType TVoid
+    Ptr () ->                               -- orig_key : TBasicType TVoid
+    Ptr () ->                               -- value : TBasicType TVoid
+    IO CInt
+
+
+treeLookupExtended ::
+    (MonadIO m) =>
+    Tree ->                                 -- _obj
+    Ptr () ->                               -- lookup_key
+    Ptr () ->                               -- orig_key
+    Ptr () ->                               -- value
+    m Bool
+treeLookupExtended _obj lookup_key orig_key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_tree_lookup_extended _obj' lookup_key orig_key value
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Tree::nnodes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_tree_nnodes" g_tree_nnodes :: 
+    Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
+    IO Int32
+
+
+treeNnodes ::
+    (MonadIO m) =>
+    Tree ->                                 -- _obj
+    m Int32
+treeNnodes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_tree_nnodes _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method Tree::remove
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_tree_remove" g_tree_remove :: 
+    Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
+    Ptr () ->                               -- key : TBasicType TVoid
+    IO CInt
+
+
+treeRemove ::
+    (MonadIO m) =>
+    Tree ->                                 -- _obj
+    Ptr () ->                               -- key
+    m Bool
+treeRemove _obj key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_tree_remove _obj' key
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Tree::replace
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_tree_replace" g_tree_replace :: 
+    Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
+    Ptr () ->                               -- key : TBasicType TVoid
+    Ptr () ->                               -- value : TBasicType TVoid
+    IO ()
+
+
+treeReplace ::
+    (MonadIO m) =>
+    Tree ->                                 -- _obj
+    Ptr () ->                               -- key
+    Ptr () ->                               -- value
+    m ()
+treeReplace _obj key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_tree_replace _obj' key value
+    touchManagedPtr _obj
+    return ()
+
+-- method Tree::steal
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_tree_steal" g_tree_steal :: 
+    Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
+    Ptr () ->                               -- key : TBasicType TVoid
+    IO CInt
+
+
+treeSteal ::
+    (MonadIO m) =>
+    Tree ->                                 -- _obj
+    Ptr () ->                               -- key
+    m Bool
+treeSteal _obj key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_tree_steal _obj' key
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method Tree::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_tree_unref" g_tree_unref :: 
+    Ptr Tree ->                             -- _obj : TInterface "GLib" "Tree"
+    IO ()
+
+
+treeUnref ::
+    (MonadIO m) =>
+    Tree ->                                 -- _obj
+    m ()
+treeUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_tree_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Enum UnicodeBreakType
+
+data UnicodeBreakType = 
+      UnicodeBreakTypeMandatory
+    | UnicodeBreakTypeCarriageReturn
+    | UnicodeBreakTypeLineFeed
+    | UnicodeBreakTypeCombiningMark
+    | UnicodeBreakTypeSurrogate
+    | UnicodeBreakTypeZeroWidthSpace
+    | UnicodeBreakTypeInseparable
+    | UnicodeBreakTypeNonBreakingGlue
+    | UnicodeBreakTypeContingent
+    | UnicodeBreakTypeSpace
+    | UnicodeBreakTypeAfter
+    | UnicodeBreakTypeBefore
+    | UnicodeBreakTypeBeforeAndAfter
+    | UnicodeBreakTypeHyphen
+    | UnicodeBreakTypeNonStarter
+    | UnicodeBreakTypeOpenPunctuation
+    | UnicodeBreakTypeClosePunctuation
+    | UnicodeBreakTypeQuotation
+    | UnicodeBreakTypeExclamation
+    | UnicodeBreakTypeIdeographic
+    | UnicodeBreakTypeNumeric
+    | UnicodeBreakTypeInfixSeparator
+    | UnicodeBreakTypeSymbol
+    | UnicodeBreakTypeAlphabetic
+    | UnicodeBreakTypePrefix
+    | UnicodeBreakTypePostfix
+    | UnicodeBreakTypeComplexContext
+    | UnicodeBreakTypeAmbiguous
+    | UnicodeBreakTypeUnknown
+    | UnicodeBreakTypeNextLine
+    | UnicodeBreakTypeWordJoiner
+    | UnicodeBreakTypeHangulLJamo
+    | UnicodeBreakTypeHangulVJamo
+    | UnicodeBreakTypeHangulTJamo
+    | UnicodeBreakTypeHangulLvSyllable
+    | UnicodeBreakTypeHangulLvtSyllable
+    | UnicodeBreakTypeCloseParanthesis
+    | UnicodeBreakTypeConditionalJapaneseStarter
+    | UnicodeBreakTypeHebrewLetter
+    | UnicodeBreakTypeRegionalIndicator
+    | AnotherUnicodeBreakType Int
+    deriving (Show, Eq)
+
+instance Enum UnicodeBreakType where
+    fromEnum UnicodeBreakTypeMandatory = 0
+    fromEnum UnicodeBreakTypeCarriageReturn = 1
+    fromEnum UnicodeBreakTypeLineFeed = 2
+    fromEnum UnicodeBreakTypeCombiningMark = 3
+    fromEnum UnicodeBreakTypeSurrogate = 4
+    fromEnum UnicodeBreakTypeZeroWidthSpace = 5
+    fromEnum UnicodeBreakTypeInseparable = 6
+    fromEnum UnicodeBreakTypeNonBreakingGlue = 7
+    fromEnum UnicodeBreakTypeContingent = 8
+    fromEnum UnicodeBreakTypeSpace = 9
+    fromEnum UnicodeBreakTypeAfter = 10
+    fromEnum UnicodeBreakTypeBefore = 11
+    fromEnum UnicodeBreakTypeBeforeAndAfter = 12
+    fromEnum UnicodeBreakTypeHyphen = 13
+    fromEnum UnicodeBreakTypeNonStarter = 14
+    fromEnum UnicodeBreakTypeOpenPunctuation = 15
+    fromEnum UnicodeBreakTypeClosePunctuation = 16
+    fromEnum UnicodeBreakTypeQuotation = 17
+    fromEnum UnicodeBreakTypeExclamation = 18
+    fromEnum UnicodeBreakTypeIdeographic = 19
+    fromEnum UnicodeBreakTypeNumeric = 20
+    fromEnum UnicodeBreakTypeInfixSeparator = 21
+    fromEnum UnicodeBreakTypeSymbol = 22
+    fromEnum UnicodeBreakTypeAlphabetic = 23
+    fromEnum UnicodeBreakTypePrefix = 24
+    fromEnum UnicodeBreakTypePostfix = 25
+    fromEnum UnicodeBreakTypeComplexContext = 26
+    fromEnum UnicodeBreakTypeAmbiguous = 27
+    fromEnum UnicodeBreakTypeUnknown = 28
+    fromEnum UnicodeBreakTypeNextLine = 29
+    fromEnum UnicodeBreakTypeWordJoiner = 30
+    fromEnum UnicodeBreakTypeHangulLJamo = 31
+    fromEnum UnicodeBreakTypeHangulVJamo = 32
+    fromEnum UnicodeBreakTypeHangulTJamo = 33
+    fromEnum UnicodeBreakTypeHangulLvSyllable = 34
+    fromEnum UnicodeBreakTypeHangulLvtSyllable = 35
+    fromEnum UnicodeBreakTypeCloseParanthesis = 36
+    fromEnum UnicodeBreakTypeConditionalJapaneseStarter = 37
+    fromEnum UnicodeBreakTypeHebrewLetter = 38
+    fromEnum UnicodeBreakTypeRegionalIndicator = 39
+    fromEnum (AnotherUnicodeBreakType k) = k
+
+    toEnum 0 = UnicodeBreakTypeMandatory
+    toEnum 1 = UnicodeBreakTypeCarriageReturn
+    toEnum 2 = UnicodeBreakTypeLineFeed
+    toEnum 3 = UnicodeBreakTypeCombiningMark
+    toEnum 4 = UnicodeBreakTypeSurrogate
+    toEnum 5 = UnicodeBreakTypeZeroWidthSpace
+    toEnum 6 = UnicodeBreakTypeInseparable
+    toEnum 7 = UnicodeBreakTypeNonBreakingGlue
+    toEnum 8 = UnicodeBreakTypeContingent
+    toEnum 9 = UnicodeBreakTypeSpace
+    toEnum 10 = UnicodeBreakTypeAfter
+    toEnum 11 = UnicodeBreakTypeBefore
+    toEnum 12 = UnicodeBreakTypeBeforeAndAfter
+    toEnum 13 = UnicodeBreakTypeHyphen
+    toEnum 14 = UnicodeBreakTypeNonStarter
+    toEnum 15 = UnicodeBreakTypeOpenPunctuation
+    toEnum 16 = UnicodeBreakTypeClosePunctuation
+    toEnum 17 = UnicodeBreakTypeQuotation
+    toEnum 18 = UnicodeBreakTypeExclamation
+    toEnum 19 = UnicodeBreakTypeIdeographic
+    toEnum 20 = UnicodeBreakTypeNumeric
+    toEnum 21 = UnicodeBreakTypeInfixSeparator
+    toEnum 22 = UnicodeBreakTypeSymbol
+    toEnum 23 = UnicodeBreakTypeAlphabetic
+    toEnum 24 = UnicodeBreakTypePrefix
+    toEnum 25 = UnicodeBreakTypePostfix
+    toEnum 26 = UnicodeBreakTypeComplexContext
+    toEnum 27 = UnicodeBreakTypeAmbiguous
+    toEnum 28 = UnicodeBreakTypeUnknown
+    toEnum 29 = UnicodeBreakTypeNextLine
+    toEnum 30 = UnicodeBreakTypeWordJoiner
+    toEnum 31 = UnicodeBreakTypeHangulLJamo
+    toEnum 32 = UnicodeBreakTypeHangulVJamo
+    toEnum 33 = UnicodeBreakTypeHangulTJamo
+    toEnum 34 = UnicodeBreakTypeHangulLvSyllable
+    toEnum 35 = UnicodeBreakTypeHangulLvtSyllable
+    toEnum 36 = UnicodeBreakTypeCloseParanthesis
+    toEnum 37 = UnicodeBreakTypeConditionalJapaneseStarter
+    toEnum 38 = UnicodeBreakTypeHebrewLetter
+    toEnum 39 = UnicodeBreakTypeRegionalIndicator
+    toEnum k = AnotherUnicodeBreakType k
+
+-- Enum UnicodeScript
+
+data UnicodeScript = 
+      UnicodeScriptInvalidCode
+    | UnicodeScriptCommon
+    | UnicodeScriptInherited
+    | UnicodeScriptArabic
+    | UnicodeScriptArmenian
+    | UnicodeScriptBengali
+    | UnicodeScriptBopomofo
+    | UnicodeScriptCherokee
+    | UnicodeScriptCoptic
+    | UnicodeScriptCyrillic
+    | UnicodeScriptDeseret
+    | UnicodeScriptDevanagari
+    | UnicodeScriptEthiopic
+    | UnicodeScriptGeorgian
+    | UnicodeScriptGothic
+    | UnicodeScriptGreek
+    | UnicodeScriptGujarati
+    | UnicodeScriptGurmukhi
+    | UnicodeScriptHan
+    | UnicodeScriptHangul
+    | UnicodeScriptHebrew
+    | UnicodeScriptHiragana
+    | UnicodeScriptKannada
+    | UnicodeScriptKatakana
+    | UnicodeScriptKhmer
+    | UnicodeScriptLao
+    | UnicodeScriptLatin
+    | UnicodeScriptMalayalam
+    | UnicodeScriptMongolian
+    | UnicodeScriptMyanmar
+    | UnicodeScriptOgham
+    | UnicodeScriptOldItalic
+    | UnicodeScriptOriya
+    | UnicodeScriptRunic
+    | UnicodeScriptSinhala
+    | UnicodeScriptSyriac
+    | UnicodeScriptTamil
+    | UnicodeScriptTelugu
+    | UnicodeScriptThaana
+    | UnicodeScriptThai
+    | UnicodeScriptTibetan
+    | UnicodeScriptCanadianAboriginal
+    | UnicodeScriptYi
+    | UnicodeScriptTagalog
+    | UnicodeScriptHanunoo
+    | UnicodeScriptBuhid
+    | UnicodeScriptTagbanwa
+    | UnicodeScriptBraille
+    | UnicodeScriptCypriot
+    | UnicodeScriptLimbu
+    | UnicodeScriptOsmanya
+    | UnicodeScriptShavian
+    | UnicodeScriptLinearB
+    | UnicodeScriptTaiLe
+    | UnicodeScriptUgaritic
+    | UnicodeScriptNewTaiLue
+    | UnicodeScriptBuginese
+    | UnicodeScriptGlagolitic
+    | UnicodeScriptTifinagh
+    | UnicodeScriptSylotiNagri
+    | UnicodeScriptOldPersian
+    | UnicodeScriptKharoshthi
+    | UnicodeScriptUnknown
+    | UnicodeScriptBalinese
+    | UnicodeScriptCuneiform
+    | UnicodeScriptPhoenician
+    | UnicodeScriptPhagsPa
+    | UnicodeScriptNko
+    | UnicodeScriptKayahLi
+    | UnicodeScriptLepcha
+    | UnicodeScriptRejang
+    | UnicodeScriptSundanese
+    | UnicodeScriptSaurashtra
+    | UnicodeScriptCham
+    | UnicodeScriptOlChiki
+    | UnicodeScriptVai
+    | UnicodeScriptCarian
+    | UnicodeScriptLycian
+    | UnicodeScriptLydian
+    | UnicodeScriptAvestan
+    | UnicodeScriptBamum
+    | UnicodeScriptEgyptianHieroglyphs
+    | UnicodeScriptImperialAramaic
+    | UnicodeScriptInscriptionalPahlavi
+    | UnicodeScriptInscriptionalParthian
+    | UnicodeScriptJavanese
+    | UnicodeScriptKaithi
+    | UnicodeScriptLisu
+    | UnicodeScriptMeeteiMayek
+    | UnicodeScriptOldSouthArabian
+    | UnicodeScriptOldTurkic
+    | UnicodeScriptSamaritan
+    | UnicodeScriptTaiTham
+    | UnicodeScriptTaiViet
+    | UnicodeScriptBatak
+    | UnicodeScriptBrahmi
+    | UnicodeScriptMandaic
+    | UnicodeScriptChakma
+    | UnicodeScriptMeroiticCursive
+    | UnicodeScriptMeroiticHieroglyphs
+    | UnicodeScriptMiao
+    | UnicodeScriptSharada
+    | UnicodeScriptSoraSompeng
+    | UnicodeScriptTakri
+    | UnicodeScriptBassaVah
+    | UnicodeScriptCaucasianAlbanian
+    | UnicodeScriptDuployan
+    | UnicodeScriptElbasan
+    | UnicodeScriptGrantha
+    | UnicodeScriptKhojki
+    | UnicodeScriptKhudawadi
+    | UnicodeScriptLinearA
+    | UnicodeScriptMahajani
+    | UnicodeScriptManichaean
+    | UnicodeScriptMendeKikakui
+    | UnicodeScriptModi
+    | UnicodeScriptMro
+    | UnicodeScriptNabataean
+    | UnicodeScriptOldNorthArabian
+    | UnicodeScriptOldPermic
+    | UnicodeScriptPahawhHmong
+    | UnicodeScriptPalmyrene
+    | UnicodeScriptPauCinHau
+    | UnicodeScriptPsalterPahlavi
+    | UnicodeScriptSiddham
+    | UnicodeScriptTirhuta
+    | UnicodeScriptWarangCiti
+    | AnotherUnicodeScript Int
+    deriving (Show, Eq)
+
+instance Enum UnicodeScript where
+    fromEnum UnicodeScriptInvalidCode = -1
+    fromEnum UnicodeScriptCommon = 0
+    fromEnum UnicodeScriptInherited = 1
+    fromEnum UnicodeScriptArabic = 2
+    fromEnum UnicodeScriptArmenian = 3
+    fromEnum UnicodeScriptBengali = 4
+    fromEnum UnicodeScriptBopomofo = 5
+    fromEnum UnicodeScriptCherokee = 6
+    fromEnum UnicodeScriptCoptic = 7
+    fromEnum UnicodeScriptCyrillic = 8
+    fromEnum UnicodeScriptDeseret = 9
+    fromEnum UnicodeScriptDevanagari = 10
+    fromEnum UnicodeScriptEthiopic = 11
+    fromEnum UnicodeScriptGeorgian = 12
+    fromEnum UnicodeScriptGothic = 13
+    fromEnum UnicodeScriptGreek = 14
+    fromEnum UnicodeScriptGujarati = 15
+    fromEnum UnicodeScriptGurmukhi = 16
+    fromEnum UnicodeScriptHan = 17
+    fromEnum UnicodeScriptHangul = 18
+    fromEnum UnicodeScriptHebrew = 19
+    fromEnum UnicodeScriptHiragana = 20
+    fromEnum UnicodeScriptKannada = 21
+    fromEnum UnicodeScriptKatakana = 22
+    fromEnum UnicodeScriptKhmer = 23
+    fromEnum UnicodeScriptLao = 24
+    fromEnum UnicodeScriptLatin = 25
+    fromEnum UnicodeScriptMalayalam = 26
+    fromEnum UnicodeScriptMongolian = 27
+    fromEnum UnicodeScriptMyanmar = 28
+    fromEnum UnicodeScriptOgham = 29
+    fromEnum UnicodeScriptOldItalic = 30
+    fromEnum UnicodeScriptOriya = 31
+    fromEnum UnicodeScriptRunic = 32
+    fromEnum UnicodeScriptSinhala = 33
+    fromEnum UnicodeScriptSyriac = 34
+    fromEnum UnicodeScriptTamil = 35
+    fromEnum UnicodeScriptTelugu = 36
+    fromEnum UnicodeScriptThaana = 37
+    fromEnum UnicodeScriptThai = 38
+    fromEnum UnicodeScriptTibetan = 39
+    fromEnum UnicodeScriptCanadianAboriginal = 40
+    fromEnum UnicodeScriptYi = 41
+    fromEnum UnicodeScriptTagalog = 42
+    fromEnum UnicodeScriptHanunoo = 43
+    fromEnum UnicodeScriptBuhid = 44
+    fromEnum UnicodeScriptTagbanwa = 45
+    fromEnum UnicodeScriptBraille = 46
+    fromEnum UnicodeScriptCypriot = 47
+    fromEnum UnicodeScriptLimbu = 48
+    fromEnum UnicodeScriptOsmanya = 49
+    fromEnum UnicodeScriptShavian = 50
+    fromEnum UnicodeScriptLinearB = 51
+    fromEnum UnicodeScriptTaiLe = 52
+    fromEnum UnicodeScriptUgaritic = 53
+    fromEnum UnicodeScriptNewTaiLue = 54
+    fromEnum UnicodeScriptBuginese = 55
+    fromEnum UnicodeScriptGlagolitic = 56
+    fromEnum UnicodeScriptTifinagh = 57
+    fromEnum UnicodeScriptSylotiNagri = 58
+    fromEnum UnicodeScriptOldPersian = 59
+    fromEnum UnicodeScriptKharoshthi = 60
+    fromEnum UnicodeScriptUnknown = 61
+    fromEnum UnicodeScriptBalinese = 62
+    fromEnum UnicodeScriptCuneiform = 63
+    fromEnum UnicodeScriptPhoenician = 64
+    fromEnum UnicodeScriptPhagsPa = 65
+    fromEnum UnicodeScriptNko = 66
+    fromEnum UnicodeScriptKayahLi = 67
+    fromEnum UnicodeScriptLepcha = 68
+    fromEnum UnicodeScriptRejang = 69
+    fromEnum UnicodeScriptSundanese = 70
+    fromEnum UnicodeScriptSaurashtra = 71
+    fromEnum UnicodeScriptCham = 72
+    fromEnum UnicodeScriptOlChiki = 73
+    fromEnum UnicodeScriptVai = 74
+    fromEnum UnicodeScriptCarian = 75
+    fromEnum UnicodeScriptLycian = 76
+    fromEnum UnicodeScriptLydian = 77
+    fromEnum UnicodeScriptAvestan = 78
+    fromEnum UnicodeScriptBamum = 79
+    fromEnum UnicodeScriptEgyptianHieroglyphs = 80
+    fromEnum UnicodeScriptImperialAramaic = 81
+    fromEnum UnicodeScriptInscriptionalPahlavi = 82
+    fromEnum UnicodeScriptInscriptionalParthian = 83
+    fromEnum UnicodeScriptJavanese = 84
+    fromEnum UnicodeScriptKaithi = 85
+    fromEnum UnicodeScriptLisu = 86
+    fromEnum UnicodeScriptMeeteiMayek = 87
+    fromEnum UnicodeScriptOldSouthArabian = 88
+    fromEnum UnicodeScriptOldTurkic = 89
+    fromEnum UnicodeScriptSamaritan = 90
+    fromEnum UnicodeScriptTaiTham = 91
+    fromEnum UnicodeScriptTaiViet = 92
+    fromEnum UnicodeScriptBatak = 93
+    fromEnum UnicodeScriptBrahmi = 94
+    fromEnum UnicodeScriptMandaic = 95
+    fromEnum UnicodeScriptChakma = 96
+    fromEnum UnicodeScriptMeroiticCursive = 97
+    fromEnum UnicodeScriptMeroiticHieroglyphs = 98
+    fromEnum UnicodeScriptMiao = 99
+    fromEnum UnicodeScriptSharada = 100
+    fromEnum UnicodeScriptSoraSompeng = 101
+    fromEnum UnicodeScriptTakri = 102
+    fromEnum UnicodeScriptBassaVah = 103
+    fromEnum UnicodeScriptCaucasianAlbanian = 104
+    fromEnum UnicodeScriptDuployan = 105
+    fromEnum UnicodeScriptElbasan = 106
+    fromEnum UnicodeScriptGrantha = 107
+    fromEnum UnicodeScriptKhojki = 108
+    fromEnum UnicodeScriptKhudawadi = 109
+    fromEnum UnicodeScriptLinearA = 110
+    fromEnum UnicodeScriptMahajani = 111
+    fromEnum UnicodeScriptManichaean = 112
+    fromEnum UnicodeScriptMendeKikakui = 113
+    fromEnum UnicodeScriptModi = 114
+    fromEnum UnicodeScriptMro = 115
+    fromEnum UnicodeScriptNabataean = 116
+    fromEnum UnicodeScriptOldNorthArabian = 117
+    fromEnum UnicodeScriptOldPermic = 118
+    fromEnum UnicodeScriptPahawhHmong = 119
+    fromEnum UnicodeScriptPalmyrene = 120
+    fromEnum UnicodeScriptPauCinHau = 121
+    fromEnum UnicodeScriptPsalterPahlavi = 122
+    fromEnum UnicodeScriptSiddham = 123
+    fromEnum UnicodeScriptTirhuta = 124
+    fromEnum UnicodeScriptWarangCiti = 125
+    fromEnum (AnotherUnicodeScript k) = k
+
+    toEnum -1 = UnicodeScriptInvalidCode
+    toEnum 0 = UnicodeScriptCommon
+    toEnum 1 = UnicodeScriptInherited
+    toEnum 2 = UnicodeScriptArabic
+    toEnum 3 = UnicodeScriptArmenian
+    toEnum 4 = UnicodeScriptBengali
+    toEnum 5 = UnicodeScriptBopomofo
+    toEnum 6 = UnicodeScriptCherokee
+    toEnum 7 = UnicodeScriptCoptic
+    toEnum 8 = UnicodeScriptCyrillic
+    toEnum 9 = UnicodeScriptDeseret
+    toEnum 10 = UnicodeScriptDevanagari
+    toEnum 11 = UnicodeScriptEthiopic
+    toEnum 12 = UnicodeScriptGeorgian
+    toEnum 13 = UnicodeScriptGothic
+    toEnum 14 = UnicodeScriptGreek
+    toEnum 15 = UnicodeScriptGujarati
+    toEnum 16 = UnicodeScriptGurmukhi
+    toEnum 17 = UnicodeScriptHan
+    toEnum 18 = UnicodeScriptHangul
+    toEnum 19 = UnicodeScriptHebrew
+    toEnum 20 = UnicodeScriptHiragana
+    toEnum 21 = UnicodeScriptKannada
+    toEnum 22 = UnicodeScriptKatakana
+    toEnum 23 = UnicodeScriptKhmer
+    toEnum 24 = UnicodeScriptLao
+    toEnum 25 = UnicodeScriptLatin
+    toEnum 26 = UnicodeScriptMalayalam
+    toEnum 27 = UnicodeScriptMongolian
+    toEnum 28 = UnicodeScriptMyanmar
+    toEnum 29 = UnicodeScriptOgham
+    toEnum 30 = UnicodeScriptOldItalic
+    toEnum 31 = UnicodeScriptOriya
+    toEnum 32 = UnicodeScriptRunic
+    toEnum 33 = UnicodeScriptSinhala
+    toEnum 34 = UnicodeScriptSyriac
+    toEnum 35 = UnicodeScriptTamil
+    toEnum 36 = UnicodeScriptTelugu
+    toEnum 37 = UnicodeScriptThaana
+    toEnum 38 = UnicodeScriptThai
+    toEnum 39 = UnicodeScriptTibetan
+    toEnum 40 = UnicodeScriptCanadianAboriginal
+    toEnum 41 = UnicodeScriptYi
+    toEnum 42 = UnicodeScriptTagalog
+    toEnum 43 = UnicodeScriptHanunoo
+    toEnum 44 = UnicodeScriptBuhid
+    toEnum 45 = UnicodeScriptTagbanwa
+    toEnum 46 = UnicodeScriptBraille
+    toEnum 47 = UnicodeScriptCypriot
+    toEnum 48 = UnicodeScriptLimbu
+    toEnum 49 = UnicodeScriptOsmanya
+    toEnum 50 = UnicodeScriptShavian
+    toEnum 51 = UnicodeScriptLinearB
+    toEnum 52 = UnicodeScriptTaiLe
+    toEnum 53 = UnicodeScriptUgaritic
+    toEnum 54 = UnicodeScriptNewTaiLue
+    toEnum 55 = UnicodeScriptBuginese
+    toEnum 56 = UnicodeScriptGlagolitic
+    toEnum 57 = UnicodeScriptTifinagh
+    toEnum 58 = UnicodeScriptSylotiNagri
+    toEnum 59 = UnicodeScriptOldPersian
+    toEnum 60 = UnicodeScriptKharoshthi
+    toEnum 61 = UnicodeScriptUnknown
+    toEnum 62 = UnicodeScriptBalinese
+    toEnum 63 = UnicodeScriptCuneiform
+    toEnum 64 = UnicodeScriptPhoenician
+    toEnum 65 = UnicodeScriptPhagsPa
+    toEnum 66 = UnicodeScriptNko
+    toEnum 67 = UnicodeScriptKayahLi
+    toEnum 68 = UnicodeScriptLepcha
+    toEnum 69 = UnicodeScriptRejang
+    toEnum 70 = UnicodeScriptSundanese
+    toEnum 71 = UnicodeScriptSaurashtra
+    toEnum 72 = UnicodeScriptCham
+    toEnum 73 = UnicodeScriptOlChiki
+    toEnum 74 = UnicodeScriptVai
+    toEnum 75 = UnicodeScriptCarian
+    toEnum 76 = UnicodeScriptLycian
+    toEnum 77 = UnicodeScriptLydian
+    toEnum 78 = UnicodeScriptAvestan
+    toEnum 79 = UnicodeScriptBamum
+    toEnum 80 = UnicodeScriptEgyptianHieroglyphs
+    toEnum 81 = UnicodeScriptImperialAramaic
+    toEnum 82 = UnicodeScriptInscriptionalPahlavi
+    toEnum 83 = UnicodeScriptInscriptionalParthian
+    toEnum 84 = UnicodeScriptJavanese
+    toEnum 85 = UnicodeScriptKaithi
+    toEnum 86 = UnicodeScriptLisu
+    toEnum 87 = UnicodeScriptMeeteiMayek
+    toEnum 88 = UnicodeScriptOldSouthArabian
+    toEnum 89 = UnicodeScriptOldTurkic
+    toEnum 90 = UnicodeScriptSamaritan
+    toEnum 91 = UnicodeScriptTaiTham
+    toEnum 92 = UnicodeScriptTaiViet
+    toEnum 93 = UnicodeScriptBatak
+    toEnum 94 = UnicodeScriptBrahmi
+    toEnum 95 = UnicodeScriptMandaic
+    toEnum 96 = UnicodeScriptChakma
+    toEnum 97 = UnicodeScriptMeroiticCursive
+    toEnum 98 = UnicodeScriptMeroiticHieroglyphs
+    toEnum 99 = UnicodeScriptMiao
+    toEnum 100 = UnicodeScriptSharada
+    toEnum 101 = UnicodeScriptSoraSompeng
+    toEnum 102 = UnicodeScriptTakri
+    toEnum 103 = UnicodeScriptBassaVah
+    toEnum 104 = UnicodeScriptCaucasianAlbanian
+    toEnum 105 = UnicodeScriptDuployan
+    toEnum 106 = UnicodeScriptElbasan
+    toEnum 107 = UnicodeScriptGrantha
+    toEnum 108 = UnicodeScriptKhojki
+    toEnum 109 = UnicodeScriptKhudawadi
+    toEnum 110 = UnicodeScriptLinearA
+    toEnum 111 = UnicodeScriptMahajani
+    toEnum 112 = UnicodeScriptManichaean
+    toEnum 113 = UnicodeScriptMendeKikakui
+    toEnum 114 = UnicodeScriptModi
+    toEnum 115 = UnicodeScriptMro
+    toEnum 116 = UnicodeScriptNabataean
+    toEnum 117 = UnicodeScriptOldNorthArabian
+    toEnum 118 = UnicodeScriptOldPermic
+    toEnum 119 = UnicodeScriptPahawhHmong
+    toEnum 120 = UnicodeScriptPalmyrene
+    toEnum 121 = UnicodeScriptPauCinHau
+    toEnum 122 = UnicodeScriptPsalterPahlavi
+    toEnum 123 = UnicodeScriptSiddham
+    toEnum 124 = UnicodeScriptTirhuta
+    toEnum 125 = UnicodeScriptWarangCiti
+    toEnum k = AnotherUnicodeScript k
+
+-- Enum UnicodeType
+
+data UnicodeType = 
+      UnicodeTypeControl
+    | UnicodeTypeFormat
+    | UnicodeTypeUnassigned
+    | UnicodeTypePrivateUse
+    | UnicodeTypeSurrogate
+    | UnicodeTypeLowercaseLetter
+    | UnicodeTypeModifierLetter
+    | UnicodeTypeOtherLetter
+    | UnicodeTypeTitlecaseLetter
+    | UnicodeTypeUppercaseLetter
+    | UnicodeTypeSpacingMark
+    | UnicodeTypeEnclosingMark
+    | UnicodeTypeNonSpacingMark
+    | UnicodeTypeDecimalNumber
+    | UnicodeTypeLetterNumber
+    | UnicodeTypeOtherNumber
+    | UnicodeTypeConnectPunctuation
+    | UnicodeTypeDashPunctuation
+    | UnicodeTypeClosePunctuation
+    | UnicodeTypeFinalPunctuation
+    | UnicodeTypeInitialPunctuation
+    | UnicodeTypeOtherPunctuation
+    | UnicodeTypeOpenPunctuation
+    | UnicodeTypeCurrencySymbol
+    | UnicodeTypeModifierSymbol
+    | UnicodeTypeMathSymbol
+    | UnicodeTypeOtherSymbol
+    | UnicodeTypeLineSeparator
+    | UnicodeTypeParagraphSeparator
+    | UnicodeTypeSpaceSeparator
+    | AnotherUnicodeType Int
+    deriving (Show, Eq)
+
+instance Enum UnicodeType where
+    fromEnum UnicodeTypeControl = 0
+    fromEnum UnicodeTypeFormat = 1
+    fromEnum UnicodeTypeUnassigned = 2
+    fromEnum UnicodeTypePrivateUse = 3
+    fromEnum UnicodeTypeSurrogate = 4
+    fromEnum UnicodeTypeLowercaseLetter = 5
+    fromEnum UnicodeTypeModifierLetter = 6
+    fromEnum UnicodeTypeOtherLetter = 7
+    fromEnum UnicodeTypeTitlecaseLetter = 8
+    fromEnum UnicodeTypeUppercaseLetter = 9
+    fromEnum UnicodeTypeSpacingMark = 10
+    fromEnum UnicodeTypeEnclosingMark = 11
+    fromEnum UnicodeTypeNonSpacingMark = 12
+    fromEnum UnicodeTypeDecimalNumber = 13
+    fromEnum UnicodeTypeLetterNumber = 14
+    fromEnum UnicodeTypeOtherNumber = 15
+    fromEnum UnicodeTypeConnectPunctuation = 16
+    fromEnum UnicodeTypeDashPunctuation = 17
+    fromEnum UnicodeTypeClosePunctuation = 18
+    fromEnum UnicodeTypeFinalPunctuation = 19
+    fromEnum UnicodeTypeInitialPunctuation = 20
+    fromEnum UnicodeTypeOtherPunctuation = 21
+    fromEnum UnicodeTypeOpenPunctuation = 22
+    fromEnum UnicodeTypeCurrencySymbol = 23
+    fromEnum UnicodeTypeModifierSymbol = 24
+    fromEnum UnicodeTypeMathSymbol = 25
+    fromEnum UnicodeTypeOtherSymbol = 26
+    fromEnum UnicodeTypeLineSeparator = 27
+    fromEnum UnicodeTypeParagraphSeparator = 28
+    fromEnum UnicodeTypeSpaceSeparator = 29
+    fromEnum (AnotherUnicodeType k) = k
+
+    toEnum 0 = UnicodeTypeControl
+    toEnum 1 = UnicodeTypeFormat
+    toEnum 2 = UnicodeTypeUnassigned
+    toEnum 3 = UnicodeTypePrivateUse
+    toEnum 4 = UnicodeTypeSurrogate
+    toEnum 5 = UnicodeTypeLowercaseLetter
+    toEnum 6 = UnicodeTypeModifierLetter
+    toEnum 7 = UnicodeTypeOtherLetter
+    toEnum 8 = UnicodeTypeTitlecaseLetter
+    toEnum 9 = UnicodeTypeUppercaseLetter
+    toEnum 10 = UnicodeTypeSpacingMark
+    toEnum 11 = UnicodeTypeEnclosingMark
+    toEnum 12 = UnicodeTypeNonSpacingMark
+    toEnum 13 = UnicodeTypeDecimalNumber
+    toEnum 14 = UnicodeTypeLetterNumber
+    toEnum 15 = UnicodeTypeOtherNumber
+    toEnum 16 = UnicodeTypeConnectPunctuation
+    toEnum 17 = UnicodeTypeDashPunctuation
+    toEnum 18 = UnicodeTypeClosePunctuation
+    toEnum 19 = UnicodeTypeFinalPunctuation
+    toEnum 20 = UnicodeTypeInitialPunctuation
+    toEnum 21 = UnicodeTypeOtherPunctuation
+    toEnum 22 = UnicodeTypeOpenPunctuation
+    toEnum 23 = UnicodeTypeCurrencySymbol
+    toEnum 24 = UnicodeTypeModifierSymbol
+    toEnum 25 = UnicodeTypeMathSymbol
+    toEnum 26 = UnicodeTypeOtherSymbol
+    toEnum 27 = UnicodeTypeLineSeparator
+    toEnum 28 = UnicodeTypeParagraphSeparator
+    toEnum 29 = UnicodeTypeSpaceSeparator
+    toEnum k = AnotherUnicodeType k
+
+-- callback UnixFDSourceFunc
+unixFDSourceFuncClosure :: UnixFDSourceFunc -> IO Closure
+unixFDSourceFuncClosure cb = newCClosure =<< mkUnixFDSourceFunc wrapped
+    where wrapped = unixFDSourceFuncWrapper Nothing cb
+
+type UnixFDSourceFuncC =
+    Int32 ->
+    CUInt ->
+    Ptr () ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkUnixFDSourceFunc :: UnixFDSourceFuncC -> IO (FunPtr UnixFDSourceFuncC)
+
+type UnixFDSourceFunc =
+    Int32 ->
+    [IOCondition] ->
+    IO Bool
+
+noUnixFDSourceFunc :: Maybe UnixFDSourceFunc
+noUnixFDSourceFunc = Nothing
+
+unixFDSourceFuncWrapper ::
+    Maybe (Ptr (FunPtr (UnixFDSourceFuncC))) ->
+    UnixFDSourceFunc ->
+    Int32 ->
+    CUInt ->
+    Ptr () ->
+    IO CInt
+unixFDSourceFuncWrapper funptrptr _cb fd condition _ = do
+    let condition' = wordToGFlags condition
+    result <- _cb  fd condition'
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- Enum UserDirectory
+
+data UserDirectory = 
+      UserDirectoryDirectoryDesktop
+    | UserDirectoryDirectoryDocuments
+    | UserDirectoryDirectoryDownload
+    | UserDirectoryDirectoryMusic
+    | UserDirectoryDirectoryPictures
+    | UserDirectoryDirectoryPublicShare
+    | UserDirectoryDirectoryTemplates
+    | UserDirectoryDirectoryVideos
+    | UserDirectoryNDirectories
+    | AnotherUserDirectory Int
+    deriving (Show, Eq)
+
+instance Enum UserDirectory where
+    fromEnum UserDirectoryDirectoryDesktop = 0
+    fromEnum UserDirectoryDirectoryDocuments = 1
+    fromEnum UserDirectoryDirectoryDownload = 2
+    fromEnum UserDirectoryDirectoryMusic = 3
+    fromEnum UserDirectoryDirectoryPictures = 4
+    fromEnum UserDirectoryDirectoryPublicShare = 5
+    fromEnum UserDirectoryDirectoryTemplates = 6
+    fromEnum UserDirectoryDirectoryVideos = 7
+    fromEnum UserDirectoryNDirectories = 8
+    fromEnum (AnotherUserDirectory k) = k
+
+    toEnum 0 = UserDirectoryDirectoryDesktop
+    toEnum 1 = UserDirectoryDirectoryDocuments
+    toEnum 2 = UserDirectoryDirectoryDownload
+    toEnum 3 = UserDirectoryDirectoryMusic
+    toEnum 4 = UserDirectoryDirectoryPictures
+    toEnum 5 = UserDirectoryDirectoryPublicShare
+    toEnum 6 = UserDirectoryDirectoryTemplates
+    toEnum 7 = UserDirectoryDirectoryVideos
+    toEnum 8 = UserDirectoryNDirectories
+    toEnum k = AnotherUserDirectory k
+
+-- struct VariantBuilder
+newtype VariantBuilder = VariantBuilder (ForeignPtr VariantBuilder)
+noVariantBuilder :: Maybe VariantBuilder
+noVariantBuilder = Nothing
+
+foreign import ccall "g_variant_builder_get_type" c_g_variant_builder_get_type :: 
+    IO GType
+
+instance BoxedObject VariantBuilder where
+    boxedType _ = c_g_variant_builder_get_type
+
+-- method VariantBuilder::new
+-- method type : Constructor
+-- Args : [Arg {argName = "type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantBuilder"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_builder_new" g_variant_builder_new :: 
+    Ptr VariantType ->                      -- type : TInterface "GLib" "VariantType"
+    IO (Ptr VariantBuilder)
+
+
+variantBuilderNew ::
+    (MonadIO m) =>
+    VariantType ->                          -- type
+    m VariantBuilder
+variantBuilderNew type_ = liftIO $ do
+    let type_' = unsafeManagedPtrGetPtr type_
+    result <- g_variant_builder_new type_'
+    result' <- (wrapBoxed VariantBuilder) result
+    touchManagedPtr type_
+    return result'
+
+-- method VariantBuilder::add_value
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_builder_add_value" g_variant_builder_add_value :: 
+    Ptr VariantBuilder ->                   -- _obj : TInterface "GLib" "VariantBuilder"
+    Ptr GVariant ->                         -- value : TVariant
+    IO ()
+
+
+variantBuilderAddValue ::
+    (MonadIO m) =>
+    VariantBuilder ->                       -- _obj
+    GVariant ->                             -- value
+    m ()
+variantBuilderAddValue _obj value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let value' = unsafeManagedPtrGetPtr value
+    g_variant_builder_add_value _obj' value'
+    touchManagedPtr _obj
+    return ()
+
+-- method VariantBuilder::close
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_builder_close" g_variant_builder_close :: 
+    Ptr VariantBuilder ->                   -- _obj : TInterface "GLib" "VariantBuilder"
+    IO ()
+
+
+variantBuilderClose ::
+    (MonadIO m) =>
+    VariantBuilder ->                       -- _obj
+    m ()
+variantBuilderClose _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_variant_builder_close _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method VariantBuilder::end
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TVariant
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_builder_end" g_variant_builder_end :: 
+    Ptr VariantBuilder ->                   -- _obj : TInterface "GLib" "VariantBuilder"
+    IO (Ptr GVariant)
+
+
+variantBuilderEnd ::
+    (MonadIO m) =>
+    VariantBuilder ->                       -- _obj
+    m GVariant
+variantBuilderEnd _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_builder_end _obj'
+    result' <- newGVariantFromPtr result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantBuilder::open
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_builder_open" g_variant_builder_open :: 
+    Ptr VariantBuilder ->                   -- _obj : TInterface "GLib" "VariantBuilder"
+    Ptr VariantType ->                      -- type : TInterface "GLib" "VariantType"
+    IO ()
+
+
+variantBuilderOpen ::
+    (MonadIO m) =>
+    VariantBuilder ->                       -- _obj
+    VariantType ->                          -- type
+    m ()
+variantBuilderOpen _obj type_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let type_' = unsafeManagedPtrGetPtr type_
+    g_variant_builder_open _obj' type_'
+    touchManagedPtr _obj
+    touchManagedPtr type_
+    return ()
+
+-- method VariantBuilder::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantBuilder"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_builder_ref" g_variant_builder_ref :: 
+    Ptr VariantBuilder ->                   -- _obj : TInterface "GLib" "VariantBuilder"
+    IO (Ptr VariantBuilder)
+
+
+variantBuilderRef ::
+    (MonadIO m) =>
+    VariantBuilder ->                       -- _obj
+    m VariantBuilder
+variantBuilderRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_builder_ref _obj'
+    result' <- (wrapBoxed VariantBuilder) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantBuilder::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_builder_unref" g_variant_builder_unref :: 
+    Ptr VariantBuilder ->                   -- _obj : TInterface "GLib" "VariantBuilder"
+    IO ()
+
+
+variantBuilderUnref ::
+    (MonadIO m) =>
+    VariantBuilder ->                       -- _obj
+    m ()
+variantBuilderUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_variant_builder_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Enum VariantClass
+
+data VariantClass = 
+      VariantClassBoolean
+    | VariantClassByte
+    | VariantClassInt16
+    | VariantClassUint16
+    | VariantClassInt32
+    | VariantClassUint32
+    | VariantClassInt64
+    | VariantClassUint64
+    | VariantClassHandle
+    | VariantClassDouble
+    | VariantClassString
+    | VariantClassObjectPath
+    | VariantClassSignature
+    | VariantClassVariant
+    | VariantClassMaybe
+    | VariantClassArray
+    | VariantClassTuple
+    | VariantClassDictEntry
+    | AnotherVariantClass Int
+    deriving (Show, Eq)
+
+instance Enum VariantClass where
+    fromEnum VariantClassBoolean = 98
+    fromEnum VariantClassByte = 121
+    fromEnum VariantClassInt16 = 110
+    fromEnum VariantClassUint16 = 113
+    fromEnum VariantClassInt32 = 105
+    fromEnum VariantClassUint32 = 117
+    fromEnum VariantClassInt64 = 120
+    fromEnum VariantClassUint64 = 116
+    fromEnum VariantClassHandle = 104
+    fromEnum VariantClassDouble = 100
+    fromEnum VariantClassString = 115
+    fromEnum VariantClassObjectPath = 111
+    fromEnum VariantClassSignature = 103
+    fromEnum VariantClassVariant = 118
+    fromEnum VariantClassMaybe = 109
+    fromEnum VariantClassArray = 97
+    fromEnum VariantClassTuple = 40
+    fromEnum VariantClassDictEntry = 123
+    fromEnum (AnotherVariantClass k) = k
+
+    toEnum 40 = VariantClassTuple
+    toEnum 97 = VariantClassArray
+    toEnum 98 = VariantClassBoolean
+    toEnum 100 = VariantClassDouble
+    toEnum 103 = VariantClassSignature
+    toEnum 104 = VariantClassHandle
+    toEnum 105 = VariantClassInt32
+    toEnum 109 = VariantClassMaybe
+    toEnum 110 = VariantClassInt16
+    toEnum 111 = VariantClassObjectPath
+    toEnum 113 = VariantClassUint16
+    toEnum 115 = VariantClassString
+    toEnum 116 = VariantClassUint64
+    toEnum 117 = VariantClassUint32
+    toEnum 118 = VariantClassVariant
+    toEnum 120 = VariantClassInt64
+    toEnum 121 = VariantClassByte
+    toEnum 123 = VariantClassDictEntry
+    toEnum k = AnotherVariantClass k
+
+-- struct VariantDict
+newtype VariantDict = VariantDict (ForeignPtr VariantDict)
+noVariantDict :: Maybe VariantDict
+noVariantDict = Nothing
+
+foreign import ccall "g_variant_dict_get_type" c_g_variant_dict_get_type :: 
+    IO GType
+
+instance BoxedObject VariantDict where
+    boxedType _ = c_g_variant_dict_get_type
+
+-- method VariantDict::new
+-- method type : Constructor
+-- Args : [Arg {argName = "from_asv", argType = TVariant, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "from_asv", argType = TVariant, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantDict"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_dict_new" g_variant_dict_new :: 
+    Ptr GVariant ->                         -- from_asv : TVariant
+    IO (Ptr VariantDict)
+
+
+variantDictNew ::
+    (MonadIO m) =>
+    Maybe (GVariant) ->                     -- from_asv
+    m VariantDict
+variantDictNew from_asv = liftIO $ do
+    maybeFrom_asv <- case from_asv of
+        Nothing -> return nullPtr
+        Just jFrom_asv -> do
+            let jFrom_asv' = unsafeManagedPtrGetPtr jFrom_asv
+            return jFrom_asv'
+    result <- g_variant_dict_new maybeFrom_asv
+    result' <- (wrapBoxed VariantDict) result
+    return result'
+
+-- method VariantDict::clear
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_dict_clear" g_variant_dict_clear :: 
+    Ptr VariantDict ->                      -- _obj : TInterface "GLib" "VariantDict"
+    IO ()
+
+
+variantDictClear ::
+    (MonadIO m) =>
+    VariantDict ->                          -- _obj
+    m ()
+variantDictClear _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_variant_dict_clear _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method VariantDict::contains
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_dict_contains" g_variant_dict_contains :: 
+    Ptr VariantDict ->                      -- _obj : TInterface "GLib" "VariantDict"
+    CString ->                              -- key : TBasicType TUTF8
+    IO CInt
+
+
+variantDictContains ::
+    (MonadIO m) =>
+    VariantDict ->                          -- _obj
+    T.Text ->                               -- key
+    m Bool
+variantDictContains _obj key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    key' <- textToCString key
+    result <- g_variant_dict_contains _obj' key'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    freeMem key'
+    return result'
+
+-- method VariantDict::end
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TVariant
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_dict_end" g_variant_dict_end :: 
+    Ptr VariantDict ->                      -- _obj : TInterface "GLib" "VariantDict"
+    IO (Ptr GVariant)
+
+
+variantDictEnd ::
+    (MonadIO m) =>
+    VariantDict ->                          -- _obj
+    m GVariant
+variantDictEnd _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_dict_end _obj'
+    result' <- newGVariantFromPtr result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantDict::insert_value
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_dict_insert_value" g_variant_dict_insert_value :: 
+    Ptr VariantDict ->                      -- _obj : TInterface "GLib" "VariantDict"
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr GVariant ->                         -- value : TVariant
+    IO ()
+
+
+variantDictInsertValue ::
+    (MonadIO m) =>
+    VariantDict ->                          -- _obj
+    T.Text ->                               -- key
+    GVariant ->                             -- value
+    m ()
+variantDictInsertValue _obj key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    key' <- textToCString key
+    let value' = unsafeManagedPtrGetPtr value
+    g_variant_dict_insert_value _obj' key' value'
+    touchManagedPtr _obj
+    freeMem key'
+    return ()
+
+-- method VariantDict::lookup_value
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expected_type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expected_type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TVariant
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_dict_lookup_value" g_variant_dict_lookup_value :: 
+    Ptr VariantDict ->                      -- _obj : TInterface "GLib" "VariantDict"
+    CString ->                              -- key : TBasicType TUTF8
+    Ptr VariantType ->                      -- expected_type : TInterface "GLib" "VariantType"
+    IO (Ptr GVariant)
+
+
+variantDictLookupValue ::
+    (MonadIO m) =>
+    VariantDict ->                          -- _obj
+    T.Text ->                               -- key
+    Maybe (VariantType) ->                  -- expected_type
+    m GVariant
+variantDictLookupValue _obj key expected_type = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    key' <- textToCString key
+    maybeExpected_type <- case expected_type of
+        Nothing -> return nullPtr
+        Just jExpected_type -> do
+            let jExpected_type' = unsafeManagedPtrGetPtr jExpected_type
+            return jExpected_type'
+    result <- g_variant_dict_lookup_value _obj' key' maybeExpected_type
+    result' <- wrapGVariantPtr result
+    touchManagedPtr _obj
+    whenJust expected_type touchManagedPtr
+    freeMem key'
+    return result'
+
+-- method VariantDict::ref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantDict"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_dict_ref" g_variant_dict_ref :: 
+    Ptr VariantDict ->                      -- _obj : TInterface "GLib" "VariantDict"
+    IO (Ptr VariantDict)
+
+
+variantDictRef ::
+    (MonadIO m) =>
+    VariantDict ->                          -- _obj
+    m VariantDict
+variantDictRef _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_dict_ref _obj'
+    result' <- (wrapBoxed VariantDict) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantDict::remove
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_dict_remove" g_variant_dict_remove :: 
+    Ptr VariantDict ->                      -- _obj : TInterface "GLib" "VariantDict"
+    CString ->                              -- key : TBasicType TUTF8
+    IO CInt
+
+
+variantDictRemove ::
+    (MonadIO m) =>
+    VariantDict ->                          -- _obj
+    T.Text ->                               -- key
+    m Bool
+variantDictRemove _obj key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    key' <- textToCString key
+    result <- g_variant_dict_remove _obj' key'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    freeMem key'
+    return result'
+
+-- method VariantDict::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_dict_unref" g_variant_dict_unref :: 
+    Ptr VariantDict ->                      -- _obj : TInterface "GLib" "VariantDict"
+    IO ()
+
+
+variantDictUnref ::
+    (MonadIO m) =>
+    VariantDict ->                          -- _obj
+    m ()
+variantDictUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_variant_dict_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- Enum VariantParseError
+
+data VariantParseError = 
+      VariantParseErrorFailed
+    | VariantParseErrorBasicTypeExpected
+    | VariantParseErrorCannotInferType
+    | VariantParseErrorDefiniteTypeExpected
+    | VariantParseErrorInputNotAtEnd
+    | VariantParseErrorInvalidCharacter
+    | VariantParseErrorInvalidFormatString
+    | VariantParseErrorInvalidObjectPath
+    | VariantParseErrorInvalidSignature
+    | VariantParseErrorInvalidTypeString
+    | VariantParseErrorNoCommonType
+    | VariantParseErrorNumberOutOfRange
+    | VariantParseErrorNumberTooBig
+    | VariantParseErrorTypeError
+    | VariantParseErrorUnexpectedToken
+    | VariantParseErrorUnknownKeyword
+    | VariantParseErrorUnterminatedStringConstant
+    | VariantParseErrorValueExpected
+    | AnotherVariantParseError Int
+    deriving (Show, Eq)
+
+instance Enum VariantParseError where
+    fromEnum VariantParseErrorFailed = 0
+    fromEnum VariantParseErrorBasicTypeExpected = 1
+    fromEnum VariantParseErrorCannotInferType = 2
+    fromEnum VariantParseErrorDefiniteTypeExpected = 3
+    fromEnum VariantParseErrorInputNotAtEnd = 4
+    fromEnum VariantParseErrorInvalidCharacter = 5
+    fromEnum VariantParseErrorInvalidFormatString = 6
+    fromEnum VariantParseErrorInvalidObjectPath = 7
+    fromEnum VariantParseErrorInvalidSignature = 8
+    fromEnum VariantParseErrorInvalidTypeString = 9
+    fromEnum VariantParseErrorNoCommonType = 10
+    fromEnum VariantParseErrorNumberOutOfRange = 11
+    fromEnum VariantParseErrorNumberTooBig = 12
+    fromEnum VariantParseErrorTypeError = 13
+    fromEnum VariantParseErrorUnexpectedToken = 14
+    fromEnum VariantParseErrorUnknownKeyword = 15
+    fromEnum VariantParseErrorUnterminatedStringConstant = 16
+    fromEnum VariantParseErrorValueExpected = 17
+    fromEnum (AnotherVariantParseError k) = k
+
+    toEnum 0 = VariantParseErrorFailed
+    toEnum 1 = VariantParseErrorBasicTypeExpected
+    toEnum 2 = VariantParseErrorCannotInferType
+    toEnum 3 = VariantParseErrorDefiniteTypeExpected
+    toEnum 4 = VariantParseErrorInputNotAtEnd
+    toEnum 5 = VariantParseErrorInvalidCharacter
+    toEnum 6 = VariantParseErrorInvalidFormatString
+    toEnum 7 = VariantParseErrorInvalidObjectPath
+    toEnum 8 = VariantParseErrorInvalidSignature
+    toEnum 9 = VariantParseErrorInvalidTypeString
+    toEnum 10 = VariantParseErrorNoCommonType
+    toEnum 11 = VariantParseErrorNumberOutOfRange
+    toEnum 12 = VariantParseErrorNumberTooBig
+    toEnum 13 = VariantParseErrorTypeError
+    toEnum 14 = VariantParseErrorUnexpectedToken
+    toEnum 15 = VariantParseErrorUnknownKeyword
+    toEnum 16 = VariantParseErrorUnterminatedStringConstant
+    toEnum 17 = VariantParseErrorValueExpected
+    toEnum k = AnotherVariantParseError k
+
+instance GErrorClass VariantParseError where
+    gerrorClassDomain _ = "g-variant-parse-error-quark"
+
+catchVariantParseError ::
+    IO a ->
+    (VariantParseError -> GErrorMessage -> IO a) ->
+    IO a
+catchVariantParseError = catchGErrorJustDomain
+
+handleVariantParseError ::
+    (VariantParseError -> GErrorMessage -> IO a) ->
+    IO a ->
+    IO a
+handleVariantParseError = handleGErrorJustDomain
+
+-- struct VariantType
+newtype VariantType = VariantType (ForeignPtr VariantType)
+noVariantType :: Maybe VariantType
+noVariantType = Nothing
+
+foreign import ccall "g_variant_type_get_gtype" c_g_variant_type_get_gtype :: 
+    IO GType
+
+instance BoxedObject VariantType where
+    boxedType _ = c_g_variant_type_get_gtype
+
+-- method VariantType::new
+-- method type : Constructor
+-- Args : [Arg {argName = "type_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "type_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_new" g_variant_type_new :: 
+    CString ->                              -- type_string : TBasicType TUTF8
+    IO (Ptr VariantType)
+
+
+variantTypeNew ::
+    (MonadIO m) =>
+    T.Text ->                               -- type_string
+    m VariantType
+variantTypeNew type_string = liftIO $ do
+    type_string' <- textToCString type_string
+    result <- g_variant_type_new type_string'
+    result' <- (wrapBoxed VariantType) result
+    freeMem type_string'
+    return result'
+
+-- method VariantType::new_array
+-- method type : Constructor
+-- Args : [Arg {argName = "element", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "element", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_new_array" g_variant_type_new_array :: 
+    Ptr VariantType ->                      -- element : TInterface "GLib" "VariantType"
+    IO (Ptr VariantType)
+
+
+variantTypeNewArray ::
+    (MonadIO m) =>
+    VariantType ->                          -- element
+    m VariantType
+variantTypeNewArray element = liftIO $ do
+    let element' = unsafeManagedPtrGetPtr element
+    result <- g_variant_type_new_array element'
+    result' <- (wrapBoxed VariantType) result
+    touchManagedPtr element
+    return result'
+
+-- method VariantType::new_dict_entry
+-- method type : Constructor
+-- Args : [Arg {argName = "key", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "key", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_new_dict_entry" g_variant_type_new_dict_entry :: 
+    Ptr VariantType ->                      -- key : TInterface "GLib" "VariantType"
+    Ptr VariantType ->                      -- value : TInterface "GLib" "VariantType"
+    IO (Ptr VariantType)
+
+
+variantTypeNewDictEntry ::
+    (MonadIO m) =>
+    VariantType ->                          -- key
+    VariantType ->                          -- value
+    m VariantType
+variantTypeNewDictEntry key value = liftIO $ do
+    let key' = unsafeManagedPtrGetPtr key
+    let value' = unsafeManagedPtrGetPtr value
+    result <- g_variant_type_new_dict_entry key' value'
+    result' <- (wrapBoxed VariantType) result
+    touchManagedPtr key
+    touchManagedPtr value
+    return result'
+
+-- method VariantType::new_maybe
+-- method type : Constructor
+-- Args : [Arg {argName = "element", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "element", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_new_maybe" g_variant_type_new_maybe :: 
+    Ptr VariantType ->                      -- element : TInterface "GLib" "VariantType"
+    IO (Ptr VariantType)
+
+
+variantTypeNewMaybe ::
+    (MonadIO m) =>
+    VariantType ->                          -- element
+    m VariantType
+variantTypeNewMaybe element = liftIO $ do
+    let element' = unsafeManagedPtrGetPtr element
+    result <- g_variant_type_new_maybe element'
+    result' <- (wrapBoxed VariantType) result
+    touchManagedPtr element
+    return result'
+
+-- method VariantType::new_tuple
+-- method type : Constructor
+-- Args : [Arg {argName = "items", argType = TCArray False (-1) 1 (TInterface "GLib" "VariantType"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "items", argType = TCArray False (-1) 1 (TInterface "GLib" "VariantType"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_new_tuple" g_variant_type_new_tuple :: 
+    Ptr (Ptr VariantType) ->                -- items : TCArray False (-1) 1 (TInterface "GLib" "VariantType")
+    Int32 ->                                -- length : TBasicType TInt32
+    IO (Ptr VariantType)
+
+
+variantTypeNewTuple ::
+    (MonadIO m) =>
+    [VariantType] ->                        -- items
+    m VariantType
+variantTypeNewTuple items = liftIO $ do
+    let length_ = fromIntegral $ length items
+    let items' = map unsafeManagedPtrGetPtr items
+    items'' <- packPtrArray items'
+    result <- g_variant_type_new_tuple items'' length_
+    result' <- (wrapBoxed VariantType) result
+    mapM_ touchManagedPtr items
+    freeMem items''
+    return result'
+
+-- method VariantType::copy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_copy" g_variant_type_copy :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO (Ptr VariantType)
+
+
+variantTypeCopy ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m VariantType
+variantTypeCopy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_copy _obj'
+    result' <- (wrapBoxed VariantType) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::dup_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_dup_string" g_variant_type_dup_string :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO CString
+
+
+variantTypeDupString ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m T.Text
+variantTypeDupString _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_dup_string _obj'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::element
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_element" g_variant_type_element :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO (Ptr VariantType)
+
+
+variantTypeElement ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m VariantType
+variantTypeElement _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_element _obj'
+    result' <- (newBoxed VariantType) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::equal
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type2", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type2", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_equal" g_variant_type_equal :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    Ptr VariantType ->                      -- type2 : TInterface "GLib" "VariantType"
+    IO CInt
+
+
+variantTypeEqual ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    VariantType ->                          -- type2
+    m Bool
+variantTypeEqual _obj type2 = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let type2' = unsafeManagedPtrGetPtr type2
+    result <- g_variant_type_equal _obj' type2'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr type2
+    return result'
+
+-- method VariantType::first
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_first" g_variant_type_first :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO (Ptr VariantType)
+
+
+variantTypeFirst ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m VariantType
+variantTypeFirst _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_first _obj'
+    result' <- (newBoxed VariantType) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::free
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_free" g_variant_type_free :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO ()
+
+
+variantTypeFree ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m ()
+variantTypeFree _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_variant_type_free _obj'
+    touchManagedPtr _obj
+    return ()
+
+-- method VariantType::get_string_length
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_get_string_length" g_variant_type_get_string_length :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO Word64
+
+
+variantTypeGetStringLength ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Word64
+variantTypeGetStringLength _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_get_string_length _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method VariantType::hash
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_hash" g_variant_type_hash :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO Word32
+
+
+variantTypeHash ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Word32
+variantTypeHash _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_hash _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method VariantType::is_array
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_is_array" g_variant_type_is_array :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO CInt
+
+
+variantTypeIsArray ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Bool
+variantTypeIsArray _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_is_array _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::is_basic
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_is_basic" g_variant_type_is_basic :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO CInt
+
+
+variantTypeIsBasic ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Bool
+variantTypeIsBasic _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_is_basic _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::is_container
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_is_container" g_variant_type_is_container :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO CInt
+
+
+variantTypeIsContainer ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Bool
+variantTypeIsContainer _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_is_container _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::is_definite
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_is_definite" g_variant_type_is_definite :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO CInt
+
+
+variantTypeIsDefinite ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Bool
+variantTypeIsDefinite _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_is_definite _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::is_dict_entry
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_is_dict_entry" g_variant_type_is_dict_entry :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO CInt
+
+
+variantTypeIsDictEntry ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Bool
+variantTypeIsDictEntry _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_is_dict_entry _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::is_maybe
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_is_maybe" g_variant_type_is_maybe :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO CInt
+
+
+variantTypeIsMaybe ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Bool
+variantTypeIsMaybe _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_is_maybe _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::is_subtype_of
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "supertype", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "supertype", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_is_subtype_of" g_variant_type_is_subtype_of :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    Ptr VariantType ->                      -- supertype : TInterface "GLib" "VariantType"
+    IO CInt
+
+
+variantTypeIsSubtypeOf ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    VariantType ->                          -- supertype
+    m Bool
+variantTypeIsSubtypeOf _obj supertype = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    let supertype' = unsafeManagedPtrGetPtr supertype
+    result <- g_variant_type_is_subtype_of _obj' supertype'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr supertype
+    return result'
+
+-- method VariantType::is_tuple
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_is_tuple" g_variant_type_is_tuple :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO CInt
+
+
+variantTypeIsTuple ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Bool
+variantTypeIsTuple _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_is_tuple _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::is_variant
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_is_variant" g_variant_type_is_variant :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO CInt
+
+
+variantTypeIsVariant ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Bool
+variantTypeIsVariant _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_is_variant _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::key
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_key" g_variant_type_key :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO (Ptr VariantType)
+
+
+variantTypeKey ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m VariantType
+variantTypeKey _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_key _obj'
+    result' <- (newBoxed VariantType) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::n_items
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_n_items" g_variant_type_n_items :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO Word64
+
+
+variantTypeNItems ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m Word64
+variantTypeNItems _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_n_items _obj'
+    touchManagedPtr _obj
+    return result
+
+-- method VariantType::next
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_next" g_variant_type_next :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO (Ptr VariantType)
+
+
+variantTypeNext ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m VariantType
+variantTypeNext _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_next _obj'
+    result' <- (newBoxed VariantType) result
+    touchManagedPtr _obj
+    return result'
+
+-- method VariantType::value
+-- method type : OrdinaryMethod
+-- Args : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_value" g_variant_type_value :: 
+    Ptr VariantType ->                      -- _obj : TInterface "GLib" "VariantType"
+    IO (Ptr VariantType)
+
+
+variantTypeValue ::
+    (MonadIO m) =>
+    VariantType ->                          -- _obj
+    m VariantType
+variantTypeValue _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_variant_type_value _obj'
+    result' <- (newBoxed VariantType) result
+    touchManagedPtr _obj
+    return result'
+
+-- callback VoidFunc
+voidFuncClosure :: VoidFunc -> IO Closure
+voidFuncClosure cb = newCClosure =<< mkVoidFunc wrapped
+    where wrapped = voidFuncWrapper Nothing cb
+
+type VoidFuncC =
+    IO ()
+
+foreign import ccall "wrapper"
+    mkVoidFunc :: VoidFuncC -> IO (FunPtr VoidFuncC)
+
+type VoidFunc =
+    IO ()
+
+noVoidFunc :: Maybe VoidFunc
+noVoidFunc = Nothing
+
+voidFuncWrapper ::
+    Maybe (Ptr (FunPtr (VoidFuncC))) ->
+    VoidFunc ->
+    IO ()
+voidFuncWrapper funptrptr _cb = do
+    _cb 
+    maybeReleaseFunPtr funptrptr
+
+-- constant _ANALYZER_ANALYZING
+
+_ANALYZER_ANALYZING :: Int32
+_ANALYZER_ANALYZING = 1
+-- constant _ASCII_DTOSTR_BUF_SIZE
+
+_ASCII_DTOSTR_BUF_SIZE :: Int32
+_ASCII_DTOSTR_BUF_SIZE = 39
+-- constant _BIG_ENDIAN
+
+_BIG_ENDIAN :: Int32
+_BIG_ENDIAN = 4321
+-- constant _CAN_INLINE
+
+_CAN_INLINE :: Int32
+_CAN_INLINE = 1
+-- constant _CSET_A_2_Z
+
+_CSET_A_2_Z :: T.Text
+_CSET_A_2_Z = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
+-- constant _CSET_DIGITS
+
+_CSET_DIGITS :: T.Text
+_CSET_DIGITS = "0123456789"
+-- constant _CSET_a_2_z
+
+_CSET_a_2_z :: T.Text
+_CSET_a_2_z = "abcdefghijklmnopqrstuvwxyz"
+-- constant _DATALIST_FLAGS_MASK
+
+_DATALIST_FLAGS_MASK :: Int32
+_DATALIST_FLAGS_MASK = 3
+-- constant _DATE_BAD_DAY
+
+_DATE_BAD_DAY :: Int32
+_DATE_BAD_DAY = 0
+-- constant _DATE_BAD_JULIAN
+
+_DATE_BAD_JULIAN :: Int32
+_DATE_BAD_JULIAN = 0
+-- constant _DATE_BAD_YEAR
+
+_DATE_BAD_YEAR :: Int32
+_DATE_BAD_YEAR = 0
+-- constant _DIR_SEPARATOR
+
+_DIR_SEPARATOR :: Int32
+_DIR_SEPARATOR = 92
+-- constant _DIR_SEPARATOR_S
+
+_DIR_SEPARATOR_S :: T.Text
+_DIR_SEPARATOR_S = "\\"
+-- constant _E
+
+_E :: Double
+_E = 2.718282
+-- constant _GINT16_FORMAT
+
+_GINT16_FORMAT :: T.Text
+_GINT16_FORMAT = "hi"
+-- constant _GINT16_MODIFIER
+
+_GINT16_MODIFIER :: T.Text
+_GINT16_MODIFIER = "h"
+-- constant _GINT32_FORMAT
+
+_GINT32_FORMAT :: T.Text
+_GINT32_FORMAT = "i"
+-- constant _GINT32_MODIFIER
+
+_GINT32_MODIFIER :: T.Text
+_GINT32_MODIFIER = ""
+-- constant _GINT64_FORMAT
+
+_GINT64_FORMAT :: T.Text
+_GINT64_FORMAT = "li"
+-- constant _GINT64_MODIFIER
+
+_GINT64_MODIFIER :: T.Text
+_GINT64_MODIFIER = "l"
+-- constant _GINTPTR_FORMAT
+
+_GINTPTR_FORMAT :: T.Text
+_GINTPTR_FORMAT = "li"
+-- constant _GINTPTR_MODIFIER
+
+_GINTPTR_MODIFIER :: T.Text
+_GINTPTR_MODIFIER = "l"
+-- constant _GNUC_FUNCTION
+{-# DEPRECATED _GNUC_FUNCTION ["(Since version 2.16)","Use G_STRFUNC() instead"]#-}
+_GNUC_FUNCTION :: T.Text
+_GNUC_FUNCTION = ""
+-- constant _GNUC_PRETTY_FUNCTION
+{-# DEPRECATED _GNUC_PRETTY_FUNCTION ["(Since version 2.16)","Use G_STRFUNC() instead"]#-}
+_GNUC_PRETTY_FUNCTION :: T.Text
+_GNUC_PRETTY_FUNCTION = ""
+-- constant _GSIZE_FORMAT
+
+_GSIZE_FORMAT :: T.Text
+_GSIZE_FORMAT = "lu"
+-- constant _GSIZE_MODIFIER
+
+_GSIZE_MODIFIER :: T.Text
+_GSIZE_MODIFIER = "l"
+-- constant _GSSIZE_FORMAT
+
+_GSSIZE_FORMAT :: T.Text
+_GSSIZE_FORMAT = "li"
+-- constant _GSSIZE_MODIFIER
+
+_GSSIZE_MODIFIER :: T.Text
+_GSSIZE_MODIFIER = "l"
+-- constant _GUINT16_FORMAT
+
+_GUINT16_FORMAT :: T.Text
+_GUINT16_FORMAT = "hu"
+-- constant _GUINT32_FORMAT
+
+_GUINT32_FORMAT :: T.Text
+_GUINT32_FORMAT = "u"
+-- constant _GUINT64_FORMAT
+
+_GUINT64_FORMAT :: T.Text
+_GUINT64_FORMAT = "lu"
+-- constant _GUINTPTR_FORMAT
+
+_GUINTPTR_FORMAT :: T.Text
+_GUINTPTR_FORMAT = "lu"
+-- constant _HAVE_GINT64
+
+_HAVE_GINT64 :: Int32
+_HAVE_GINT64 = 1
+-- constant _HAVE_GNUC_VARARGS
+
+_HAVE_GNUC_VARARGS :: Int32
+_HAVE_GNUC_VARARGS = 1
+-- constant _HAVE_GNUC_VISIBILITY
+
+_HAVE_GNUC_VISIBILITY :: Int32
+_HAVE_GNUC_VISIBILITY = 1
+-- constant _HAVE_GROWING_STACK
+
+_HAVE_GROWING_STACK :: Int32
+_HAVE_GROWING_STACK = 0
+-- constant _HAVE_INLINE
+
+_HAVE_INLINE :: Int32
+_HAVE_INLINE = 1
+-- constant _HAVE_ISO_VARARGS
+
+_HAVE_ISO_VARARGS :: Int32
+_HAVE_ISO_VARARGS = 1
+-- constant _HAVE___INLINE
+
+_HAVE___INLINE :: Int32
+_HAVE___INLINE = 1
+-- constant _HAVE___INLINE__
+
+_HAVE___INLINE__ :: Int32
+_HAVE___INLINE__ = 1
+-- constant _HOOK_FLAG_USER_SHIFT
+
+_HOOK_FLAG_USER_SHIFT :: Int32
+_HOOK_FLAG_USER_SHIFT = 4
+-- constant _IEEE754_DOUBLE_BIAS
+
+_IEEE754_DOUBLE_BIAS :: Int32
+_IEEE754_DOUBLE_BIAS = 1023
+-- constant _IEEE754_FLOAT_BIAS
+
+_IEEE754_FLOAT_BIAS :: Int32
+_IEEE754_FLOAT_BIAS = 127
+-- constant _KEY_FILE_DESKTOP_GROUP
+
+_KEY_FILE_DESKTOP_GROUP :: T.Text
+_KEY_FILE_DESKTOP_GROUP = "Desktop Entry"
+-- constant _KEY_FILE_DESKTOP_KEY_ACTIONS
+
+_KEY_FILE_DESKTOP_KEY_ACTIONS :: T.Text
+_KEY_FILE_DESKTOP_KEY_ACTIONS = "Actions"
+-- constant _KEY_FILE_DESKTOP_KEY_CATEGORIES
+
+_KEY_FILE_DESKTOP_KEY_CATEGORIES :: T.Text
+_KEY_FILE_DESKTOP_KEY_CATEGORIES = "Categories"
+-- constant _KEY_FILE_DESKTOP_KEY_COMMENT
+
+_KEY_FILE_DESKTOP_KEY_COMMENT :: T.Text
+_KEY_FILE_DESKTOP_KEY_COMMENT = "Comment"
+-- constant _KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE
+
+_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE :: T.Text
+_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE = "DBusActivatable"
+-- constant _KEY_FILE_DESKTOP_KEY_EXEC
+
+_KEY_FILE_DESKTOP_KEY_EXEC :: T.Text
+_KEY_FILE_DESKTOP_KEY_EXEC = "Exec"
+-- constant _KEY_FILE_DESKTOP_KEY_GENERIC_NAME
+
+_KEY_FILE_DESKTOP_KEY_GENERIC_NAME :: T.Text
+_KEY_FILE_DESKTOP_KEY_GENERIC_NAME = "GenericName"
+-- constant _KEY_FILE_DESKTOP_KEY_HIDDEN
+
+_KEY_FILE_DESKTOP_KEY_HIDDEN :: T.Text
+_KEY_FILE_DESKTOP_KEY_HIDDEN = "Hidden"
+-- constant _KEY_FILE_DESKTOP_KEY_ICON
+
+_KEY_FILE_DESKTOP_KEY_ICON :: T.Text
+_KEY_FILE_DESKTOP_KEY_ICON = "Icon"
+-- constant _KEY_FILE_DESKTOP_KEY_MIME_TYPE
+
+_KEY_FILE_DESKTOP_KEY_MIME_TYPE :: T.Text
+_KEY_FILE_DESKTOP_KEY_MIME_TYPE = "MimeType"
+-- constant _KEY_FILE_DESKTOP_KEY_NAME
+
+_KEY_FILE_DESKTOP_KEY_NAME :: T.Text
+_KEY_FILE_DESKTOP_KEY_NAME = "Name"
+-- constant _KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN
+
+_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN :: T.Text
+_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN = "NotShowIn"
+-- constant _KEY_FILE_DESKTOP_KEY_NO_DISPLAY
+
+_KEY_FILE_DESKTOP_KEY_NO_DISPLAY :: T.Text
+_KEY_FILE_DESKTOP_KEY_NO_DISPLAY = "NoDisplay"
+-- constant _KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN
+
+_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN :: T.Text
+_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN = "OnlyShowIn"
+-- constant _KEY_FILE_DESKTOP_KEY_PATH
+
+_KEY_FILE_DESKTOP_KEY_PATH :: T.Text
+_KEY_FILE_DESKTOP_KEY_PATH = "Path"
+-- constant _KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY
+
+_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY :: T.Text
+_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY = "StartupNotify"
+-- constant _KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS
+
+_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS :: T.Text
+_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS = "StartupWMClass"
+-- constant _KEY_FILE_DESKTOP_KEY_TERMINAL
+
+_KEY_FILE_DESKTOP_KEY_TERMINAL :: T.Text
+_KEY_FILE_DESKTOP_KEY_TERMINAL = "Terminal"
+-- constant _KEY_FILE_DESKTOP_KEY_TRY_EXEC
+
+_KEY_FILE_DESKTOP_KEY_TRY_EXEC :: T.Text
+_KEY_FILE_DESKTOP_KEY_TRY_EXEC = "TryExec"
+-- constant _KEY_FILE_DESKTOP_KEY_TYPE
+
+_KEY_FILE_DESKTOP_KEY_TYPE :: T.Text
+_KEY_FILE_DESKTOP_KEY_TYPE = "Type"
+-- constant _KEY_FILE_DESKTOP_KEY_URL
+
+_KEY_FILE_DESKTOP_KEY_URL :: T.Text
+_KEY_FILE_DESKTOP_KEY_URL = "URL"
+-- constant _KEY_FILE_DESKTOP_KEY_VERSION
+
+_KEY_FILE_DESKTOP_KEY_VERSION :: T.Text
+_KEY_FILE_DESKTOP_KEY_VERSION = "Version"
+-- constant _KEY_FILE_DESKTOP_TYPE_APPLICATION
+
+_KEY_FILE_DESKTOP_TYPE_APPLICATION :: T.Text
+_KEY_FILE_DESKTOP_TYPE_APPLICATION = "Application"
+-- constant _KEY_FILE_DESKTOP_TYPE_DIRECTORY
+
+_KEY_FILE_DESKTOP_TYPE_DIRECTORY :: T.Text
+_KEY_FILE_DESKTOP_TYPE_DIRECTORY = "Directory"
+-- constant _KEY_FILE_DESKTOP_TYPE_LINK
+
+_KEY_FILE_DESKTOP_TYPE_LINK :: T.Text
+_KEY_FILE_DESKTOP_TYPE_LINK = "Link"
+-- constant _LITTLE_ENDIAN
+
+_LITTLE_ENDIAN :: Int32
+_LITTLE_ENDIAN = 1234
+-- constant _LN10
+
+_LN10 :: Double
+_LN10 = 2.302585
+-- constant _LN2
+
+_LN2 :: Double
+_LN2 = 0.693147
+-- constant _LOG_2_BASE_10
+
+_LOG_2_BASE_10 :: Double
+_LOG_2_BASE_10 = 0.301030
+-- constant _LOG_DOMAIN
+
+_LOG_DOMAIN :: Int8
+_LOG_DOMAIN = 0
+-- constant _LOG_FATAL_MASK
+
+_LOG_FATAL_MASK :: Int32
+_LOG_FATAL_MASK = 0
+-- constant _LOG_LEVEL_USER_SHIFT
+
+_LOG_LEVEL_USER_SHIFT :: Int32
+_LOG_LEVEL_USER_SHIFT = 8
+-- constant _MAJOR_VERSION
+
+_MAJOR_VERSION :: Int32
+_MAJOR_VERSION = 2
+-- constant _MAXINT16
+
+_MAXINT16 :: Int16
+_MAXINT16 = 32767
+-- constant _MAXINT32
+
+_MAXINT32 :: Int32
+_MAXINT32 = 2147483647
+-- constant _MAXINT64
+
+_MAXINT64 :: Int64
+_MAXINT64 = 9223372036854775807
+-- constant _MAXINT8
+
+_MAXINT8 :: Int8
+_MAXINT8 = 127
+-- constant _MAXUINT16
+
+_MAXUINT16 :: Word16
+_MAXUINT16 = 65535
+-- constant _MAXUINT32
+
+_MAXUINT32 :: Word32
+_MAXUINT32 = 4294967295
+-- constant _MAXUINT64
+
+_MAXUINT64 :: Word64
+_MAXUINT64 = 18446744073709551615
+-- constant _MAXUINT8
+
+_MAXUINT8 :: Word8
+_MAXUINT8 = 255
+-- constant _MICRO_VERSION
+
+_MICRO_VERSION :: Int32
+_MICRO_VERSION = 1
+-- constant _MININT16
+
+_MININT16 :: Int16
+_MININT16 = 32768
+-- constant _MININT32
+
+_MININT32 :: Int32
+_MININT32 = 2147483648
+-- constant _MININT64
+
+_MININT64 :: Int64
+_MININT64 = -9223372036854775808
+-- constant _MININT8
+
+_MININT8 :: Int8
+_MININT8 = 128
+-- constant _MINOR_VERSION
+
+_MINOR_VERSION :: Int32
+_MINOR_VERSION = 44
+-- constant _MODULE_SUFFIX
+
+_MODULE_SUFFIX :: T.Text
+_MODULE_SUFFIX = "so"
+-- constant _OPTION_REMAINING
+
+_OPTION_REMAINING :: T.Text
+_OPTION_REMAINING = ""
+-- constant _PDP_ENDIAN
+
+_PDP_ENDIAN :: Int32
+_PDP_ENDIAN = 3412
+-- constant _PI
+
+_PI :: Double
+_PI = 3.141593
+-- constant _PI_2
+
+_PI_2 :: Double
+_PI_2 = 1.570796
+-- constant _PI_4
+
+_PI_4 :: Double
+_PI_4 = 0.785398
+-- constant _POLLFD_FORMAT
+
+_POLLFD_FORMAT :: T.Text
+_POLLFD_FORMAT = "%#I64x"
+-- constant _PRIORITY_DEFAULT
+
+_PRIORITY_DEFAULT :: Int32
+_PRIORITY_DEFAULT = 0
+-- constant _PRIORITY_DEFAULT_IDLE
+
+_PRIORITY_DEFAULT_IDLE :: Int32
+_PRIORITY_DEFAULT_IDLE = 200
+-- constant _PRIORITY_HIGH
+
+_PRIORITY_HIGH :: Int32
+_PRIORITY_HIGH = -100
+-- constant _PRIORITY_HIGH_IDLE
+
+_PRIORITY_HIGH_IDLE :: Int32
+_PRIORITY_HIGH_IDLE = 100
+-- constant _PRIORITY_LOW
+
+_PRIORITY_LOW :: Int32
+_PRIORITY_LOW = 300
+-- constant _SEARCHPATH_SEPARATOR
+
+_SEARCHPATH_SEPARATOR :: Int32
+_SEARCHPATH_SEPARATOR = 59
+-- constant _SEARCHPATH_SEPARATOR_S
+
+_SEARCHPATH_SEPARATOR_S :: T.Text
+_SEARCHPATH_SEPARATOR_S = ";"
+-- constant _SIZEOF_LONG
+
+_SIZEOF_LONG :: Int32
+_SIZEOF_LONG = 8
+-- constant _SIZEOF_SIZE_T
+
+_SIZEOF_SIZE_T :: Int32
+_SIZEOF_SIZE_T = 8
+-- constant _SIZEOF_SSIZE_T
+
+_SIZEOF_SSIZE_T :: Int32
+_SIZEOF_SSIZE_T = 8
+-- constant _SIZEOF_VOID_P
+
+_SIZEOF_VOID_P :: Int32
+_SIZEOF_VOID_P = 8
+-- constant _SOURCE_CONTINUE
+
+_SOURCE_CONTINUE :: Bool
+_SOURCE_CONTINUE = True
+-- constant _SOURCE_REMOVE
+
+_SOURCE_REMOVE :: Bool
+_SOURCE_REMOVE = False
+-- constant _SQRT2
+
+_SQRT2 :: Double
+_SQRT2 = 1.414214
+-- constant _STR_DELIMITERS
+
+_STR_DELIMITERS :: T.Text
+_STR_DELIMITERS = "_-|> <."
+-- constant _SYSDEF_AF_INET
+
+_SYSDEF_AF_INET :: Int32
+_SYSDEF_AF_INET = 2
+-- constant _SYSDEF_AF_INET6
+
+_SYSDEF_AF_INET6 :: Int32
+_SYSDEF_AF_INET6 = 10
+-- constant _SYSDEF_AF_UNIX
+
+_SYSDEF_AF_UNIX :: Int32
+_SYSDEF_AF_UNIX = 1
+-- constant _SYSDEF_MSG_DONTROUTE
+
+_SYSDEF_MSG_DONTROUTE :: Int32
+_SYSDEF_MSG_DONTROUTE = 4
+-- constant _SYSDEF_MSG_OOB
+
+_SYSDEF_MSG_OOB :: Int32
+_SYSDEF_MSG_OOB = 1
+-- constant _SYSDEF_MSG_PEEK
+
+_SYSDEF_MSG_PEEK :: Int32
+_SYSDEF_MSG_PEEK = 2
+-- constant _TIME_SPAN_DAY
+
+_TIME_SPAN_DAY :: Int64
+_TIME_SPAN_DAY = 86400000000
+-- constant _TIME_SPAN_HOUR
+
+_TIME_SPAN_HOUR :: Int64
+_TIME_SPAN_HOUR = 3600000000
+-- constant _TIME_SPAN_MILLISECOND
+
+_TIME_SPAN_MILLISECOND :: Int64
+_TIME_SPAN_MILLISECOND = 1000
+-- constant _TIME_SPAN_MINUTE
+
+_TIME_SPAN_MINUTE :: Int64
+_TIME_SPAN_MINUTE = 60000000
+-- constant _TIME_SPAN_SECOND
+
+_TIME_SPAN_SECOND :: Int64
+_TIME_SPAN_SECOND = 1000000
+-- constant _UNICHAR_MAX_DECOMPOSITION_LENGTH
+
+_UNICHAR_MAX_DECOMPOSITION_LENGTH :: Int32
+_UNICHAR_MAX_DECOMPOSITION_LENGTH = 18
+-- constant _URI_RESERVED_CHARS_GENERIC_DELIMITERS
+
+_URI_RESERVED_CHARS_GENERIC_DELIMITERS :: T.Text
+_URI_RESERVED_CHARS_GENERIC_DELIMITERS = ":/?#[]@"
+-- constant _URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS
+
+_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS :: T.Text
+_URI_RESERVED_CHARS_SUBCOMPONENT_DELIMITERS = "!$&'()*+,;="
+-- constant _USEC_PER_SEC
+
+_USEC_PER_SEC :: Int32
+_USEC_PER_SEC = 1000000
+-- constant _VA_COPY_AS_ARRAY
+
+_VA_COPY_AS_ARRAY :: Int32
+_VA_COPY_AS_ARRAY = 1
+-- constant _VERSION_MIN_REQUIRED
+
+_VERSION_MIN_REQUIRED :: Int32
+_VERSION_MIN_REQUIRED = 2
+-- constant _WIN32_MSG_HANDLE
+
+_WIN32_MSG_HANDLE :: Int32
+_WIN32_MSG_HANDLE = 19981206
+-- function g_access
+-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_access" g_access :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    Int32 ->                                -- mode : TBasicType TInt32
+    IO Int32
+
+
+access ::
+    (MonadIO m) =>
+    T.Text ->                               -- filename
+    Int32 ->                                -- mode
+    m Int32
+access filename mode = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_access filename' mode
+    freeMem filename'
+    return result
+
+-- function g_ascii_digit_value
+-- Args : [Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_digit_value" g_ascii_digit_value :: 
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO Int32
+
+
+asciiDigitValue ::
+    (MonadIO m) =>
+    Int8 ->                                 -- c
+    m Int32
+asciiDigitValue c = liftIO $ do
+    result <- g_ascii_digit_value c
+    return result
+
+-- function g_ascii_dtostr
+-- Args : [Arg {argName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_dtostr" g_ascii_dtostr :: 
+    CString ->                              -- buffer : TBasicType TUTF8
+    Int32 ->                                -- buf_len : TBasicType TInt32
+    CDouble ->                              -- d : TBasicType TDouble
+    IO CString
+
+
+asciiDtostr ::
+    (MonadIO m) =>
+    T.Text ->                               -- buffer
+    Int32 ->                                -- buf_len
+    Double ->                               -- d
+    m T.Text
+asciiDtostr buffer buf_len d = liftIO $ do
+    buffer' <- textToCString buffer
+    let d' = realToFrac d
+    result <- g_ascii_dtostr buffer' buf_len d'
+    result' <- cstringToText result
+    freeMem result
+    freeMem buffer'
+    return result'
+
+-- function g_ascii_formatd
+-- Args : [Arg {argName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buf_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_formatd" g_ascii_formatd :: 
+    CString ->                              -- buffer : TBasicType TUTF8
+    Int32 ->                                -- buf_len : TBasicType TInt32
+    CString ->                              -- format : TBasicType TUTF8
+    CDouble ->                              -- d : TBasicType TDouble
+    IO CString
+
+
+asciiFormatd ::
+    (MonadIO m) =>
+    T.Text ->                               -- buffer
+    Int32 ->                                -- buf_len
+    T.Text ->                               -- format
+    Double ->                               -- d
+    m T.Text
+asciiFormatd buffer buf_len format d = liftIO $ do
+    buffer' <- textToCString buffer
+    format' <- textToCString format
+    let d' = realToFrac d
+    result <- g_ascii_formatd buffer' buf_len format' d'
+    result' <- cstringToText result
+    freeMem result
+    freeMem buffer'
+    freeMem format'
+    return result'
+
+-- function g_ascii_strcasecmp
+-- Args : [Arg {argName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strcasecmp" g_ascii_strcasecmp :: 
+    CString ->                              -- s1 : TBasicType TUTF8
+    CString ->                              -- s2 : TBasicType TUTF8
+    IO Int32
+
+
+asciiStrcasecmp ::
+    (MonadIO m) =>
+    T.Text ->                               -- s1
+    T.Text ->                               -- s2
+    m Int32
+asciiStrcasecmp s1 s2 = liftIO $ do
+    s1' <- textToCString s1
+    s2' <- textToCString s2
+    result <- g_ascii_strcasecmp s1' s2'
+    freeMem s1'
+    freeMem s2'
+    return result
+
+-- function g_ascii_strdown
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strdown" g_ascii_strdown :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+asciiStrdown ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    m T.Text
+asciiStrdown str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_ascii_strdown str' len
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_ascii_strncasecmp
+-- Args : [Arg {argName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strncasecmp" g_ascii_strncasecmp :: 
+    CString ->                              -- s1 : TBasicType TUTF8
+    CString ->                              -- s2 : TBasicType TUTF8
+    Word64 ->                               -- n : TBasicType TUInt64
+    IO Int32
+
+
+asciiStrncasecmp ::
+    (MonadIO m) =>
+    T.Text ->                               -- s1
+    T.Text ->                               -- s2
+    Word64 ->                               -- n
+    m Int32
+asciiStrncasecmp s1 s2 n = liftIO $ do
+    s1' <- textToCString s1
+    s2' <- textToCString s2
+    result <- g_ascii_strncasecmp s1' s2' n
+    freeMem s1'
+    freeMem s2'
+    return result
+
+-- function g_ascii_strtod
+-- Args : [Arg {argName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strtod" g_ascii_strtod :: 
+    CString ->                              -- nptr : TBasicType TUTF8
+    CString ->                              -- endptr : TBasicType TUTF8
+    IO CDouble
+
+
+asciiStrtod ::
+    (MonadIO m) =>
+    T.Text ->                               -- nptr
+    T.Text ->                               -- endptr
+    m Double
+asciiStrtod nptr endptr = liftIO $ do
+    nptr' <- textToCString nptr
+    endptr' <- textToCString endptr
+    result <- g_ascii_strtod nptr' endptr'
+    let result' = realToFrac result
+    freeMem nptr'
+    freeMem endptr'
+    return result'
+
+-- function g_ascii_strtoll
+-- Args : [Arg {argName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strtoll" g_ascii_strtoll :: 
+    CString ->                              -- nptr : TBasicType TUTF8
+    CString ->                              -- endptr : TBasicType TUTF8
+    Word32 ->                               -- base : TBasicType TUInt32
+    IO Int64
+
+
+asciiStrtoll ::
+    (MonadIO m) =>
+    T.Text ->                               -- nptr
+    T.Text ->                               -- endptr
+    Word32 ->                               -- base
+    m Int64
+asciiStrtoll nptr endptr base = liftIO $ do
+    nptr' <- textToCString nptr
+    endptr' <- textToCString endptr
+    result <- g_ascii_strtoll nptr' endptr' base
+    freeMem nptr'
+    freeMem endptr'
+    return result
+
+-- function g_ascii_strtoull
+-- Args : [Arg {argName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strtoull" g_ascii_strtoull :: 
+    CString ->                              -- nptr : TBasicType TUTF8
+    CString ->                              -- endptr : TBasicType TUTF8
+    Word32 ->                               -- base : TBasicType TUInt32
+    IO Word64
+
+
+asciiStrtoull ::
+    (MonadIO m) =>
+    T.Text ->                               -- nptr
+    T.Text ->                               -- endptr
+    Word32 ->                               -- base
+    m Word64
+asciiStrtoull nptr endptr base = liftIO $ do
+    nptr' <- textToCString nptr
+    endptr' <- textToCString endptr
+    result <- g_ascii_strtoull nptr' endptr' base
+    freeMem nptr'
+    freeMem endptr'
+    return result
+
+-- function g_ascii_strup
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_strup" g_ascii_strup :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+asciiStrup ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    m T.Text
+asciiStrup str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_ascii_strup str' len
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_ascii_tolower
+-- Args : [Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_tolower" g_ascii_tolower :: 
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO Int8
+
+
+asciiTolower ::
+    (MonadIO m) =>
+    Int8 ->                                 -- c
+    m Int8
+asciiTolower c = liftIO $ do
+    result <- g_ascii_tolower c
+    return result
+
+-- function g_ascii_toupper
+-- Args : [Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_toupper" g_ascii_toupper :: 
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO Int8
+
+
+asciiToupper ::
+    (MonadIO m) =>
+    Int8 ->                                 -- c
+    m Int8
+asciiToupper c = liftIO $ do
+    result <- g_ascii_toupper c
+    return result
+
+-- function g_ascii_xdigit_value
+-- Args : [Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_ascii_xdigit_value" g_ascii_xdigit_value :: 
+    Int8 ->                                 -- c : TBasicType TInt8
+    IO Int32
+
+
+asciiXdigitValue ::
+    (MonadIO m) =>
+    Int8 ->                                 -- c
+    m Int32
+asciiXdigitValue c = liftIO $ do
+    result <- g_ascii_xdigit_value c
+    return result
+
+-- function g_assert_warning
+-- Args : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pretty_function", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expression", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pretty_function", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expression", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_assert_warning" g_assert_warning :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt32
+    CString ->                              -- pretty_function : TBasicType TUTF8
+    CString ->                              -- expression : TBasicType TUTF8
+    IO ()
+
+
+assertWarning ::
+    (MonadIO m) =>
+    T.Text ->                               -- log_domain
+    T.Text ->                               -- file
+    Int32 ->                                -- line
+    T.Text ->                               -- pretty_function
+    T.Text ->                               -- expression
+    m ()
+assertWarning log_domain file line pretty_function expression = liftIO $ do
+    log_domain' <- textToCString log_domain
+    file' <- textToCString file
+    pretty_function' <- textToCString pretty_function
+    expression' <- textToCString expression
+    g_assert_warning log_domain' file' line pretty_function' expression'
+    freeMem log_domain'
+    freeMem file'
+    freeMem pretty_function'
+    freeMem expression'
+    return ()
+
+-- function g_assertion_message
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_assertion_message" g_assertion_message :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt32
+    CString ->                              -- func : TBasicType TUTF8
+    CString ->                              -- message : TBasicType TUTF8
+    IO ()
+
+
+assertionMessage ::
+    (MonadIO m) =>
+    T.Text ->                               -- domain
+    T.Text ->                               -- file
+    Int32 ->                                -- line
+    T.Text ->                               -- func
+    T.Text ->                               -- message
+    m ()
+assertionMessage domain file line func message = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    message' <- textToCString message
+    g_assertion_message domain' file' line func' message'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem message'
+    return ()
+
+-- function g_assertion_message_cmpstr
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "arg1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cmp", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "arg2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "arg1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cmp", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "arg2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_assertion_message_cmpstr" g_assertion_message_cmpstr :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt32
+    CString ->                              -- func : TBasicType TUTF8
+    CString ->                              -- expr : TBasicType TUTF8
+    CString ->                              -- arg1 : TBasicType TUTF8
+    CString ->                              -- cmp : TBasicType TUTF8
+    CString ->                              -- arg2 : TBasicType TUTF8
+    IO ()
+
+
+assertionMessageCmpstr ::
+    (MonadIO m) =>
+    T.Text ->                               -- domain
+    T.Text ->                               -- file
+    Int32 ->                                -- line
+    T.Text ->                               -- func
+    T.Text ->                               -- expr
+    T.Text ->                               -- arg1
+    T.Text ->                               -- cmp
+    T.Text ->                               -- arg2
+    m ()
+assertionMessageCmpstr domain file line func expr arg1 cmp arg2 = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    expr' <- textToCString expr
+    arg1' <- textToCString arg1
+    cmp' <- textToCString cmp
+    arg2' <- textToCString arg2
+    g_assertion_message_cmpstr domain' file' line func' expr' arg1' cmp' arg2'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem expr'
+    freeMem arg1'
+    freeMem cmp'
+    freeMem arg2'
+    return ()
+
+-- function g_assertion_message_error
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "error", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "error_domain", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "error_code", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "error", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "error_domain", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "error_code", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_assertion_message_error" g_assertion_message_error :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt32
+    CString ->                              -- func : TBasicType TUTF8
+    CString ->                              -- expr : TBasicType TUTF8
+    Ptr GError ->                           -- error : TError
+    Word32 ->                               -- error_domain : TBasicType TUInt32
+    Int32 ->                                -- error_code : TBasicType TInt32
+    IO ()
+
+
+assertionMessageError ::
+    (MonadIO m) =>
+    T.Text ->                               -- domain
+    T.Text ->                               -- file
+    Int32 ->                                -- line
+    T.Text ->                               -- func
+    T.Text ->                               -- expr
+    GError ->                               -- error
+    Word32 ->                               -- error_domain
+    Int32 ->                                -- error_code
+    m ()
+assertionMessageError domain file line func expr error_ error_domain error_code = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    expr' <- textToCString expr
+    let error_' = unsafeManagedPtrGetPtr error_
+    g_assertion_message_error domain' file' line func' expr' error_' error_domain error_code
+    touchManagedPtr error_
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem expr'
+    return ()
+
+-- function g_assertion_message_expr
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_assertion_message_expr" g_assertion_message_expr :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt32
+    CString ->                              -- func : TBasicType TUTF8
+    CString ->                              -- expr : TBasicType TUTF8
+    IO ()
+
+
+assertionMessageExpr ::
+    (MonadIO m) =>
+    T.Text ->                               -- domain
+    T.Text ->                               -- file
+    Int32 ->                                -- line
+    T.Text ->                               -- func
+    T.Text ->                               -- expr
+    m ()
+assertionMessageExpr domain file line func expr = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    expr' <- textToCString expr
+    g_assertion_message_expr domain' file' line func' expr'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem expr'
+    return ()
+
+-- function g_atexit
+-- Args : [Arg {argName = "func", argType = TInterface "GLib" "VoidFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "func", argType = TInterface "GLib" "VoidFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atexit" g_atexit :: 
+    FunPtr VoidFuncC ->                     -- func : TInterface "GLib" "VoidFunc"
+    IO ()
+
+{-# DEPRECATED atexit ["(Since version 2.32)","It is best to avoid g_atexit()."]#-}
+atexit ::
+    (MonadIO m) =>
+    VoidFunc ->                             -- func
+    m ()
+atexit func = liftIO $ do
+    ptrfunc <- callocBytes $ sizeOf (undefined :: FunPtr VoidFuncC)
+    func' <- mkVoidFunc (voidFuncWrapper (Just ptrfunc) func)
+    poke ptrfunc func'
+    g_atexit func'
+    return ()
+
+-- function g_atomic_int_add
+-- Args : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_add" g_atomic_int_add :: 
+    Int32 ->                                -- atomic : TBasicType TInt32
+    Int32 ->                                -- val : TBasicType TInt32
+    IO Int32
+
+
+atomicIntAdd ::
+    (MonadIO m) =>
+    Int32 ->                                -- atomic
+    Int32 ->                                -- val
+    m Int32
+atomicIntAdd atomic val = liftIO $ do
+    result <- g_atomic_int_add atomic val
+    return result
+
+-- function g_atomic_int_and
+-- Args : [Arg {argName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_and" g_atomic_int_and :: 
+    Word32 ->                               -- atomic : TBasicType TUInt32
+    Word32 ->                               -- val : TBasicType TUInt32
+    IO Word32
+
+
+atomicIntAnd ::
+    (MonadIO m) =>
+    Word32 ->                               -- atomic
+    Word32 ->                               -- val
+    m Word32
+atomicIntAnd atomic val = liftIO $ do
+    result <- g_atomic_int_and atomic val
+    return result
+
+-- function g_atomic_int_compare_and_exchange
+-- Args : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "oldval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "oldval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_compare_and_exchange" g_atomic_int_compare_and_exchange :: 
+    Int32 ->                                -- atomic : TBasicType TInt32
+    Int32 ->                                -- oldval : TBasicType TInt32
+    Int32 ->                                -- newval : TBasicType TInt32
+    IO CInt
+
+
+atomicIntCompareAndExchange ::
+    (MonadIO m) =>
+    Int32 ->                                -- atomic
+    Int32 ->                                -- oldval
+    Int32 ->                                -- newval
+    m Bool
+atomicIntCompareAndExchange atomic oldval newval = liftIO $ do
+    result <- g_atomic_int_compare_and_exchange atomic oldval newval
+    let result' = (/= 0) result
+    return result'
+
+-- function g_atomic_int_dec_and_test
+-- Args : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_dec_and_test" g_atomic_int_dec_and_test :: 
+    Int32 ->                                -- atomic : TBasicType TInt32
+    IO CInt
+
+
+atomicIntDecAndTest ::
+    (MonadIO m) =>
+    Int32 ->                                -- atomic
+    m Bool
+atomicIntDecAndTest atomic = liftIO $ do
+    result <- g_atomic_int_dec_and_test atomic
+    let result' = (/= 0) result
+    return result'
+
+-- function g_atomic_int_exchange_and_add
+-- Args : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_exchange_and_add" g_atomic_int_exchange_and_add :: 
+    Int32 ->                                -- atomic : TBasicType TInt32
+    Int32 ->                                -- val : TBasicType TInt32
+    IO Int32
+
+{-# DEPRECATED atomicIntExchangeAndAdd ["(Since version 2.30)","Use g_atomic_int_add() instead."]#-}
+atomicIntExchangeAndAdd ::
+    (MonadIO m) =>
+    Int32 ->                                -- atomic
+    Int32 ->                                -- val
+    m Int32
+atomicIntExchangeAndAdd atomic val = liftIO $ do
+    result <- g_atomic_int_exchange_and_add atomic val
+    return result
+
+-- function g_atomic_int_get
+-- Args : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_get" g_atomic_int_get :: 
+    Int32 ->                                -- atomic : TBasicType TInt32
+    IO Int32
+
+
+atomicIntGet ::
+    (MonadIO m) =>
+    Int32 ->                                -- atomic
+    m Int32
+atomicIntGet atomic = liftIO $ do
+    result <- g_atomic_int_get atomic
+    return result
+
+-- function g_atomic_int_inc
+-- Args : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_inc" g_atomic_int_inc :: 
+    Int32 ->                                -- atomic : TBasicType TInt32
+    IO ()
+
+
+atomicIntInc ::
+    (MonadIO m) =>
+    Int32 ->                                -- atomic
+    m ()
+atomicIntInc atomic = liftIO $ do
+    g_atomic_int_inc atomic
+    return ()
+
+-- function g_atomic_int_or
+-- Args : [Arg {argName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_or" g_atomic_int_or :: 
+    Word32 ->                               -- atomic : TBasicType TUInt32
+    Word32 ->                               -- val : TBasicType TUInt32
+    IO Word32
+
+
+atomicIntOr ::
+    (MonadIO m) =>
+    Word32 ->                               -- atomic
+    Word32 ->                               -- val
+    m Word32
+atomicIntOr atomic val = liftIO $ do
+    result <- g_atomic_int_or atomic val
+    return result
+
+-- function g_atomic_int_set
+-- Args : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_set" g_atomic_int_set :: 
+    Int32 ->                                -- atomic : TBasicType TInt32
+    Int32 ->                                -- newval : TBasicType TInt32
+    IO ()
+
+
+atomicIntSet ::
+    (MonadIO m) =>
+    Int32 ->                                -- atomic
+    Int32 ->                                -- newval
+    m ()
+atomicIntSet atomic newval = liftIO $ do
+    g_atomic_int_set atomic newval
+    return ()
+
+-- function g_atomic_int_xor
+-- Args : [Arg {argName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_int_xor" g_atomic_int_xor :: 
+    Word32 ->                               -- atomic : TBasicType TUInt32
+    Word32 ->                               -- val : TBasicType TUInt32
+    IO Word32
+
+
+atomicIntXor ::
+    (MonadIO m) =>
+    Word32 ->                               -- atomic
+    Word32 ->                               -- val
+    m Word32
+atomicIntXor atomic val = liftIO $ do
+    result <- g_atomic_int_xor atomic val
+    return result
+
+-- function g_atomic_pointer_add
+-- Args : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_add" g_atomic_pointer_add :: 
+    Ptr () ->                               -- atomic : TBasicType TVoid
+    Int64 ->                                -- val : TBasicType TInt64
+    IO Int64
+
+
+atomicPointerAdd ::
+    (MonadIO m) =>
+    Ptr () ->                               -- atomic
+    Int64 ->                                -- val
+    m Int64
+atomicPointerAdd atomic val = liftIO $ do
+    result <- g_atomic_pointer_add atomic val
+    return result
+
+-- function g_atomic_pointer_and
+-- Args : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_and" g_atomic_pointer_and :: 
+    Ptr () ->                               -- atomic : TBasicType TVoid
+    Word64 ->                               -- val : TBasicType TUInt64
+    IO Word64
+
+
+atomicPointerAnd ::
+    (MonadIO m) =>
+    Ptr () ->                               -- atomic
+    Word64 ->                               -- val
+    m Word64
+atomicPointerAnd atomic val = liftIO $ do
+    result <- g_atomic_pointer_and atomic val
+    return result
+
+-- function g_atomic_pointer_compare_and_exchange
+-- Args : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "oldval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "oldval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_compare_and_exchange" g_atomic_pointer_compare_and_exchange :: 
+    Ptr () ->                               -- atomic : TBasicType TVoid
+    Ptr () ->                               -- oldval : TBasicType TVoid
+    Ptr () ->                               -- newval : TBasicType TVoid
+    IO CInt
+
+
+atomicPointerCompareAndExchange ::
+    (MonadIO m) =>
+    Ptr () ->                               -- atomic
+    Ptr () ->                               -- oldval
+    Ptr () ->                               -- newval
+    m Bool
+atomicPointerCompareAndExchange atomic oldval newval = liftIO $ do
+    result <- g_atomic_pointer_compare_and_exchange atomic oldval newval
+    let result' = (/= 0) result
+    return result'
+
+-- function g_atomic_pointer_or
+-- Args : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_or" g_atomic_pointer_or :: 
+    Ptr () ->                               -- atomic : TBasicType TVoid
+    Word64 ->                               -- val : TBasicType TUInt64
+    IO Word64
+
+
+atomicPointerOr ::
+    (MonadIO m) =>
+    Ptr () ->                               -- atomic
+    Word64 ->                               -- val
+    m Word64
+atomicPointerOr atomic val = liftIO $ do
+    result <- g_atomic_pointer_or atomic val
+    return result
+
+-- function g_atomic_pointer_set
+-- Args : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_set" g_atomic_pointer_set :: 
+    Ptr () ->                               -- atomic : TBasicType TVoid
+    Ptr () ->                               -- newval : TBasicType TVoid
+    IO ()
+
+
+atomicPointerSet ::
+    (MonadIO m) =>
+    Ptr () ->                               -- atomic
+    Ptr () ->                               -- newval
+    m ()
+atomicPointerSet atomic newval = liftIO $ do
+    g_atomic_pointer_set atomic newval
+    return ()
+
+-- function g_atomic_pointer_xor
+-- Args : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_atomic_pointer_xor" g_atomic_pointer_xor :: 
+    Ptr () ->                               -- atomic : TBasicType TVoid
+    Word64 ->                               -- val : TBasicType TUInt64
+    IO Word64
+
+
+atomicPointerXor ::
+    (MonadIO m) =>
+    Ptr () ->                               -- atomic
+    Word64 ->                               -- val
+    m Word64
+atomicPointerXor atomic val = liftIO $ do
+    result <- g_atomic_pointer_xor atomic val
+    return result
+
+-- function g_base64_decode
+-- Args : [Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "out_len", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "out_len", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray False (-1) 1 (TBasicType TUInt8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_base64_decode" g_base64_decode :: 
+    CString ->                              -- text : TBasicType TUTF8
+    Ptr Word64 ->                           -- out_len : TBasicType TUInt64
+    IO (Ptr Word8)
+
+
+base64Decode ::
+    (MonadIO m) =>
+    T.Text ->                               -- text
+    m ByteString
+base64Decode text = liftIO $ do
+    text' <- textToCString text
+    out_len <- allocMem :: IO (Ptr Word64)
+    result <- g_base64_decode text' out_len
+    out_len' <- peek out_len
+    result' <- (unpackByteStringWithLength out_len') result
+    freeMem result
+    freeMem text'
+    freeMem out_len
+    return result'
+
+-- function g_base64_decode_inplace
+-- Args : [Arg {argName = "text", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "out_len", argType = TBasicType TUInt64, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "out_len", argType = TBasicType TUInt64, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "text", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TBasicType TUInt8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_base64_decode_inplace" g_base64_decode_inplace :: 
+    Ptr (Ptr Word8) ->                      -- text : TCArray False (-1) 1 (TBasicType TUInt8)
+    Ptr Word64 ->                           -- out_len : TBasicType TUInt64
+    IO Word8
+
+
+base64DecodeInplace ::
+    (MonadIO m) =>
+    ByteString ->                           -- text
+    m (Word8,ByteString)
+base64DecodeInplace text = liftIO $ do
+    let out_len = fromIntegral $ B.length text
+    text' <- packByteString text
+    text'' <- allocMem :: IO (Ptr (Ptr Word8))
+    poke text'' text'
+    out_len' <- allocMem :: IO (Ptr Word64)
+    poke out_len' out_len
+    result <- g_base64_decode_inplace text'' out_len'
+    out_len'' <- peek out_len'
+    text''' <- peek text''
+    text'''' <- (unpackByteStringWithLength out_len'') text'''
+    freeMem text'''
+    freeMem text''
+    freeMem out_len'
+    return (result, text'''')
+
+-- function g_base64_encode
+-- Args : [Arg {argName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_base64_encode" g_base64_encode :: 
+    Ptr Word8 ->                            -- data : TCArray False (-1) 1 (TBasicType TUInt8)
+    Word64 ->                               -- len : TBasicType TUInt64
+    IO CString
+
+
+base64Encode ::
+    (MonadIO m) =>
+    ByteString ->                           -- data
+    m T.Text
+base64Encode data_ = liftIO $ do
+    let len = fromIntegral $ B.length data_
+    data_' <- packByteString data_
+    result <- g_base64_encode data_' len
+    result' <- cstringToText result
+    freeMem result
+    freeMem data_'
+    return result'
+
+-- function g_basename
+-- Args : [Arg {argName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_basename" g_basename :: 
+    CString ->                              -- file_name : TBasicType TUTF8
+    IO CString
+
+{-# DEPRECATED basename ["(Since version 2.2)","Use g_path_get_basename() instead, but notice","    that g_path_get_basename() allocates new memory for the","    returned string, unlike this function which returns a pointer","    into the argument."]#-}
+basename ::
+    (MonadIO m) =>
+    T.Text ->                               -- file_name
+    m T.Text
+basename file_name = liftIO $ do
+    file_name' <- textToCString file_name
+    result <- g_basename file_name'
+    result' <- cstringToText result
+    freeMem file_name'
+    return result'
+
+-- function g_bit_lock
+-- Args : [Arg {argName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_lock" g_bit_lock :: 
+    Int32 ->                                -- address : TBasicType TInt32
+    Int32 ->                                -- lock_bit : TBasicType TInt32
+    IO ()
+
+
+bitLock ::
+    (MonadIO m) =>
+    Int32 ->                                -- address
+    Int32 ->                                -- lock_bit
+    m ()
+bitLock address lock_bit = liftIO $ do
+    g_bit_lock address lock_bit
+    return ()
+
+-- function g_bit_nth_lsf
+-- Args : [Arg {argName = "mask", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nth_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "mask", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nth_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_nth_lsf" g_bit_nth_lsf :: 
+    Word64 ->                               -- mask : TBasicType TUInt64
+    Int32 ->                                -- nth_bit : TBasicType TInt32
+    IO Int32
+
+
+bitNthLsf ::
+    (MonadIO m) =>
+    Word64 ->                               -- mask
+    Int32 ->                                -- nth_bit
+    m Int32
+bitNthLsf mask nth_bit = liftIO $ do
+    result <- g_bit_nth_lsf mask nth_bit
+    return result
+
+-- function g_bit_nth_msf
+-- Args : [Arg {argName = "mask", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nth_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "mask", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nth_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_nth_msf" g_bit_nth_msf :: 
+    Word64 ->                               -- mask : TBasicType TUInt64
+    Int32 ->                                -- nth_bit : TBasicType TInt32
+    IO Int32
+
+
+bitNthMsf ::
+    (MonadIO m) =>
+    Word64 ->                               -- mask
+    Int32 ->                                -- nth_bit
+    m Int32
+bitNthMsf mask nth_bit = liftIO $ do
+    result <- g_bit_nth_msf mask nth_bit
+    return result
+
+-- function g_bit_storage
+-- Args : [Arg {argName = "number", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "number", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_storage" g_bit_storage :: 
+    Word64 ->                               -- number : TBasicType TUInt64
+    IO Word32
+
+
+bitStorage ::
+    (MonadIO m) =>
+    Word64 ->                               -- number
+    m Word32
+bitStorage number = liftIO $ do
+    result <- g_bit_storage number
+    return result
+
+-- function g_bit_trylock
+-- Args : [Arg {argName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_trylock" g_bit_trylock :: 
+    Int32 ->                                -- address : TBasicType TInt32
+    Int32 ->                                -- lock_bit : TBasicType TInt32
+    IO CInt
+
+
+bitTrylock ::
+    (MonadIO m) =>
+    Int32 ->                                -- address
+    Int32 ->                                -- lock_bit
+    m Bool
+bitTrylock address lock_bit = liftIO $ do
+    result <- g_bit_trylock address lock_bit
+    let result' = (/= 0) result
+    return result'
+
+-- function g_bit_unlock
+-- Args : [Arg {argName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bit_unlock" g_bit_unlock :: 
+    Int32 ->                                -- address : TBasicType TInt32
+    Int32 ->                                -- lock_bit : TBasicType TInt32
+    IO ()
+
+
+bitUnlock ::
+    (MonadIO m) =>
+    Int32 ->                                -- address
+    Int32 ->                                -- lock_bit
+    m ()
+bitUnlock address lock_bit = liftIO $ do
+    g_bit_unlock address lock_bit
+    return ()
+
+-- function g_bookmark_file_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_bookmark_file_error_quark" g_bookmark_file_error_quark :: 
+    IO Word32
+
+
+bookmarkFileErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+bookmarkFileErrorQuark  = liftIO $ do
+    result <- g_bookmark_file_error_quark
+    return result
+
+-- function g_build_filenamev
+-- Args : [Arg {argName = "args", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "args", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_build_filenamev" g_build_filenamev :: 
+    Ptr CString ->                          -- args : TCArray True (-1) (-1) (TBasicType TUTF8)
+    IO CString
+
+
+buildFilenamev ::
+    (MonadIO m) =>
+    [T.Text] ->                             -- args
+    m T.Text
+buildFilenamev args = liftIO $ do
+    args' <- packZeroTerminatedUTF8CArray args
+    result <- g_build_filenamev args'
+    result' <- cstringToText result
+    freeMem result
+    mapZeroTerminatedCArray freeMem args'
+    freeMem args'
+    return result'
+
+-- function g_build_pathv
+-- Args : [Arg {argName = "separator", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "args", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "separator", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "args", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_build_pathv" g_build_pathv :: 
+    CString ->                              -- separator : TBasicType TUTF8
+    Ptr CString ->                          -- args : TCArray True (-1) (-1) (TBasicType TUTF8)
+    IO CString
+
+
+buildPathv ::
+    (MonadIO m) =>
+    T.Text ->                               -- separator
+    [T.Text] ->                             -- args
+    m T.Text
+buildPathv separator args = liftIO $ do
+    separator' <- textToCString separator
+    args' <- packZeroTerminatedUTF8CArray args
+    result <- g_build_pathv separator' args'
+    result' <- cstringToText result
+    freeMem result
+    freeMem separator'
+    mapZeroTerminatedCArray freeMem args'
+    freeMem args'
+    return result'
+
+-- function g_byte_array_free
+-- Args : [Arg {argName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "free_segment", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "free_segment", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_byte_array_free" g_byte_array_free :: 
+    Ptr GByteArray ->                       -- array : TByteArray
+    CInt ->                                 -- free_segment : TBasicType TBoolean
+    IO Word8
+
+
+byteArrayFree ::
+    (MonadIO m) =>
+    ByteString ->                           -- array
+    Bool ->                                 -- free_segment
+    m Word8
+byteArrayFree array free_segment = liftIO $ do
+    array' <- packGByteArray array
+    let free_segment' = (fromIntegral . fromEnum) free_segment
+    result <- g_byte_array_free array' free_segment'
+    unrefGByteArray array'
+    return result
+
+-- function g_byte_array_free_to_bytes
+-- Args : [Arg {argName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TInterface "GLib" "Bytes"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_byte_array_free_to_bytes" g_byte_array_free_to_bytes :: 
+    Ptr GByteArray ->                       -- array : TByteArray
+    IO (Ptr Bytes)
+
+
+byteArrayFreeToBytes ::
+    (MonadIO m) =>
+    ByteString ->                           -- array
+    m Bytes
+byteArrayFreeToBytes array = liftIO $ do
+    array' <- packGByteArray array
+    result <- g_byte_array_free_to_bytes array'
+    result' <- (wrapBoxed Bytes) result
+    return result'
+
+-- function g_byte_array_new
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TByteArray
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_byte_array_new" g_byte_array_new :: 
+    IO (Ptr GByteArray)
+
+
+byteArrayNew ::
+    (MonadIO m) =>
+    m ByteString
+byteArrayNew  = liftIO $ do
+    result <- g_byte_array_new
+    result' <- unpackGByteArray result
+    unrefGByteArray result
+    return result'
+
+-- function g_byte_array_new_take
+-- Args : [Arg {argName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- returnType : TByteArray
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_byte_array_new_take" g_byte_array_new_take :: 
+    Ptr Word8 ->                            -- data : TCArray False (-1) 1 (TBasicType TUInt8)
+    Word64 ->                               -- len : TBasicType TUInt64
+    IO (Ptr GByteArray)
+
+
+byteArrayNewTake ::
+    (MonadIO m) =>
+    ByteString ->                           -- data
+    m ByteString
+byteArrayNewTake data_ = liftIO $ do
+    let len = fromIntegral $ B.length data_
+    data_' <- packByteString data_
+    result <- g_byte_array_new_take data_' len
+    result' <- unpackGByteArray result
+    unrefGByteArray result
+    return result'
+
+-- function g_byte_array_unref
+-- Args : [Arg {argName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_byte_array_unref" g_byte_array_unref :: 
+    Ptr GByteArray ->                       -- array : TByteArray
+    IO ()
+
+
+byteArrayUnref ::
+    (MonadIO m) =>
+    ByteString ->                           -- array
+    m ()
+byteArrayUnref array = liftIO $ do
+    array' <- packGByteArray array
+    g_byte_array_unref array'
+    unrefGByteArray array'
+    return ()
+
+-- function g_chdir
+-- Args : [Arg {argName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_chdir" g_chdir :: 
+    CString ->                              -- path : TBasicType TUTF8
+    IO Int32
+
+
+chdir ::
+    (MonadIO m) =>
+    T.Text ->                               -- path
+    m Int32
+chdir path = liftIO $ do
+    path' <- textToCString path
+    result <- g_chdir path'
+    freeMem path'
+    return result
+
+-- function glib_check_version
+-- Args : [Arg {argName = "required_major", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "required_minor", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "required_micro", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "required_major", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "required_minor", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "required_micro", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "glib_check_version" glib_check_version :: 
+    Word32 ->                               -- required_major : TBasicType TUInt32
+    Word32 ->                               -- required_minor : TBasicType TUInt32
+    Word32 ->                               -- required_micro : TBasicType TUInt32
+    IO CString
+
+
+checkVersion ::
+    (MonadIO m) =>
+    Word32 ->                               -- required_major
+    Word32 ->                               -- required_minor
+    Word32 ->                               -- required_micro
+    m T.Text
+checkVersion required_major required_minor required_micro = liftIO $ do
+    result <- glib_check_version required_major required_minor required_micro
+    result' <- cstringToText result
+    return result'
+
+-- function g_checksum_type_get_length
+-- Args : [Arg {argName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_checksum_type_get_length" g_checksum_type_get_length :: 
+    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
+    IO Int64
+
+
+checksumTypeGetLength ::
+    (MonadIO m) =>
+    ChecksumType ->                         -- checksum_type
+    m Int64
+checksumTypeGetLength checksum_type = liftIO $ do
+    let checksum_type' = (fromIntegral . fromEnum) checksum_type
+    result <- g_checksum_type_get_length checksum_type'
+    return result
+
+-- function g_child_watch_add_full
+-- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "ChildWatchFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "ChildWatchFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_child_watch_add_full" g_child_watch_add_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    Int32 ->                                -- pid : TBasicType TInt32
+    FunPtr ChildWatchFuncC ->               -- function : TInterface "GLib" "ChildWatchFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+childWatchAdd ::
+    (MonadIO m) =>
+    Int32 ->                                -- priority
+    Int32 ->                                -- pid
+    ChildWatchFunc ->                       -- function
+    m Word32
+childWatchAdd priority pid function = liftIO $ do
+    function' <- mkChildWatchFunc (childWatchFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_child_watch_add_full priority pid function' data_ notify
+    return result
+
+-- function g_child_watch_source_new
+-- Args : [Arg {argName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_child_watch_source_new" g_child_watch_source_new :: 
+    Int32 ->                                -- pid : TBasicType TInt32
+    IO (Ptr Source)
+
+
+childWatchSourceNew ::
+    (MonadIO m) =>
+    Int32 ->                                -- pid
+    m Source
+childWatchSourceNew pid = liftIO $ do
+    result <- g_child_watch_source_new pid
+    result' <- (wrapBoxed Source) result
+    return result'
+
+-- function g_clear_error
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_clear_error" g_clear_error :: 
+    Ptr (Ptr GError) ->                     -- error
+    IO ()
+
+
+clearError ::
+    (MonadIO m) =>
+    m ()
+clearError  = liftIO $ do
+    onException (do
+        propagateGError $ g_clear_error
+        return ()
+     ) (do
+        return ()
+     )
+
+-- function g_close
+-- Args : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_close" g_close :: 
+    Int32 ->                                -- fd : TBasicType TInt32
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+close ::
+    (MonadIO m) =>
+    Int32 ->                                -- fd
+    m ()
+close fd = liftIO $ do
+    onException (do
+        _ <- propagateGError $ g_close fd
+        return ()
+     ) (do
+        return ()
+     )
+
+-- function g_compute_checksum_for_bytes
+-- Args : [Arg {argName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_compute_checksum_for_bytes" g_compute_checksum_for_bytes :: 
+    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
+    Ptr Bytes ->                            -- data : TInterface "GLib" "Bytes"
+    IO CString
+
+
+computeChecksumForBytes ::
+    (MonadIO m) =>
+    ChecksumType ->                         -- checksum_type
+    Bytes ->                                -- data
+    m T.Text
+computeChecksumForBytes checksum_type data_ = liftIO $ do
+    let checksum_type' = (fromIntegral . fromEnum) checksum_type
+    let data_' = unsafeManagedPtrGetPtr data_
+    result <- g_compute_checksum_for_bytes checksum_type' data_'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr data_
+    return result'
+
+-- function g_compute_checksum_for_data
+-- Args : [Arg {argName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_compute_checksum_for_data" g_compute_checksum_for_data :: 
+    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
+    Ptr Word8 ->                            -- data : TCArray False (-1) 2 (TBasicType TUInt8)
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO CString
+
+
+computeChecksumForData ::
+    (MonadIO m) =>
+    ChecksumType ->                         -- checksum_type
+    ByteString ->                           -- data
+    m T.Text
+computeChecksumForData checksum_type data_ = liftIO $ do
+    let length_ = fromIntegral $ B.length data_
+    let checksum_type' = (fromIntegral . fromEnum) checksum_type
+    data_' <- packByteString data_
+    result <- g_compute_checksum_for_data checksum_type' data_' length_
+    result' <- cstringToText result
+    freeMem result
+    freeMem data_'
+    return result'
+
+-- function g_compute_checksum_for_string
+-- Args : [Arg {argName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_compute_checksum_for_string" g_compute_checksum_for_string :: 
+    CUInt ->                                -- checksum_type : TInterface "GLib" "ChecksumType"
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- length : TBasicType TInt64
+    IO CString
+
+
+computeChecksumForString ::
+    (MonadIO m) =>
+    ChecksumType ->                         -- checksum_type
+    T.Text ->                               -- str
+    Int64 ->                                -- length
+    m T.Text
+computeChecksumForString checksum_type str length_ = liftIO $ do
+    let checksum_type' = (fromIntegral . fromEnum) checksum_type
+    str' <- textToCString str
+    result <- g_compute_checksum_for_string checksum_type' str' length_
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_compute_hmac_for_data
+-- Args : [Arg {argName = "digest_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "digest_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_compute_hmac_for_data" g_compute_hmac_for_data :: 
+    CUInt ->                                -- digest_type : TInterface "GLib" "ChecksumType"
+    Ptr Word8 ->                            -- key : TCArray False (-1) 2 (TBasicType TUInt8)
+    Word64 ->                               -- key_len : TBasicType TUInt64
+    Word8 ->                                -- data : TBasicType TUInt8
+    Word64 ->                               -- length : TBasicType TUInt64
+    IO CString
+
+
+computeHmacForData ::
+    (MonadIO m) =>
+    ChecksumType ->                         -- digest_type
+    ByteString ->                           -- key
+    Word8 ->                                -- data
+    Word64 ->                               -- length
+    m T.Text
+computeHmacForData digest_type key data_ length_ = liftIO $ do
+    let key_len = fromIntegral $ B.length key
+    let digest_type' = (fromIntegral . fromEnum) digest_type
+    key' <- packByteString key
+    result <- g_compute_hmac_for_data digest_type' key' key_len data_ length_
+    result' <- cstringToText result
+    freeMem result
+    freeMem key'
+    return result'
+
+-- function g_compute_hmac_for_string
+-- Args : [Arg {argName = "digest_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "digest_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_compute_hmac_for_string" g_compute_hmac_for_string :: 
+    CUInt ->                                -- digest_type : TInterface "GLib" "ChecksumType"
+    Ptr Word8 ->                            -- key : TCArray False (-1) 2 (TBasicType TUInt8)
+    Word64 ->                               -- key_len : TBasicType TUInt64
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- length : TBasicType TInt64
+    IO CString
+
+
+computeHmacForString ::
+    (MonadIO m) =>
+    ChecksumType ->                         -- digest_type
+    ByteString ->                           -- key
+    T.Text ->                               -- str
+    Int64 ->                                -- length
+    m T.Text
+computeHmacForString digest_type key str length_ = liftIO $ do
+    let key_len = fromIntegral $ B.length key
+    let digest_type' = (fromIntegral . fromEnum) digest_type
+    key' <- packByteString key
+    str' <- textToCString str
+    result <- g_compute_hmac_for_string digest_type' key' key_len str' length_
+    result' <- cstringToText result
+    freeMem result
+    freeMem key'
+    freeMem str'
+    return result'
+
+-- function g_convert
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "to_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "from_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "to_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "from_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_convert" g_convert :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    CString ->                              -- to_codeset : TBasicType TUTF8
+    CString ->                              -- from_codeset : TBasicType TUTF8
+    Ptr Word64 ->                           -- bytes_read : TBasicType TUInt64
+    Ptr Word64 ->                           -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+convert ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    T.Text ->                               -- to_codeset
+    T.Text ->                               -- from_codeset
+    m (T.Text,Word64,Word64)
+convert str len to_codeset from_codeset = liftIO $ do
+    str' <- textToCString str
+    to_codeset' <- textToCString to_codeset
+    from_codeset' <- textToCString from_codeset
+    bytes_read <- allocMem :: IO (Ptr Word64)
+    bytes_written <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_convert str' len to_codeset' from_codeset' bytes_read bytes_written
+        result' <- cstringToText result
+        freeMem result
+        bytes_read' <- peek bytes_read
+        bytes_written' <- peek bytes_written
+        freeMem str'
+        freeMem to_codeset'
+        freeMem from_codeset'
+        freeMem bytes_read
+        freeMem bytes_written
+        return (result', bytes_read', bytes_written')
+     ) (do
+        freeMem str'
+        freeMem to_codeset'
+        freeMem from_codeset'
+        freeMem bytes_read
+        freeMem bytes_written
+     )
+
+-- function g_convert_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_convert_error_quark" g_convert_error_quark :: 
+    IO Word32
+
+
+convertErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+convertErrorQuark  = liftIO $ do
+    result <- g_convert_error_quark
+    return result
+
+-- function g_convert_with_fallback
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "to_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "from_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fallback", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "to_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "from_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fallback", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_convert_with_fallback" g_convert_with_fallback :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    CString ->                              -- to_codeset : TBasicType TUTF8
+    CString ->                              -- from_codeset : TBasicType TUTF8
+    CString ->                              -- fallback : TBasicType TUTF8
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+convertWithFallback ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    T.Text ->                               -- to_codeset
+    T.Text ->                               -- from_codeset
+    T.Text ->                               -- fallback
+    Word64 ->                               -- bytes_read
+    Word64 ->                               -- bytes_written
+    m T.Text
+convertWithFallback str len to_codeset from_codeset fallback bytes_read bytes_written = liftIO $ do
+    str' <- textToCString str
+    to_codeset' <- textToCString to_codeset
+    from_codeset' <- textToCString from_codeset
+    fallback' <- textToCString fallback
+    onException (do
+        result <- propagateGError $ g_convert_with_fallback str' len to_codeset' from_codeset' fallback' bytes_read bytes_written
+        result' <- cstringToText result
+        freeMem result
+        freeMem str'
+        freeMem to_codeset'
+        freeMem from_codeset'
+        freeMem fallback'
+        return result'
+     ) (do
+        freeMem str'
+        freeMem to_codeset'
+        freeMem from_codeset'
+        freeMem fallback'
+     )
+
+-- function g_convert_with_iconv
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "converter", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "converter", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_convert_with_iconv" g_convert_with_iconv :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    Ptr IConv ->                            -- converter : TInterface "GLib" "IConv"
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+convertWithIconv ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    IConv ->                                -- converter
+    Word64 ->                               -- bytes_read
+    Word64 ->                               -- bytes_written
+    m T.Text
+convertWithIconv str len converter bytes_read bytes_written = liftIO $ do
+    str' <- textToCString str
+    let converter' = unsafeManagedPtrGetPtr converter
+    onException (do
+        result <- propagateGError $ g_convert_with_iconv str' len converter' bytes_read bytes_written
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr converter
+        freeMem str'
+        return result'
+     ) (do
+        freeMem str'
+     )
+
+-- function g_datalist_clear
+-- Args : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_clear" g_datalist_clear :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    IO ()
+
+
+datalistClear ::
+    (MonadIO m) =>
+    Data ->                                 -- datalist
+    m ()
+datalistClear datalist = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_clear datalist'
+    touchManagedPtr datalist
+    return ()
+
+-- function g_datalist_get_flags
+-- Args : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_get_flags" g_datalist_get_flags :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    IO Word32
+
+
+datalistGetFlags ::
+    (MonadIO m) =>
+    Data ->                                 -- datalist
+    m Word32
+datalistGetFlags datalist = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    result <- g_datalist_get_flags datalist'
+    touchManagedPtr datalist
+    return result
+
+-- function g_datalist_id_replace_data
+-- Args : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "oldval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "old_destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "oldval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "old_destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_id_replace_data" g_datalist_id_replace_data :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    Word32 ->                               -- key_id : TBasicType TUInt32
+    Ptr () ->                               -- oldval : TBasicType TVoid
+    Ptr () ->                               -- newval : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- destroy : TInterface "GLib" "DestroyNotify"
+    FunPtr DestroyNotifyC ->                -- old_destroy : TInterface "GLib" "DestroyNotify"
+    IO CInt
+
+
+datalistIdReplaceData ::
+    (MonadIO m) =>
+    Data ->                                 -- datalist
+    Word32 ->                               -- key_id
+    Maybe (Ptr ()) ->                       -- oldval
+    Maybe (Ptr ()) ->                       -- newval
+    Maybe (DestroyNotify) ->                -- destroy
+    Maybe (DestroyNotify) ->                -- old_destroy
+    m Bool
+datalistIdReplaceData datalist key_id oldval newval destroy old_destroy = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    maybeOldval <- case oldval of
+        Nothing -> return nullPtr
+        Just jOldval -> do
+            return jOldval
+    maybeNewval <- case newval of
+        Nothing -> return nullPtr
+        Just jNewval -> do
+            return jNewval
+    ptrdestroy <- callocBytes $ sizeOf (undefined :: FunPtr DestroyNotifyC)
+    maybeDestroy <- case destroy of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jDestroy -> do
+            jDestroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroy) jDestroy)
+            poke ptrdestroy jDestroy'
+            return jDestroy'
+    ptrold_destroy <- callocBytes $ sizeOf (undefined :: FunPtr DestroyNotifyC)
+    maybeOld_destroy <- case old_destroy of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jOld_destroy -> do
+            jOld_destroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrold_destroy) jOld_destroy)
+            poke ptrold_destroy jOld_destroy'
+            return jOld_destroy'
+    result <- g_datalist_id_replace_data datalist' key_id maybeOldval maybeNewval maybeDestroy maybeOld_destroy
+    let result' = (/= 0) result
+    touchManagedPtr datalist
+    return result'
+
+-- function g_datalist_id_set_data_full
+-- Args : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_id_set_data_full" g_datalist_id_set_data_full :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    Word32 ->                               -- key_id : TBasicType TUInt32
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- destroy_func : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+datalistIdSetDataFull ::
+    (MonadIO m) =>
+    Data ->                                 -- datalist
+    Word32 ->                               -- key_id
+    Maybe (Ptr ()) ->                       -- data
+    DestroyNotify ->                        -- destroy_func
+    m ()
+datalistIdSetDataFull datalist key_id data_ destroy_func = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    maybeData_ <- case data_ of
+        Nothing -> return nullPtr
+        Just jData_ -> do
+            return jData_
+    ptrdestroy_func <- callocBytes $ sizeOf (undefined :: FunPtr DestroyNotifyC)
+    destroy_func' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroy_func) destroy_func)
+    poke ptrdestroy_func destroy_func'
+    g_datalist_id_set_data_full datalist' key_id maybeData_ destroy_func'
+    touchManagedPtr datalist
+    return ()
+
+-- function g_datalist_init
+-- Args : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_init" g_datalist_init :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    IO ()
+
+
+datalistInit ::
+    (MonadIO m) =>
+    Data ->                                 -- datalist
+    m ()
+datalistInit datalist = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_init datalist'
+    touchManagedPtr datalist
+    return ()
+
+-- function g_datalist_set_flags
+-- Args : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_set_flags" g_datalist_set_flags :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    Word32 ->                               -- flags : TBasicType TUInt32
+    IO ()
+
+
+datalistSetFlags ::
+    (MonadIO m) =>
+    Data ->                                 -- datalist
+    Word32 ->                               -- flags
+    m ()
+datalistSetFlags datalist flags = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_set_flags datalist' flags
+    touchManagedPtr datalist
+    return ()
+
+-- function g_datalist_unset_flags
+-- Args : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_datalist_unset_flags" g_datalist_unset_flags :: 
+    Ptr Data ->                             -- datalist : TInterface "GLib" "Data"
+    Word32 ->                               -- flags : TBasicType TUInt32
+    IO ()
+
+
+datalistUnsetFlags ::
+    (MonadIO m) =>
+    Data ->                                 -- datalist
+    Word32 ->                               -- flags
+    m ()
+datalistUnsetFlags datalist flags = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_unset_flags datalist' flags
+    touchManagedPtr datalist
+    return ()
+
+-- function g_dataset_destroy
+-- Args : [Arg {argName = "dataset_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dataset_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dataset_destroy" g_dataset_destroy :: 
+    Ptr () ->                               -- dataset_location : TBasicType TVoid
+    IO ()
+
+
+datasetDestroy ::
+    (MonadIO m) =>
+    Ptr () ->                               -- dataset_location
+    m ()
+datasetDestroy dataset_location = liftIO $ do
+    g_dataset_destroy dataset_location
+    return ()
+
+-- function g_dataset_id_set_data_full
+-- Args : [Arg {argName = "dataset_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dataset_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dataset_id_set_data_full" g_dataset_id_set_data_full :: 
+    Ptr () ->                               -- dataset_location : TBasicType TVoid
+    Word32 ->                               -- key_id : TBasicType TUInt32
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- destroy_func : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+datasetIdSetDataFull ::
+    (MonadIO m) =>
+    Ptr () ->                               -- dataset_location
+    Word32 ->                               -- key_id
+    Ptr () ->                               -- data
+    DestroyNotify ->                        -- destroy_func
+    m ()
+datasetIdSetDataFull dataset_location key_id data_ destroy_func = liftIO $ do
+    ptrdestroy_func <- callocBytes $ sizeOf (undefined :: FunPtr DestroyNotifyC)
+    destroy_func' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroy_func) destroy_func)
+    poke ptrdestroy_func destroy_func'
+    g_dataset_id_set_data_full dataset_location key_id data_ destroy_func'
+    return ()
+
+-- function g_date_get_days_in_month
+-- Args : [Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_days_in_month" g_date_get_days_in_month :: 
+    CUInt ->                                -- month : TInterface "GLib" "DateMonth"
+    Word16 ->                               -- year : TBasicType TUInt16
+    IO Word8
+
+
+dateGetDaysInMonth ::
+    (MonadIO m) =>
+    DateMonth ->                            -- month
+    Word16 ->                               -- year
+    m Word8
+dateGetDaysInMonth month year = liftIO $ do
+    let month' = (fromIntegral . fromEnum) month
+    result <- g_date_get_days_in_month month' year
+    return result
+
+-- function g_date_get_monday_weeks_in_year
+-- Args : [Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_monday_weeks_in_year" g_date_get_monday_weeks_in_year :: 
+    Word16 ->                               -- year : TBasicType TUInt16
+    IO Word8
+
+
+dateGetMondayWeeksInYear ::
+    (MonadIO m) =>
+    Word16 ->                               -- year
+    m Word8
+dateGetMondayWeeksInYear year = liftIO $ do
+    result <- g_date_get_monday_weeks_in_year year
+    return result
+
+-- function g_date_get_sunday_weeks_in_year
+-- Args : [Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_get_sunday_weeks_in_year" g_date_get_sunday_weeks_in_year :: 
+    Word16 ->                               -- year : TBasicType TUInt16
+    IO Word8
+
+
+dateGetSundayWeeksInYear ::
+    (MonadIO m) =>
+    Word16 ->                               -- year
+    m Word8
+dateGetSundayWeeksInYear year = liftIO $ do
+    result <- g_date_get_sunday_weeks_in_year year
+    return result
+
+-- function g_date_is_leap_year
+-- Args : [Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_is_leap_year" g_date_is_leap_year :: 
+    Word16 ->                               -- year : TBasicType TUInt16
+    IO CInt
+
+
+dateIsLeapYear ::
+    (MonadIO m) =>
+    Word16 ->                               -- year
+    m Bool
+dateIsLeapYear year = liftIO $ do
+    result <- g_date_is_leap_year year
+    let result' = (/= 0) result
+    return result'
+
+-- function g_date_strftime
+-- Args : [Arg {argName = "s", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "slen", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "date", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "s", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "slen", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "date", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_strftime" g_date_strftime :: 
+    CString ->                              -- s : TBasicType TUTF8
+    Word64 ->                               -- slen : TBasicType TUInt64
+    CString ->                              -- format : TBasicType TUTF8
+    Ptr Date ->                             -- date : TInterface "GLib" "Date"
+    IO Word64
+
+
+dateStrftime ::
+    (MonadIO m) =>
+    T.Text ->                               -- s
+    Word64 ->                               -- slen
+    T.Text ->                               -- format
+    Date ->                                 -- date
+    m Word64
+dateStrftime s slen format date = liftIO $ do
+    s' <- textToCString s
+    format' <- textToCString format
+    let date' = unsafeManagedPtrGetPtr date
+    result <- g_date_strftime s' slen format' date'
+    touchManagedPtr date
+    freeMem s'
+    freeMem format'
+    return result
+
+-- function g_date_time_compare
+-- Args : [Arg {argName = "dt1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dt2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dt1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dt2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_compare" g_date_time_compare :: 
+    Ptr () ->                               -- dt1 : TBasicType TVoid
+    Ptr () ->                               -- dt2 : TBasicType TVoid
+    IO Int32
+
+
+dateTimeCompare ::
+    (MonadIO m) =>
+    Ptr () ->                               -- dt1
+    Ptr () ->                               -- dt2
+    m Int32
+dateTimeCompare dt1 dt2 = liftIO $ do
+    result <- g_date_time_compare dt1 dt2
+    return result
+
+-- function g_date_time_equal
+-- Args : [Arg {argName = "dt1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dt2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dt1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dt2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_equal" g_date_time_equal :: 
+    Ptr () ->                               -- dt1 : TBasicType TVoid
+    Ptr () ->                               -- dt2 : TBasicType TVoid
+    IO CInt
+
+
+dateTimeEqual ::
+    (MonadIO m) =>
+    Ptr () ->                               -- dt1
+    Ptr () ->                               -- dt2
+    m Bool
+dateTimeEqual dt1 dt2 = liftIO $ do
+    result <- g_date_time_equal dt1 dt2
+    let result' = (/= 0) result
+    return result'
+
+-- function g_date_time_hash
+-- Args : [Arg {argName = "datetime", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "datetime", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_time_hash" g_date_time_hash :: 
+    Ptr () ->                               -- datetime : TBasicType TVoid
+    IO Word32
+
+
+dateTimeHash ::
+    (MonadIO m) =>
+    Ptr () ->                               -- datetime
+    m Word32
+dateTimeHash datetime = liftIO $ do
+    result <- g_date_time_hash datetime
+    return result
+
+-- function g_date_valid_day
+-- Args : [Arg {argName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_valid_day" g_date_valid_day :: 
+    Word8 ->                                -- day : TBasicType TUInt8
+    IO CInt
+
+
+dateValidDay ::
+    (MonadIO m) =>
+    Word8 ->                                -- day
+    m Bool
+dateValidDay day = liftIO $ do
+    result <- g_date_valid_day day
+    let result' = (/= 0) result
+    return result'
+
+-- function g_date_valid_dmy
+-- Args : [Arg {argName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_valid_dmy" g_date_valid_dmy :: 
+    Word8 ->                                -- day : TBasicType TUInt8
+    CUInt ->                                -- month : TInterface "GLib" "DateMonth"
+    Word16 ->                               -- year : TBasicType TUInt16
+    IO CInt
+
+
+dateValidDmy ::
+    (MonadIO m) =>
+    Word8 ->                                -- day
+    DateMonth ->                            -- month
+    Word16 ->                               -- year
+    m Bool
+dateValidDmy day month year = liftIO $ do
+    let month' = (fromIntegral . fromEnum) month
+    result <- g_date_valid_dmy day month' year
+    let result' = (/= 0) result
+    return result'
+
+-- function g_date_valid_julian
+-- Args : [Arg {argName = "julian_date", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "julian_date", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_valid_julian" g_date_valid_julian :: 
+    Word32 ->                               -- julian_date : TBasicType TUInt32
+    IO CInt
+
+
+dateValidJulian ::
+    (MonadIO m) =>
+    Word32 ->                               -- julian_date
+    m Bool
+dateValidJulian julian_date = liftIO $ do
+    result <- g_date_valid_julian julian_date
+    let result' = (/= 0) result
+    return result'
+
+-- function g_date_valid_month
+-- Args : [Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_valid_month" g_date_valid_month :: 
+    CUInt ->                                -- month : TInterface "GLib" "DateMonth"
+    IO CInt
+
+
+dateValidMonth ::
+    (MonadIO m) =>
+    DateMonth ->                            -- month
+    m Bool
+dateValidMonth month = liftIO $ do
+    let month' = (fromIntegral . fromEnum) month
+    result <- g_date_valid_month month'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_date_valid_weekday
+-- Args : [Arg {argName = "weekday", argType = TInterface "GLib" "DateWeekday", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "weekday", argType = TInterface "GLib" "DateWeekday", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_valid_weekday" g_date_valid_weekday :: 
+    CUInt ->                                -- weekday : TInterface "GLib" "DateWeekday"
+    IO CInt
+
+
+dateValidWeekday ::
+    (MonadIO m) =>
+    DateWeekday ->                          -- weekday
+    m Bool
+dateValidWeekday weekday = liftIO $ do
+    let weekday' = (fromIntegral . fromEnum) weekday
+    result <- g_date_valid_weekday weekday'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_date_valid_year
+-- Args : [Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_date_valid_year" g_date_valid_year :: 
+    Word16 ->                               -- year : TBasicType TUInt16
+    IO CInt
+
+
+dateValidYear ::
+    (MonadIO m) =>
+    Word16 ->                               -- year
+    m Bool
+dateValidYear year = liftIO $ do
+    result <- g_date_valid_year year
+    let result' = (/= 0) result
+    return result'
+
+-- function g_dcgettext
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "category", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "category", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dcgettext" g_dcgettext :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- msgid : TBasicType TUTF8
+    Int32 ->                                -- category : TBasicType TInt32
+    IO CString
+
+
+dcgettext ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- domain
+    T.Text ->                               -- msgid
+    Int32 ->                                -- category
+    m T.Text
+dcgettext domain msgid category = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    msgid' <- textToCString msgid
+    result <- g_dcgettext maybeDomain msgid' category
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgid'
+    return result'
+
+-- function g_dgettext
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dgettext" g_dgettext :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- msgid : TBasicType TUTF8
+    IO CString
+
+
+dgettext ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- domain
+    T.Text ->                               -- msgid
+    m T.Text
+dgettext domain msgid = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    msgid' <- textToCString msgid
+    result <- g_dgettext maybeDomain msgid'
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgid'
+    return result'
+
+-- function g_dir_make_tmp
+-- Args : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TFileName
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_dir_make_tmp" g_dir_make_tmp :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+dirMakeTmp ::
+    (MonadIO m) =>
+    Maybe ([Char]) ->                       -- tmpl
+    m [Char]
+dirMakeTmp tmpl = liftIO $ do
+    maybeTmpl <- case tmpl of
+        Nothing -> return nullPtr
+        Just jTmpl -> do
+            jTmpl' <- stringToCString jTmpl
+            return jTmpl'
+    onException (do
+        result <- propagateGError $ g_dir_make_tmp maybeTmpl
+        result' <- cstringToString result
+        freeMem result
+        freeMem maybeTmpl
+        return result'
+     ) (do
+        freeMem maybeTmpl
+     )
+
+-- function g_direct_equal
+-- Args : [Arg {argName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_direct_equal" g_direct_equal :: 
+    Ptr () ->                               -- v1 : TBasicType TVoid
+    Ptr () ->                               -- v2 : TBasicType TVoid
+    IO CInt
+
+
+directEqual ::
+    (MonadIO m) =>
+    Maybe (Ptr ()) ->                       -- v1
+    Maybe (Ptr ()) ->                       -- v2
+    m Bool
+directEqual v1 v2 = liftIO $ do
+    maybeV1 <- case v1 of
+        Nothing -> return nullPtr
+        Just jV1 -> do
+            return jV1
+    maybeV2 <- case v2 of
+        Nothing -> return nullPtr
+        Just jV2 -> do
+            return jV2
+    result <- g_direct_equal maybeV1 maybeV2
+    let result' = (/= 0) result
+    return result'
+
+-- function g_direct_hash
+-- Args : [Arg {argName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_direct_hash" g_direct_hash :: 
+    Ptr () ->                               -- v : TBasicType TVoid
+    IO Word32
+
+
+directHash ::
+    (MonadIO m) =>
+    Maybe (Ptr ()) ->                       -- v
+    m Word32
+directHash v = liftIO $ do
+    maybeV <- case v of
+        Nothing -> return nullPtr
+        Just jV -> do
+            return jV
+    result <- g_direct_hash maybeV
+    return result
+
+-- function g_dngettext
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgid_plural", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgid_plural", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dngettext" g_dngettext :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- msgid : TBasicType TUTF8
+    CString ->                              -- msgid_plural : TBasicType TUTF8
+    Word64 ->                               -- n : TBasicType TUInt64
+    IO CString
+
+
+dngettext ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- domain
+    T.Text ->                               -- msgid
+    T.Text ->                               -- msgid_plural
+    Word64 ->                               -- n
+    m T.Text
+dngettext domain msgid msgid_plural n = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    msgid' <- textToCString msgid
+    msgid_plural' <- textToCString msgid_plural
+    result <- g_dngettext maybeDomain msgid' msgid_plural' n
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgid'
+    freeMem msgid_plural'
+    return result'
+
+-- function g_double_equal
+-- Args : [Arg {argName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_double_equal" g_double_equal :: 
+    Ptr () ->                               -- v1 : TBasicType TVoid
+    Ptr () ->                               -- v2 : TBasicType TVoid
+    IO CInt
+
+
+doubleEqual ::
+    (MonadIO m) =>
+    Ptr () ->                               -- v1
+    Ptr () ->                               -- v2
+    m Bool
+doubleEqual v1 v2 = liftIO $ do
+    result <- g_double_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+-- function g_double_hash
+-- Args : [Arg {argName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_double_hash" g_double_hash :: 
+    Ptr () ->                               -- v : TBasicType TVoid
+    IO Word32
+
+
+doubleHash ::
+    (MonadIO m) =>
+    Ptr () ->                               -- v
+    m Word32
+doubleHash v = liftIO $ do
+    result <- g_double_hash v
+    return result
+
+-- function g_dpgettext
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgctxtid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgidoffset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgctxtid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgidoffset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dpgettext" g_dpgettext :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- msgctxtid : TBasicType TUTF8
+    Word64 ->                               -- msgidoffset : TBasicType TUInt64
+    IO CString
+
+
+dpgettext ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- domain
+    T.Text ->                               -- msgctxtid
+    Word64 ->                               -- msgidoffset
+    m T.Text
+dpgettext domain msgctxtid msgidoffset = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    msgctxtid' <- textToCString msgctxtid
+    result <- g_dpgettext maybeDomain msgctxtid' msgidoffset
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgctxtid'
+    return result'
+
+-- function g_dpgettext2
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "context", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_dpgettext2" g_dpgettext2 :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- context : TBasicType TUTF8
+    CString ->                              -- msgid : TBasicType TUTF8
+    IO CString
+
+
+dpgettext2 ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- domain
+    T.Text ->                               -- context
+    T.Text ->                               -- msgid
+    m T.Text
+dpgettext2 domain context msgid = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    context' <- textToCString context
+    msgid' <- textToCString msgid
+    result <- g_dpgettext2 maybeDomain context' msgid'
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem context'
+    freeMem msgid'
+    return result'
+
+-- function g_environ_getenv
+-- Args : [Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_environ_getenv" g_environ_getenv :: 
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CString ->                              -- variable : TBasicType TUTF8
+    IO CString
+
+
+environGetenv ::
+    (MonadIO m) =>
+    Maybe ([T.Text]) ->                     -- envp
+    T.Text ->                               -- variable
+    m T.Text
+environGetenv envp variable = liftIO $ do
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    variable' <- textToCString variable
+    result <- g_environ_getenv maybeEnvp variable'
+    result' <- cstringToText result
+    mapZeroTerminatedCArray freeMem maybeEnvp
+    freeMem maybeEnvp
+    freeMem variable'
+    return result'
+
+-- function g_environ_setenv
+-- Args : [Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_environ_setenv" g_environ_setenv :: 
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CString ->                              -- variable : TBasicType TUTF8
+    CString ->                              -- value : TBasicType TUTF8
+    CInt ->                                 -- overwrite : TBasicType TBoolean
+    IO (Ptr CString)
+
+
+environSetenv ::
+    (MonadIO m) =>
+    Maybe ([T.Text]) ->                     -- envp
+    T.Text ->                               -- variable
+    T.Text ->                               -- value
+    Bool ->                                 -- overwrite
+    m [T.Text]
+environSetenv envp variable value overwrite = liftIO $ do
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    variable' <- textToCString variable
+    value' <- textToCString value
+    let overwrite' = (fromIntegral . fromEnum) overwrite
+    result <- g_environ_setenv maybeEnvp variable' value' overwrite'
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem variable'
+    freeMem value'
+    return result'
+
+-- function g_environ_unsetenv
+-- Args : [Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_environ_unsetenv" g_environ_unsetenv :: 
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CString ->                              -- variable : TBasicType TUTF8
+    IO (Ptr CString)
+
+
+environUnsetenv ::
+    (MonadIO m) =>
+    Maybe ([T.Text]) ->                     -- envp
+    T.Text ->                               -- variable
+    m [T.Text]
+environUnsetenv envp variable = liftIO $ do
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    variable' <- textToCString variable
+    result <- g_environ_unsetenv maybeEnvp variable'
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem variable'
+    return result'
+
+-- function g_file_error_from_errno
+-- Args : [Arg {argName = "err_no", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "err_no", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "FileError"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_file_error_from_errno" g_file_error_from_errno :: 
+    Int32 ->                                -- err_no : TBasicType TInt32
+    IO CUInt
+
+
+fileErrorFromErrno ::
+    (MonadIO m) =>
+    Int32 ->                                -- err_no
+    m FileError
+fileErrorFromErrno err_no = liftIO $ do
+    result <- g_file_error_from_errno err_no
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+-- function g_file_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_file_error_quark" g_file_error_quark :: 
+    IO Word32
+
+
+fileErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+fileErrorQuark  = liftIO $ do
+    result <- g_file_error_quark
+    return result
+
+-- function g_file_get_contents
+-- Args : [Arg {argName = "filename", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "contents", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_file_get_contents" g_file_get_contents :: 
+    CString ->                              -- filename : TBasicType TFileName
+    Ptr (Ptr Word8) ->                      -- contents : TCArray False (-1) 2 (TBasicType TUInt8)
+    Ptr Word64 ->                           -- length : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+fileGetContents ::
+    (MonadIO m) =>
+    [Char] ->                               -- filename
+    m (ByteString)
+fileGetContents filename = liftIO $ do
+    filename' <- stringToCString filename
+    contents <- allocMem :: IO (Ptr (Ptr Word8))
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        _ <- propagateGError $ g_file_get_contents filename' contents length_
+        length_' <- peek length_
+        contents' <- peek contents
+        contents'' <- (unpackByteStringWithLength length_') contents'
+        freeMem contents'
+        freeMem filename'
+        freeMem contents
+        freeMem length_
+        return contents''
+     ) (do
+        freeMem filename'
+        freeMem contents
+        freeMem length_
+     )
+
+-- function g_file_open_tmp
+-- Args : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name_used", argType = TBasicType TFileName, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_file_open_tmp" g_file_open_tmp :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    Ptr CString ->                          -- name_used : TBasicType TFileName
+    Ptr (Ptr GError) ->                     -- error
+    IO Int32
+
+
+fileOpenTmp ::
+    (MonadIO m) =>
+    Maybe ([Char]) ->                       -- tmpl
+    m (Int32,[Char])
+fileOpenTmp tmpl = liftIO $ do
+    maybeTmpl <- case tmpl of
+        Nothing -> return nullPtr
+        Just jTmpl -> do
+            jTmpl' <- stringToCString jTmpl
+            return jTmpl'
+    name_used <- allocMem :: IO (Ptr CString)
+    onException (do
+        result <- propagateGError $ g_file_open_tmp maybeTmpl name_used
+        name_used' <- peek name_used
+        name_used'' <- cstringToString name_used'
+        freeMem name_used'
+        freeMem maybeTmpl
+        freeMem name_used
+        return (result, name_used'')
+     ) (do
+        freeMem maybeTmpl
+        freeMem name_used
+     )
+
+-- function g_file_read_link
+-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_file_read_link" g_file_read_link :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+fileReadLink ::
+    (MonadIO m) =>
+    T.Text ->                               -- filename
+    m T.Text
+fileReadLink filename = liftIO $ do
+    filename' <- textToCString filename
+    onException (do
+        result <- propagateGError $ g_file_read_link filename'
+        result' <- cstringToText result
+        freeMem result
+        freeMem filename'
+        return result'
+     ) (do
+        freeMem filename'
+     )
+
+-- function g_file_set_contents
+-- Args : [Arg {argName = "filename", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "contents", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "contents", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_file_set_contents" g_file_set_contents :: 
+    CString ->                              -- filename : TBasicType TFileName
+    Ptr Word8 ->                            -- contents : TCArray False (-1) 2 (TBasicType TUInt8)
+    Int64 ->                                -- length : TBasicType TInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+fileSetContents ::
+    (MonadIO m) =>
+    [Char] ->                               -- filename
+    ByteString ->                           -- contents
+    m ()
+fileSetContents filename contents = liftIO $ do
+    let length_ = fromIntegral $ B.length contents
+    filename' <- stringToCString filename
+    contents' <- packByteString contents
+    onException (do
+        _ <- propagateGError $ g_file_set_contents filename' contents' length_
+        freeMem filename'
+        freeMem contents'
+        return ()
+     ) (do
+        freeMem filename'
+        freeMem contents'
+     )
+
+-- function g_file_test
+-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test", argType = TInterface "GLib" "FileTest", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test", argType = TInterface "GLib" "FileTest", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_file_test" g_file_test :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    CUInt ->                                -- test : TInterface "GLib" "FileTest"
+    IO CInt
+
+
+fileTest ::
+    (MonadIO m) =>
+    T.Text ->                               -- filename
+    [FileTest] ->                           -- test
+    m Bool
+fileTest filename test = liftIO $ do
+    filename' <- textToCString filename
+    let test' = gflagsToWord test
+    result <- g_file_test filename' test'
+    let result' = (/= 0) result
+    freeMem filename'
+    return result'
+
+-- function g_filename_display_basename
+-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_filename_display_basename" g_filename_display_basename :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    IO CString
+
+
+filenameDisplayBasename ::
+    (MonadIO m) =>
+    T.Text ->                               -- filename
+    m T.Text
+filenameDisplayBasename filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_filename_display_basename filename'
+    result' <- cstringToText result
+    freeMem result
+    freeMem filename'
+    return result'
+
+-- function g_filename_display_name
+-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_filename_display_name" g_filename_display_name :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    IO CString
+
+
+filenameDisplayName ::
+    (MonadIO m) =>
+    T.Text ->                               -- filename
+    m T.Text
+filenameDisplayName filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_filename_display_name filename'
+    result' <- cstringToText result
+    freeMem result
+    freeMem filename'
+    return result'
+
+-- function g_filename_from_uri
+-- Args : [Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TFileName
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_filename_from_uri" g_filename_from_uri :: 
+    CString ->                              -- uri : TBasicType TUTF8
+    Ptr CString ->                          -- hostname : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+filenameFromUri ::
+    (MonadIO m) =>
+    T.Text ->                               -- uri
+    m ([Char],T.Text)
+filenameFromUri uri = liftIO $ do
+    uri' <- textToCString uri
+    hostname <- allocMem :: IO (Ptr CString)
+    onException (do
+        result <- propagateGError $ g_filename_from_uri uri' hostname
+        result' <- cstringToString result
+        freeMem result
+        hostname' <- peek hostname
+        hostname'' <- cstringToText hostname'
+        freeMem hostname'
+        freeMem uri'
+        freeMem hostname
+        return (result', hostname'')
+     ) (do
+        freeMem uri'
+        freeMem hostname
+     )
+
+-- function g_filename_from_utf8
+-- Args : [Arg {argName = "utf8string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : [Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- hInArgs : [Arg {argName = "utf8string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray False (-1) 3 (TBasicType TUInt8)
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_filename_from_utf8" g_filename_from_utf8 :: 
+    CString ->                              -- utf8string : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    Ptr Word64 ->                           -- bytes_read : TBasicType TUInt64
+    Ptr Word64 ->                           -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr Word8)
+
+
+filenameFromUtf8 ::
+    (MonadIO m) =>
+    T.Text ->                               -- utf8string
+    Int64 ->                                -- len
+    m (ByteString,Word64)
+filenameFromUtf8 utf8string len = liftIO $ do
+    utf8string' <- textToCString utf8string
+    bytes_read <- allocMem :: IO (Ptr Word64)
+    bytes_written <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_filename_from_utf8 utf8string' len bytes_read bytes_written
+        bytes_written' <- peek bytes_written
+        result' <- (unpackByteStringWithLength bytes_written') result
+        freeMem result
+        bytes_read' <- peek bytes_read
+        freeMem utf8string'
+        freeMem bytes_read
+        freeMem bytes_written
+        return (result', bytes_read')
+     ) (do
+        freeMem utf8string'
+        freeMem bytes_read
+        freeMem bytes_written
+     )
+
+-- function g_filename_to_uri
+-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_filename_to_uri" g_filename_to_uri :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    CString ->                              -- hostname : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+filenameToUri ::
+    (MonadIO m) =>
+    T.Text ->                               -- filename
+    Maybe (T.Text) ->                       -- hostname
+    m T.Text
+filenameToUri filename hostname = liftIO $ do
+    filename' <- textToCString filename
+    maybeHostname <- case hostname of
+        Nothing -> return nullPtr
+        Just jHostname -> do
+            jHostname' <- textToCString jHostname
+            return jHostname'
+    onException (do
+        result <- propagateGError $ g_filename_to_uri filename' maybeHostname
+        result' <- cstringToText result
+        freeMem result
+        freeMem filename'
+        freeMem maybeHostname
+        return result'
+     ) (do
+        freeMem filename'
+        freeMem maybeHostname
+     )
+
+-- function g_filename_to_utf8
+-- Args : [Arg {argName = "opsysstring", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "opsysstring", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_filename_to_utf8" g_filename_to_utf8 :: 
+    CString ->                              -- opsysstring : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+filenameToUtf8 ::
+    (MonadIO m) =>
+    T.Text ->                               -- opsysstring
+    Int64 ->                                -- len
+    Word64 ->                               -- bytes_read
+    Word64 ->                               -- bytes_written
+    m T.Text
+filenameToUtf8 opsysstring len bytes_read bytes_written = liftIO $ do
+    opsysstring' <- textToCString opsysstring
+    onException (do
+        result <- propagateGError $ g_filename_to_utf8 opsysstring' len bytes_read bytes_written
+        result' <- cstringToText result
+        freeMem result
+        freeMem opsysstring'
+        return result'
+     ) (do
+        freeMem opsysstring'
+     )
+
+-- function g_find_program_in_path
+-- Args : [Arg {argName = "program", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "program", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_find_program_in_path" g_find_program_in_path :: 
+    CString ->                              -- program : TBasicType TUTF8
+    IO CString
+
+
+findProgramInPath ::
+    (MonadIO m) =>
+    T.Text ->                               -- program
+    m T.Text
+findProgramInPath program = liftIO $ do
+    program' <- textToCString program
+    result <- g_find_program_in_path program'
+    result' <- cstringToText result
+    freeMem result
+    freeMem program'
+    return result'
+
+-- function g_format_size
+-- Args : [Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_format_size" g_format_size :: 
+    Word64 ->                               -- size : TBasicType TUInt64
+    IO CString
+
+
+formatSize ::
+    (MonadIO m) =>
+    Word64 ->                               -- size
+    m T.Text
+formatSize size = liftIO $ do
+    result <- g_format_size size
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+-- function g_format_size_for_display
+-- Args : [Arg {argName = "size", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "size", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_format_size_for_display" g_format_size_for_display :: 
+    Int64 ->                                -- size : TBasicType TInt64
+    IO CString
+
+{-# DEPRECATED formatSizeForDisplay ["(Since version 2.30)","This function is broken due to its use of SI","    suffixes to denote IEC units. Use g_format_size() instead."]#-}
+formatSizeForDisplay ::
+    (MonadIO m) =>
+    Int64 ->                                -- size
+    m T.Text
+formatSizeForDisplay size = liftIO $ do
+    result <- g_format_size_for_display size
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+-- function g_format_size_full
+-- Args : [Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "FormatSizeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "FormatSizeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_format_size_full" g_format_size_full :: 
+    Word64 ->                               -- size : TBasicType TUInt64
+    CUInt ->                                -- flags : TInterface "GLib" "FormatSizeFlags"
+    IO CString
+
+
+formatSizeFull ::
+    (MonadIO m) =>
+    Word64 ->                               -- size
+    [FormatSizeFlags] ->                    -- flags
+    m T.Text
+formatSizeFull size flags = liftIO $ do
+    let flags' = gflagsToWord flags
+    result <- g_format_size_full size flags'
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+-- function g_free
+-- Args : [Arg {argName = "mem", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "mem", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_free" g_free :: 
+    Ptr () ->                               -- mem : TBasicType TVoid
+    IO ()
+
+
+free ::
+    (MonadIO m) =>
+    Maybe (Ptr ()) ->                       -- mem
+    m ()
+free mem = liftIO $ do
+    maybeMem <- case mem of
+        Nothing -> return nullPtr
+        Just jMem -> do
+            return jMem
+    g_free maybeMem
+    return ()
+
+-- function g_get_application_name
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_application_name" g_get_application_name :: 
+    IO CString
+
+
+getApplicationName ::
+    (MonadIO m) =>
+    m T.Text
+getApplicationName  = liftIO $ do
+    result <- g_get_application_name
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_charset
+-- Args : [Arg {argName = "charset", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_charset" g_get_charset :: 
+    Ptr CString ->                          -- charset : TBasicType TUTF8
+    IO CInt
+
+
+getCharset ::
+    (MonadIO m) =>
+    m (Bool,T.Text)
+getCharset  = liftIO $ do
+    charset <- allocMem :: IO (Ptr CString)
+    result <- g_get_charset charset
+    let result' = (/= 0) result
+    charset' <- peek charset
+    charset'' <- cstringToText charset'
+    freeMem charset
+    return (result', charset'')
+
+-- function g_get_codeset
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_codeset" g_get_codeset :: 
+    IO CString
+
+
+getCodeset ::
+    (MonadIO m) =>
+    m T.Text
+getCodeset  = liftIO $ do
+    result <- g_get_codeset
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+-- function g_get_current_dir
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_current_dir" g_get_current_dir :: 
+    IO CString
+
+
+getCurrentDir ::
+    (MonadIO m) =>
+    m T.Text
+getCurrentDir  = liftIO $ do
+    result <- g_get_current_dir
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+-- function g_get_current_time
+-- Args : [Arg {argName = "result", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "result", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_current_time" g_get_current_time :: 
+    Ptr TimeVal ->                          -- result : TInterface "GLib" "TimeVal"
+    IO ()
+
+
+getCurrentTime ::
+    (MonadIO m) =>
+    TimeVal ->                              -- result
+    m ()
+getCurrentTime result_ = liftIO $ do
+    let result_' = unsafeManagedPtrGetPtr result_
+    g_get_current_time result_'
+    touchManagedPtr result_
+    return ()
+
+-- function g_get_environ
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_environ" g_get_environ :: 
+    IO (Ptr CString)
+
+
+getEnviron ::
+    (MonadIO m) =>
+    m [T.Text]
+getEnviron  = liftIO $ do
+    result <- g_get_environ
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    return result'
+
+-- function g_get_filename_charsets
+-- Args : [Arg {argName = "charsets", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "charsets", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_filename_charsets" g_get_filename_charsets :: 
+    CString ->                              -- charsets : TBasicType TUTF8
+    IO CInt
+
+
+getFilenameCharsets ::
+    (MonadIO m) =>
+    T.Text ->                               -- charsets
+    m Bool
+getFilenameCharsets charsets = liftIO $ do
+    charsets' <- textToCString charsets
+    result <- g_get_filename_charsets charsets'
+    let result' = (/= 0) result
+    freeMem charsets'
+    return result'
+
+-- function g_get_home_dir
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_home_dir" g_get_home_dir :: 
+    IO CString
+
+
+getHomeDir ::
+    (MonadIO m) =>
+    m T.Text
+getHomeDir  = liftIO $ do
+    result <- g_get_home_dir
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_host_name
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_host_name" g_get_host_name :: 
+    IO CString
+
+
+getHostName ::
+    (MonadIO m) =>
+    m T.Text
+getHostName  = liftIO $ do
+    result <- g_get_host_name
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_language_names
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_language_names" g_get_language_names :: 
+    IO (Ptr CString)
+
+
+getLanguageNames ::
+    (MonadIO m) =>
+    m [T.Text]
+getLanguageNames  = liftIO $ do
+    result <- g_get_language_names
+    result' <- unpackZeroTerminatedUTF8CArray result
+    return result'
+
+-- function g_get_locale_variants
+-- Args : [Arg {argName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_locale_variants" g_get_locale_variants :: 
+    CString ->                              -- locale : TBasicType TUTF8
+    IO (Ptr CString)
+
+
+getLocaleVariants ::
+    (MonadIO m) =>
+    T.Text ->                               -- locale
+    m [T.Text]
+getLocaleVariants locale = liftIO $ do
+    locale' <- textToCString locale
+    result <- g_get_locale_variants locale'
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem locale'
+    return result'
+
+-- function g_get_monotonic_time
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_monotonic_time" g_get_monotonic_time :: 
+    IO Int64
+
+
+getMonotonicTime ::
+    (MonadIO m) =>
+    m Int64
+getMonotonicTime  = liftIO $ do
+    result <- g_get_monotonic_time
+    return result
+
+-- function g_get_num_processors
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_num_processors" g_get_num_processors :: 
+    IO Word32
+
+
+getNumProcessors ::
+    (MonadIO m) =>
+    m Word32
+getNumProcessors  = liftIO $ do
+    result <- g_get_num_processors
+    return result
+
+-- function g_get_prgname
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_prgname" g_get_prgname :: 
+    IO CString
+
+
+getPrgname ::
+    (MonadIO m) =>
+    m T.Text
+getPrgname  = liftIO $ do
+    result <- g_get_prgname
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_real_name
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_real_name" g_get_real_name :: 
+    IO CString
+
+
+getRealName ::
+    (MonadIO m) =>
+    m T.Text
+getRealName  = liftIO $ do
+    result <- g_get_real_name
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_real_time
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_real_time" g_get_real_time :: 
+    IO Int64
+
+
+getRealTime ::
+    (MonadIO m) =>
+    m Int64
+getRealTime  = liftIO $ do
+    result <- g_get_real_time
+    return result
+
+-- function g_get_system_config_dirs
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_system_config_dirs" g_get_system_config_dirs :: 
+    IO (Ptr CString)
+
+
+getSystemConfigDirs ::
+    (MonadIO m) =>
+    m [T.Text]
+getSystemConfigDirs  = liftIO $ do
+    result <- g_get_system_config_dirs
+    result' <- unpackZeroTerminatedUTF8CArray result
+    return result'
+
+-- function g_get_system_data_dirs
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_system_data_dirs" g_get_system_data_dirs :: 
+    IO (Ptr CString)
+
+
+getSystemDataDirs ::
+    (MonadIO m) =>
+    m [T.Text]
+getSystemDataDirs  = liftIO $ do
+    result <- g_get_system_data_dirs
+    result' <- unpackZeroTerminatedUTF8CArray result
+    return result'
+
+-- function g_get_tmp_dir
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_tmp_dir" g_get_tmp_dir :: 
+    IO CString
+
+
+getTmpDir ::
+    (MonadIO m) =>
+    m T.Text
+getTmpDir  = liftIO $ do
+    result <- g_get_tmp_dir
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_user_cache_dir
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_cache_dir" g_get_user_cache_dir :: 
+    IO CString
+
+
+getUserCacheDir ::
+    (MonadIO m) =>
+    m T.Text
+getUserCacheDir  = liftIO $ do
+    result <- g_get_user_cache_dir
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_user_config_dir
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_config_dir" g_get_user_config_dir :: 
+    IO CString
+
+
+getUserConfigDir ::
+    (MonadIO m) =>
+    m T.Text
+getUserConfigDir  = liftIO $ do
+    result <- g_get_user_config_dir
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_user_data_dir
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_data_dir" g_get_user_data_dir :: 
+    IO CString
+
+
+getUserDataDir ::
+    (MonadIO m) =>
+    m T.Text
+getUserDataDir  = liftIO $ do
+    result <- g_get_user_data_dir
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_user_name
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_name" g_get_user_name :: 
+    IO CString
+
+
+getUserName ::
+    (MonadIO m) =>
+    m T.Text
+getUserName  = liftIO $ do
+    result <- g_get_user_name
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_user_runtime_dir
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_runtime_dir" g_get_user_runtime_dir :: 
+    IO CString
+
+
+getUserRuntimeDir ::
+    (MonadIO m) =>
+    m T.Text
+getUserRuntimeDir  = liftIO $ do
+    result <- g_get_user_runtime_dir
+    result' <- cstringToText result
+    return result'
+
+-- function g_get_user_special_dir
+-- Args : [Arg {argName = "directory", argType = TInterface "GLib" "UserDirectory", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "directory", argType = TInterface "GLib" "UserDirectory", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_get_user_special_dir" g_get_user_special_dir :: 
+    CUInt ->                                -- directory : TInterface "GLib" "UserDirectory"
+    IO CString
+
+
+getUserSpecialDir ::
+    (MonadIO m) =>
+    UserDirectory ->                        -- directory
+    m T.Text
+getUserSpecialDir directory = liftIO $ do
+    let directory' = (fromIntegral . fromEnum) directory
+    result <- g_get_user_special_dir directory'
+    result' <- cstringToText result
+    return result'
+
+-- function g_getenv
+-- Args : [Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_getenv" g_getenv :: 
+    CString ->                              -- variable : TBasicType TUTF8
+    IO CString
+
+
+getenv ::
+    (MonadIO m) =>
+    T.Text ->                               -- variable
+    m T.Text
+getenv variable = liftIO $ do
+    variable' <- textToCString variable
+    result <- g_getenv variable'
+    result' <- cstringToText result
+    freeMem variable'
+    return result'
+
+-- function g_hash_table_add
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_add" g_hash_table_add :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    Ptr () ->                               -- key : TBasicType TVoid
+    IO CInt
+
+
+hashTableAdd ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    Ptr () ->                               -- key
+    m Bool
+hashTableAdd hash_table key = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    result <- g_hash_table_add hash_table'''' key
+    let result' = (/= 0) result
+    unrefGHashTable hash_table''''
+    return result'
+
+-- function g_hash_table_contains
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_contains" g_hash_table_contains :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    Ptr () ->                               -- key : TBasicType TVoid
+    IO CInt
+
+
+hashTableContains ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    Ptr () ->                               -- key
+    m Bool
+hashTableContains hash_table key = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    result <- g_hash_table_contains hash_table'''' key
+    let result' = (/= 0) result
+    unrefGHashTable hash_table''''
+    return result'
+
+-- function g_hash_table_destroy
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_destroy" g_hash_table_destroy :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    IO ()
+
+
+hashTableDestroy ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    m ()
+hashTableDestroy hash_table = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    g_hash_table_destroy hash_table''''
+    unrefGHashTable hash_table''''
+    return ()
+
+-- function g_hash_table_insert
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_insert" g_hash_table_insert :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    Ptr () ->                               -- key : TBasicType TVoid
+    Ptr () ->                               -- value : TBasicType TVoid
+    IO CInt
+
+
+hashTableInsert ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    Ptr () ->                               -- key
+    Ptr () ->                               -- value
+    m Bool
+hashTableInsert hash_table key value = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    result <- g_hash_table_insert hash_table'''' key value
+    let result' = (/= 0) result
+    unrefGHashTable hash_table''''
+    return result'
+
+-- function g_hash_table_lookup_extended
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lookup_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "orig_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lookup_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "orig_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_lookup_extended" g_hash_table_lookup_extended :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    Ptr () ->                               -- lookup_key : TBasicType TVoid
+    Ptr () ->                               -- orig_key : TBasicType TVoid
+    Ptr () ->                               -- value : TBasicType TVoid
+    IO CInt
+
+
+hashTableLookupExtended ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    Ptr () ->                               -- lookup_key
+    Maybe (Ptr ()) ->                       -- orig_key
+    Maybe (Ptr ()) ->                       -- value
+    m Bool
+hashTableLookupExtended hash_table lookup_key orig_key value = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    maybeOrig_key <- case orig_key of
+        Nothing -> return nullPtr
+        Just jOrig_key -> do
+            return jOrig_key
+    maybeValue <- case value of
+        Nothing -> return nullPtr
+        Just jValue -> do
+            return jValue
+    result <- g_hash_table_lookup_extended hash_table'''' lookup_key maybeOrig_key maybeValue
+    let result' = (/= 0) result
+    unrefGHashTable hash_table''''
+    return result'
+
+-- function g_hash_table_remove
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_remove" g_hash_table_remove :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    Ptr () ->                               -- key : TBasicType TVoid
+    IO CInt
+
+
+hashTableRemove ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    Ptr () ->                               -- key
+    m Bool
+hashTableRemove hash_table key = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    result <- g_hash_table_remove hash_table'''' key
+    let result' = (/= 0) result
+    unrefGHashTable hash_table''''
+    return result'
+
+-- function g_hash_table_remove_all
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_remove_all" g_hash_table_remove_all :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    IO ()
+
+
+hashTableRemoveAll ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    m ()
+hashTableRemoveAll hash_table = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    g_hash_table_remove_all hash_table''''
+    unrefGHashTable hash_table''''
+    return ()
+
+-- function g_hash_table_replace
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_replace" g_hash_table_replace :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    Ptr () ->                               -- key : TBasicType TVoid
+    Ptr () ->                               -- value : TBasicType TVoid
+    IO CInt
+
+
+hashTableReplace ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    Ptr () ->                               -- key
+    Ptr () ->                               -- value
+    m Bool
+hashTableReplace hash_table key value = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    result <- g_hash_table_replace hash_table'''' key value
+    let result' = (/= 0) result
+    unrefGHashTable hash_table''''
+    return result'
+
+-- function g_hash_table_size
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_size" g_hash_table_size :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    IO Word32
+
+
+hashTableSize ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    m Word32
+hashTableSize hash_table = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    result <- g_hash_table_size hash_table''''
+    unrefGHashTable hash_table''''
+    return result
+
+-- function g_hash_table_steal
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_steal" g_hash_table_steal :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    Ptr () ->                               -- key : TBasicType TVoid
+    IO CInt
+
+
+hashTableSteal ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    Ptr () ->                               -- key
+    m Bool
+hashTableSteal hash_table key = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    result <- g_hash_table_steal hash_table'''' key
+    let result' = (/= 0) result
+    unrefGHashTable hash_table''''
+    return result'
+
+-- function g_hash_table_steal_all
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_steal_all" g_hash_table_steal_all :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    IO ()
+
+
+hashTableStealAll ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    m ()
+hashTableStealAll hash_table = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    g_hash_table_steal_all hash_table''''
+    unrefGHashTable hash_table''''
+    return ()
+
+-- function g_hash_table_unref
+-- Args : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hash_table_unref" g_hash_table_unref :: 
+    Ptr (GHashTable (Ptr ()) (Ptr ())) ->   -- hash_table : TGHash (TBasicType TVoid) (TBasicType TVoid)
+    IO ()
+
+
+hashTableUnref ::
+    (MonadIO m) =>
+    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
+    m ()
+hashTableUnref hash_table = liftIO $ do
+    let hash_table' = Map.toList hash_table
+    let hash_table'' = mapFirst ptrPackPtr hash_table'
+    let hash_table''' = mapSecond ptrPackPtr hash_table''
+    hash_table'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hash_table'''
+    g_hash_table_unref hash_table''''
+    unrefGHashTable hash_table''''
+    return ()
+
+-- function g_hook_destroy
+-- Args : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook_id", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook_id", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_destroy" g_hook_destroy :: 
+    Ptr HookList ->                         -- hook_list : TInterface "GLib" "HookList"
+    Word64 ->                               -- hook_id : TBasicType TUInt64
+    IO CInt
+
+
+hookDestroy ::
+    (MonadIO m) =>
+    HookList ->                             -- hook_list
+    Word64 ->                               -- hook_id
+    m Bool
+hookDestroy hook_list hook_id = liftIO $ do
+    let hook_list' = unsafeManagedPtrGetPtr hook_list
+    result <- g_hook_destroy hook_list' hook_id
+    let result' = (/= 0) result
+    touchManagedPtr hook_list
+    return result'
+
+-- function g_hook_destroy_link
+-- Args : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_destroy_link" g_hook_destroy_link :: 
+    Ptr HookList ->                         -- hook_list : TInterface "GLib" "HookList"
+    Ptr Hook ->                             -- hook : TInterface "GLib" "Hook"
+    IO ()
+
+
+hookDestroyLink ::
+    (MonadIO m) =>
+    HookList ->                             -- hook_list
+    Hook ->                                 -- hook
+    m ()
+hookDestroyLink hook_list hook = liftIO $ do
+    let hook_list' = unsafeManagedPtrGetPtr hook_list
+    let hook' = unsafeManagedPtrGetPtr hook
+    g_hook_destroy_link hook_list' hook'
+    touchManagedPtr hook_list
+    touchManagedPtr hook
+    return ()
+
+-- function g_hook_free
+-- Args : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_free" g_hook_free :: 
+    Ptr HookList ->                         -- hook_list : TInterface "GLib" "HookList"
+    Ptr Hook ->                             -- hook : TInterface "GLib" "Hook"
+    IO ()
+
+
+hookFree ::
+    (MonadIO m) =>
+    HookList ->                             -- hook_list
+    Hook ->                                 -- hook
+    m ()
+hookFree hook_list hook = liftIO $ do
+    let hook_list' = unsafeManagedPtrGetPtr hook_list
+    let hook' = unsafeManagedPtrGetPtr hook
+    g_hook_free hook_list' hook'
+    touchManagedPtr hook_list
+    touchManagedPtr hook
+    return ()
+
+-- function g_hook_insert_before
+-- Args : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_insert_before" g_hook_insert_before :: 
+    Ptr HookList ->                         -- hook_list : TInterface "GLib" "HookList"
+    Ptr Hook ->                             -- sibling : TInterface "GLib" "Hook"
+    Ptr Hook ->                             -- hook : TInterface "GLib" "Hook"
+    IO ()
+
+
+hookInsertBefore ::
+    (MonadIO m) =>
+    HookList ->                             -- hook_list
+    Hook ->                                 -- sibling
+    Hook ->                                 -- hook
+    m ()
+hookInsertBefore hook_list sibling hook = liftIO $ do
+    let hook_list' = unsafeManagedPtrGetPtr hook_list
+    let sibling' = unsafeManagedPtrGetPtr sibling
+    let hook' = unsafeManagedPtrGetPtr hook
+    g_hook_insert_before hook_list' sibling' hook'
+    touchManagedPtr hook_list
+    touchManagedPtr sibling
+    touchManagedPtr hook
+    return ()
+
+-- function g_hook_prepend
+-- Args : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_prepend" g_hook_prepend :: 
+    Ptr HookList ->                         -- hook_list : TInterface "GLib" "HookList"
+    Ptr Hook ->                             -- hook : TInterface "GLib" "Hook"
+    IO ()
+
+
+hookPrepend ::
+    (MonadIO m) =>
+    HookList ->                             -- hook_list
+    Hook ->                                 -- hook
+    m ()
+hookPrepend hook_list hook = liftIO $ do
+    let hook_list' = unsafeManagedPtrGetPtr hook_list
+    let hook' = unsafeManagedPtrGetPtr hook
+    g_hook_prepend hook_list' hook'
+    touchManagedPtr hook_list
+    touchManagedPtr hook
+    return ()
+
+-- function g_hook_unref
+-- Args : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hook_unref" g_hook_unref :: 
+    Ptr HookList ->                         -- hook_list : TInterface "GLib" "HookList"
+    Ptr Hook ->                             -- hook : TInterface "GLib" "Hook"
+    IO ()
+
+
+hookUnref ::
+    (MonadIO m) =>
+    HookList ->                             -- hook_list
+    Hook ->                                 -- hook
+    m ()
+hookUnref hook_list hook = liftIO $ do
+    let hook_list' = unsafeManagedPtrGetPtr hook_list
+    let hook' = unsafeManagedPtrGetPtr hook
+    g_hook_unref hook_list' hook'
+    touchManagedPtr hook_list
+    touchManagedPtr hook
+    return ()
+
+-- function g_hostname_is_ascii_encoded
+-- Args : [Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hostname_is_ascii_encoded" g_hostname_is_ascii_encoded :: 
+    CString ->                              -- hostname : TBasicType TUTF8
+    IO CInt
+
+
+hostnameIsAsciiEncoded ::
+    (MonadIO m) =>
+    T.Text ->                               -- hostname
+    m Bool
+hostnameIsAsciiEncoded hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_is_ascii_encoded hostname'
+    let result' = (/= 0) result
+    freeMem hostname'
+    return result'
+
+-- function g_hostname_is_ip_address
+-- Args : [Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hostname_is_ip_address" g_hostname_is_ip_address :: 
+    CString ->                              -- hostname : TBasicType TUTF8
+    IO CInt
+
+
+hostnameIsIpAddress ::
+    (MonadIO m) =>
+    T.Text ->                               -- hostname
+    m Bool
+hostnameIsIpAddress hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_is_ip_address hostname'
+    let result' = (/= 0) result
+    freeMem hostname'
+    return result'
+
+-- function g_hostname_is_non_ascii
+-- Args : [Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hostname_is_non_ascii" g_hostname_is_non_ascii :: 
+    CString ->                              -- hostname : TBasicType TUTF8
+    IO CInt
+
+
+hostnameIsNonAscii ::
+    (MonadIO m) =>
+    T.Text ->                               -- hostname
+    m Bool
+hostnameIsNonAscii hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_is_non_ascii hostname'
+    let result' = (/= 0) result
+    freeMem hostname'
+    return result'
+
+-- function g_hostname_to_ascii
+-- Args : [Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hostname_to_ascii" g_hostname_to_ascii :: 
+    CString ->                              -- hostname : TBasicType TUTF8
+    IO CString
+
+
+hostnameToAscii ::
+    (MonadIO m) =>
+    T.Text ->                               -- hostname
+    m T.Text
+hostnameToAscii hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_to_ascii hostname'
+    result' <- cstringToText result
+    freeMem result
+    freeMem hostname'
+    return result'
+
+-- function g_hostname_to_unicode
+-- Args : [Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_hostname_to_unicode" g_hostname_to_unicode :: 
+    CString ->                              -- hostname : TBasicType TUTF8
+    IO CString
+
+
+hostnameToUnicode ::
+    (MonadIO m) =>
+    T.Text ->                               -- hostname
+    m T.Text
+hostnameToUnicode hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_to_unicode hostname'
+    result' <- cstringToText result
+    freeMem result
+    freeMem hostname'
+    return result'
+
+-- function g_iconv
+-- Args : [Arg {argName = "converter", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "inbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "inbytes_left", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "outbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "outbytes_left", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "converter", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "inbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "inbytes_left", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "outbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "outbytes_left", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_iconv" g_iconv :: 
+    Ptr IConv ->                            -- converter : TInterface "GLib" "IConv"
+    CString ->                              -- inbuf : TBasicType TUTF8
+    Word64 ->                               -- inbytes_left : TBasicType TUInt64
+    CString ->                              -- outbuf : TBasicType TUTF8
+    Word64 ->                               -- outbytes_left : TBasicType TUInt64
+    IO Word64
+
+
+iconv ::
+    (MonadIO m) =>
+    IConv ->                                -- converter
+    T.Text ->                               -- inbuf
+    Word64 ->                               -- inbytes_left
+    T.Text ->                               -- outbuf
+    Word64 ->                               -- outbytes_left
+    m Word64
+iconv converter inbuf inbytes_left outbuf outbytes_left = liftIO $ do
+    let converter' = unsafeManagedPtrGetPtr converter
+    inbuf' <- textToCString inbuf
+    outbuf' <- textToCString outbuf
+    result <- g_iconv converter' inbuf' inbytes_left outbuf' outbytes_left
+    touchManagedPtr converter
+    freeMem inbuf'
+    freeMem outbuf'
+    return result
+
+-- function g_idle_add_full
+-- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_idle_add_full" g_idle_add_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+idleAdd ::
+    (MonadIO m) =>
+    Int32 ->                                -- priority
+    SourceFunc ->                           -- function
+    m Word32
+idleAdd priority function = liftIO $ do
+    function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_idle_add_full priority function' data_ notify
+    return result
+
+-- function g_idle_remove_by_data
+-- Args : [Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_idle_remove_by_data" g_idle_remove_by_data :: 
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO CInt
+
+
+idleRemoveByData ::
+    (MonadIO m) =>
+    Ptr () ->                               -- data
+    m Bool
+idleRemoveByData data_ = liftIO $ do
+    result <- g_idle_remove_by_data data_
+    let result' = (/= 0) result
+    return result'
+
+-- function g_idle_source_new
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_idle_source_new" g_idle_source_new :: 
+    IO (Ptr Source)
+
+
+idleSourceNew ::
+    (MonadIO m) =>
+    m Source
+idleSourceNew  = liftIO $ do
+    result <- g_idle_source_new
+    result' <- (wrapBoxed Source) result
+    return result'
+
+-- function g_int64_equal
+-- Args : [Arg {argName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_int64_equal" g_int64_equal :: 
+    Ptr () ->                               -- v1 : TBasicType TVoid
+    Ptr () ->                               -- v2 : TBasicType TVoid
+    IO CInt
+
+
+int64Equal ::
+    (MonadIO m) =>
+    Ptr () ->                               -- v1
+    Ptr () ->                               -- v2
+    m Bool
+int64Equal v1 v2 = liftIO $ do
+    result <- g_int64_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+-- function g_int64_hash
+-- Args : [Arg {argName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_int64_hash" g_int64_hash :: 
+    Ptr () ->                               -- v : TBasicType TVoid
+    IO Word32
+
+
+int64Hash ::
+    (MonadIO m) =>
+    Ptr () ->                               -- v
+    m Word32
+int64Hash v = liftIO $ do
+    result <- g_int64_hash v
+    return result
+
+-- function g_int_equal
+-- Args : [Arg {argName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_int_equal" g_int_equal :: 
+    Ptr () ->                               -- v1 : TBasicType TVoid
+    Ptr () ->                               -- v2 : TBasicType TVoid
+    IO CInt
+
+
+intEqual ::
+    (MonadIO m) =>
+    Ptr () ->                               -- v1
+    Ptr () ->                               -- v2
+    m Bool
+intEqual v1 v2 = liftIO $ do
+    result <- g_int_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+-- function g_int_hash
+-- Args : [Arg {argName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_int_hash" g_int_hash :: 
+    Ptr () ->                               -- v : TBasicType TVoid
+    IO Word32
+
+
+intHash ::
+    (MonadIO m) =>
+    Ptr () ->                               -- v
+    m Word32
+intHash v = liftIO $ do
+    result <- g_int_hash v
+    return result
+
+-- function g_intern_static_string
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_intern_static_string" g_intern_static_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+internStaticString ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- string
+    m T.Text
+internStaticString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_intern_static_string maybeString
+    result' <- cstringToText result
+    freeMem maybeString
+    return result'
+
+-- function g_intern_string
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_intern_string" g_intern_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+internString ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- string
+    m T.Text
+internString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_intern_string maybeString
+    result' <- cstringToText result
+    freeMem maybeString
+    return result'
+
+-- function g_io_add_watch_full
+-- Args : [Arg {argName = "channel", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "GLib" "IOFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "channel", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TInterface "GLib" "IOFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_add_watch_full" g_io_add_watch_full :: 
+    Ptr IOChannel ->                        -- channel : TInterface "GLib" "IOChannel"
+    Int32 ->                                -- priority : TBasicType TInt32
+    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
+    FunPtr IOFuncC ->                       -- func : TInterface "GLib" "IOFunc"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+ioAddWatch ::
+    (MonadIO m) =>
+    IOChannel ->                            -- channel
+    Int32 ->                                -- priority
+    [IOCondition] ->                        -- condition
+    IOFunc ->                               -- func
+    m Word32
+ioAddWatch channel priority condition func = liftIO $ do
+    let channel' = unsafeManagedPtrGetPtr channel
+    let condition' = gflagsToWord condition
+    func' <- mkIOFunc (iOFuncWrapper Nothing func)
+    let user_data = castFunPtrToPtr func'
+    let notify = safeFreeFunPtrPtr
+    result <- g_io_add_watch_full channel' priority condition' func' user_data notify
+    touchManagedPtr channel
+    return result
+
+-- function g_io_channel_error_from_errno
+-- Args : [Arg {argName = "en", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "en", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOChannelError"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_error_from_errno" g_io_channel_error_from_errno :: 
+    Int32 ->                                -- en : TBasicType TInt32
+    IO CUInt
+
+
+ioChannelErrorFromErrno ::
+    (MonadIO m) =>
+    Int32 ->                                -- en
+    m IOChannelError
+ioChannelErrorFromErrno en = liftIO $ do
+    result <- g_io_channel_error_from_errno en
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+-- function g_io_channel_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_channel_error_quark" g_io_channel_error_quark :: 
+    IO Word32
+
+
+ioChannelErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+ioChannelErrorQuark  = liftIO $ do
+    result <- g_io_channel_error_quark
+    return result
+
+-- function g_io_create_watch
+-- Args : [Arg {argName = "channel", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "channel", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_io_create_watch" g_io_create_watch :: 
+    Ptr IOChannel ->                        -- channel : TInterface "GLib" "IOChannel"
+    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
+    IO (Ptr Source)
+
+
+ioCreateWatch ::
+    (MonadIO m) =>
+    IOChannel ->                            -- channel
+    [IOCondition] ->                        -- condition
+    m Source
+ioCreateWatch channel condition = liftIO $ do
+    let channel' = unsafeManagedPtrGetPtr channel
+    let condition' = gflagsToWord condition
+    result <- g_io_create_watch channel' condition'
+    result' <- (wrapBoxed Source) result
+    touchManagedPtr channel
+    return result'
+
+-- function g_key_file_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_key_file_error_quark" g_key_file_error_quark :: 
+    IO Word32
+
+
+keyFileErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+keyFileErrorQuark  = liftIO $ do
+    result <- g_key_file_error_quark
+    return result
+
+-- function g_listenv
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_listenv" g_listenv :: 
+    IO (Ptr CString)
+
+
+listenv ::
+    (MonadIO m) =>
+    m [T.Text]
+listenv  = liftIO $ do
+    result <- g_listenv
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    return result'
+
+-- function g_locale_from_utf8
+-- Args : [Arg {argName = "utf8string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "utf8string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_locale_from_utf8" g_locale_from_utf8 :: 
+    CString ->                              -- utf8string : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+localeFromUtf8 ::
+    (MonadIO m) =>
+    T.Text ->                               -- utf8string
+    Int64 ->                                -- len
+    Word64 ->                               -- bytes_read
+    Word64 ->                               -- bytes_written
+    m T.Text
+localeFromUtf8 utf8string len bytes_read bytes_written = liftIO $ do
+    utf8string' <- textToCString utf8string
+    onException (do
+        result <- propagateGError $ g_locale_from_utf8 utf8string' len bytes_read bytes_written
+        result' <- cstringToText result
+        freeMem result
+        freeMem utf8string'
+        return result'
+     ) (do
+        freeMem utf8string'
+     )
+
+-- function g_locale_to_utf8
+-- Args : [Arg {argName = "opsysstring", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "opsysstring", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_locale_to_utf8" g_locale_to_utf8 :: 
+    CString ->                              -- opsysstring : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    Word64 ->                               -- bytes_read : TBasicType TUInt64
+    Word64 ->                               -- bytes_written : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+localeToUtf8 ::
+    (MonadIO m) =>
+    T.Text ->                               -- opsysstring
+    Int64 ->                                -- len
+    Word64 ->                               -- bytes_read
+    Word64 ->                               -- bytes_written
+    m T.Text
+localeToUtf8 opsysstring len bytes_read bytes_written = liftIO $ do
+    opsysstring' <- textToCString opsysstring
+    onException (do
+        result <- propagateGError $ g_locale_to_utf8 opsysstring' len bytes_read bytes_written
+        result' <- cstringToText result
+        freeMem result
+        freeMem opsysstring'
+        return result'
+     ) (do
+        freeMem opsysstring'
+     )
+
+-- function g_log_default_handler
+-- Args : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_level", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "unused_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_level", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "unused_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_log_default_handler" g_log_default_handler :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CUInt ->                                -- log_level : TInterface "GLib" "LogLevelFlags"
+    CString ->                              -- message : TBasicType TUTF8
+    Ptr () ->                               -- unused_data : TBasicType TVoid
+    IO ()
+
+
+logDefaultHandler ::
+    (MonadIO m) =>
+    T.Text ->                               -- log_domain
+    [LogLevelFlags] ->                      -- log_level
+    T.Text ->                               -- message
+    Ptr () ->                               -- unused_data
+    m ()
+logDefaultHandler log_domain log_level message unused_data = liftIO $ do
+    log_domain' <- textToCString log_domain
+    let log_level' = gflagsToWord log_level
+    message' <- textToCString message
+    g_log_default_handler log_domain' log_level' message' unused_data
+    freeMem log_domain'
+    freeMem message'
+    return ()
+
+-- function g_log_remove_handler
+-- Args : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_log_remove_handler" g_log_remove_handler :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    Word32 ->                               -- handler_id : TBasicType TUInt32
+    IO ()
+
+
+logRemoveHandler ::
+    (MonadIO m) =>
+    T.Text ->                               -- log_domain
+    Word32 ->                               -- handler_id
+    m ()
+logRemoveHandler log_domain handler_id = liftIO $ do
+    log_domain' <- textToCString log_domain
+    g_log_remove_handler log_domain' handler_id
+    freeMem log_domain'
+    return ()
+
+-- function g_log_set_always_fatal
+-- Args : [Arg {argName = "fatal_mask", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "fatal_mask", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "LogLevelFlags"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_log_set_always_fatal" g_log_set_always_fatal :: 
+    CUInt ->                                -- fatal_mask : TInterface "GLib" "LogLevelFlags"
+    IO CUInt
+
+
+logSetAlwaysFatal ::
+    (MonadIO m) =>
+    [LogLevelFlags] ->                      -- fatal_mask
+    m [LogLevelFlags]
+logSetAlwaysFatal fatal_mask = liftIO $ do
+    let fatal_mask' = gflagsToWord fatal_mask
+    result <- g_log_set_always_fatal fatal_mask'
+    let result' = wordToGFlags result
+    return result'
+
+-- function g_log_set_fatal_mask
+-- Args : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fatal_mask", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fatal_mask", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "LogLevelFlags"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_log_set_fatal_mask" g_log_set_fatal_mask :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CUInt ->                                -- fatal_mask : TInterface "GLib" "LogLevelFlags"
+    IO CUInt
+
+
+logSetFatalMask ::
+    (MonadIO m) =>
+    T.Text ->                               -- log_domain
+    [LogLevelFlags] ->                      -- fatal_mask
+    m [LogLevelFlags]
+logSetFatalMask log_domain fatal_mask = liftIO $ do
+    log_domain' <- textToCString log_domain
+    let fatal_mask' = gflagsToWord fatal_mask
+    result <- g_log_set_fatal_mask log_domain' fatal_mask'
+    let result' = wordToGFlags result
+    freeMem log_domain'
+    return result'
+
+-- function g_main_context_default
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "MainContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_default" g_main_context_default :: 
+    IO (Ptr MainContext)
+
+
+mainContextDefault ::
+    (MonadIO m) =>
+    m MainContext
+mainContextDefault  = liftIO $ do
+    result <- g_main_context_default
+    result' <- (newBoxed MainContext) result
+    return result'
+
+-- function g_main_context_get_thread_default
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "MainContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_get_thread_default" g_main_context_get_thread_default :: 
+    IO (Ptr MainContext)
+
+
+mainContextGetThreadDefault ::
+    (MonadIO m) =>
+    m MainContext
+mainContextGetThreadDefault  = liftIO $ do
+    result <- g_main_context_get_thread_default
+    result' <- (newBoxed MainContext) result
+    return result'
+
+-- function g_main_context_ref_thread_default
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "MainContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_context_ref_thread_default" g_main_context_ref_thread_default :: 
+    IO (Ptr MainContext)
+
+
+mainContextRefThreadDefault ::
+    (MonadIO m) =>
+    m MainContext
+mainContextRefThreadDefault  = liftIO $ do
+    result <- g_main_context_ref_thread_default
+    result' <- (wrapBoxed MainContext) result
+    return result'
+
+-- function g_main_current_source
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_current_source" g_main_current_source :: 
+    IO (Ptr Source)
+
+
+mainCurrentSource ::
+    (MonadIO m) =>
+    m Source
+mainCurrentSource  = liftIO $ do
+    result <- g_main_current_source
+    result' <- (newBoxed Source) result
+    return result'
+
+-- function g_main_depth
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_depth" g_main_depth :: 
+    IO Int32
+
+
+mainDepth ::
+    (MonadIO m) =>
+    m Int32
+mainDepth  = liftIO $ do
+    result <- g_main_depth
+    return result
+
+-- function g_markup_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_markup_error_quark" g_markup_error_quark :: 
+    IO Word32
+
+
+markupErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+markupErrorQuark  = liftIO $ do
+    result <- g_markup_error_quark
+    return result
+
+-- function g_markup_escape_text
+-- Args : [Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_markup_escape_text" g_markup_escape_text :: 
+    CString ->                              -- text : TBasicType TUTF8
+    Int64 ->                                -- length : TBasicType TInt64
+    IO CString
+
+
+markupEscapeText ::
+    (MonadIO m) =>
+    T.Text ->                               -- text
+    Int64 ->                                -- length
+    m T.Text
+markupEscapeText text length_ = liftIO $ do
+    text' <- textToCString text
+    result <- g_markup_escape_text text' length_
+    result' <- cstringToText result
+    freeMem result
+    freeMem text'
+    return result'
+
+-- function g_mem_is_system_malloc
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mem_is_system_malloc" g_mem_is_system_malloc :: 
+    IO CInt
+
+
+memIsSystemMalloc ::
+    (MonadIO m) =>
+    m Bool
+memIsSystemMalloc  = liftIO $ do
+    result <- g_mem_is_system_malloc
+    let result' = (/= 0) result
+    return result'
+
+-- function g_mem_profile
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mem_profile" g_mem_profile :: 
+    IO ()
+
+
+memProfile ::
+    (MonadIO m) =>
+    m ()
+memProfile  = liftIO $ do
+    g_mem_profile
+    return ()
+
+-- function g_mem_set_vtable
+-- Args : [Arg {argName = "vtable", argType = TInterface "GLib" "MemVTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "vtable", argType = TInterface "GLib" "MemVTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mem_set_vtable" g_mem_set_vtable :: 
+    Ptr MemVTable ->                        -- vtable : TInterface "GLib" "MemVTable"
+    IO ()
+
+
+memSetVtable ::
+    (MonadIO m) =>
+    MemVTable ->                            -- vtable
+    m ()
+memSetVtable vtable = liftIO $ do
+    let vtable' = unsafeManagedPtrGetPtr vtable
+    g_mem_set_vtable vtable'
+    touchManagedPtr vtable
+    return ()
+
+-- function g_mkdir_with_parents
+-- Args : [Arg {argName = "pathname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "pathname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mkdir_with_parents" g_mkdir_with_parents :: 
+    CString ->                              -- pathname : TBasicType TUTF8
+    Int32 ->                                -- mode : TBasicType TInt32
+    IO Int32
+
+
+mkdirWithParents ::
+    (MonadIO m) =>
+    T.Text ->                               -- pathname
+    Int32 ->                                -- mode
+    m Int32
+mkdirWithParents pathname mode = liftIO $ do
+    pathname' <- textToCString pathname
+    result <- g_mkdir_with_parents pathname' mode
+    freeMem pathname'
+    return result
+
+-- function g_mkdtemp
+-- Args : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mkdtemp" g_mkdtemp :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    IO CString
+
+
+mkdtemp ::
+    (MonadIO m) =>
+    [Char] ->                               -- tmpl
+    m T.Text
+mkdtemp tmpl = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkdtemp tmpl'
+    result' <- cstringToText result
+    freeMem result
+    freeMem tmpl'
+    return result'
+
+-- function g_mkdtemp_full
+-- Args : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mkdtemp_full" g_mkdtemp_full :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    Int32 ->                                -- mode : TBasicType TInt32
+    IO CString
+
+
+mkdtempFull ::
+    (MonadIO m) =>
+    [Char] ->                               -- tmpl
+    Int32 ->                                -- mode
+    m T.Text
+mkdtempFull tmpl mode = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkdtemp_full tmpl' mode
+    result' <- cstringToText result
+    freeMem result
+    freeMem tmpl'
+    return result'
+
+-- function g_mkstemp
+-- Args : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mkstemp" g_mkstemp :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    IO Int32
+
+
+mkstemp ::
+    (MonadIO m) =>
+    [Char] ->                               -- tmpl
+    m Int32
+mkstemp tmpl = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkstemp tmpl'
+    freeMem tmpl'
+    return result
+
+-- function g_mkstemp_full
+-- Args : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mkstemp_full" g_mkstemp_full :: 
+    CString ->                              -- tmpl : TBasicType TFileName
+    Int32 ->                                -- flags : TBasicType TInt32
+    Int32 ->                                -- mode : TBasicType TInt32
+    IO Int32
+
+
+mkstempFull ::
+    (MonadIO m) =>
+    [Char] ->                               -- tmpl
+    Int32 ->                                -- flags
+    Int32 ->                                -- mode
+    m Int32
+mkstempFull tmpl flags mode = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkstemp_full tmpl' flags mode
+    freeMem tmpl'
+    return result
+
+-- function g_nullify_pointer
+-- Args : [Arg {argName = "nullify_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "nullify_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_nullify_pointer" g_nullify_pointer :: 
+    Ptr () ->                               -- nullify_location : TBasicType TVoid
+    IO ()
+
+
+nullifyPointer ::
+    (MonadIO m) =>
+    Ptr () ->                               -- nullify_location
+    m ()
+nullifyPointer nullify_location = liftIO $ do
+    g_nullify_pointer nullify_location
+    return ()
+
+-- function g_on_error_query
+-- Args : [Arg {argName = "prg_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "prg_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_on_error_query" g_on_error_query :: 
+    CString ->                              -- prg_name : TBasicType TUTF8
+    IO ()
+
+
+onErrorQuery ::
+    (MonadIO m) =>
+    T.Text ->                               -- prg_name
+    m ()
+onErrorQuery prg_name = liftIO $ do
+    prg_name' <- textToCString prg_name
+    g_on_error_query prg_name'
+    freeMem prg_name'
+    return ()
+
+-- function g_on_error_stack_trace
+-- Args : [Arg {argName = "prg_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "prg_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_on_error_stack_trace" g_on_error_stack_trace :: 
+    CString ->                              -- prg_name : TBasicType TUTF8
+    IO ()
+
+
+onErrorStackTrace ::
+    (MonadIO m) =>
+    T.Text ->                               -- prg_name
+    m ()
+onErrorStackTrace prg_name = liftIO $ do
+    prg_name' <- textToCString prg_name
+    g_on_error_stack_trace prg_name'
+    freeMem prg_name'
+    return ()
+
+-- function g_once_init_enter
+-- Args : [Arg {argName = "location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_once_init_enter" g_once_init_enter :: 
+    Ptr () ->                               -- location : TBasicType TVoid
+    IO CInt
+
+
+onceInitEnter ::
+    (MonadIO m) =>
+    Ptr () ->                               -- location
+    m Bool
+onceInitEnter location = liftIO $ do
+    result <- g_once_init_enter location
+    let result' = (/= 0) result
+    return result'
+
+-- function g_once_init_leave
+-- Args : [Arg {argName = "location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_once_init_leave" g_once_init_leave :: 
+    Ptr () ->                               -- location : TBasicType TVoid
+    Word64 ->                               -- result : TBasicType TUInt64
+    IO ()
+
+
+onceInitLeave ::
+    (MonadIO m) =>
+    Ptr () ->                               -- location
+    Word64 ->                               -- result
+    m ()
+onceInitLeave location result_ = liftIO $ do
+    g_once_init_leave location result_
+    return ()
+
+-- function g_option_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_option_error_quark" g_option_error_quark :: 
+    IO Word32
+
+
+optionErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+optionErrorQuark  = liftIO $ do
+    result <- g_option_error_quark
+    return result
+
+-- function g_parse_debug_string
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keys", argType = TCArray False (-1) 2 (TInterface "GLib" "DebugKey"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nkeys", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "nkeys", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keys", argType = TCArray False (-1) 2 (TInterface "GLib" "DebugKey"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_parse_debug_string" g_parse_debug_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    Ptr DebugKey ->                         -- keys : TCArray False (-1) 2 (TInterface "GLib" "DebugKey")
+    Word32 ->                               -- nkeys : TBasicType TUInt32
+    IO Word32
+
+
+parseDebugString ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- string
+    [DebugKey] ->                           -- keys
+    m Word32
+parseDebugString string keys = liftIO $ do
+    let nkeys = fromIntegral $ length keys
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    let keys' = map unsafeManagedPtrGetPtr keys
+    keys'' <- packBlockArray 16 keys'
+    result <- g_parse_debug_string maybeString keys'' nkeys
+    mapM_ touchManagedPtr keys
+    freeMem maybeString
+    freeMem keys''
+    return result
+
+-- function g_path_get_basename
+-- Args : [Arg {argName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_path_get_basename" g_path_get_basename :: 
+    CString ->                              -- file_name : TBasicType TUTF8
+    IO CString
+
+
+pathGetBasename ::
+    (MonadIO m) =>
+    T.Text ->                               -- file_name
+    m T.Text
+pathGetBasename file_name = liftIO $ do
+    file_name' <- textToCString file_name
+    result <- g_path_get_basename file_name'
+    result' <- cstringToText result
+    freeMem result
+    freeMem file_name'
+    return result'
+
+-- function g_path_get_dirname
+-- Args : [Arg {argName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_path_get_dirname" g_path_get_dirname :: 
+    CString ->                              -- file_name : TBasicType TUTF8
+    IO CString
+
+
+pathGetDirname ::
+    (MonadIO m) =>
+    T.Text ->                               -- file_name
+    m T.Text
+pathGetDirname file_name = liftIO $ do
+    file_name' <- textToCString file_name
+    result <- g_path_get_dirname file_name'
+    result' <- cstringToText result
+    freeMem result
+    freeMem file_name'
+    return result'
+
+-- function g_path_is_absolute
+-- Args : [Arg {argName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_path_is_absolute" g_path_is_absolute :: 
+    CString ->                              -- file_name : TBasicType TUTF8
+    IO CInt
+
+
+pathIsAbsolute ::
+    (MonadIO m) =>
+    T.Text ->                               -- file_name
+    m Bool
+pathIsAbsolute file_name = liftIO $ do
+    file_name' <- textToCString file_name
+    result <- g_path_is_absolute file_name'
+    let result' = (/= 0) result
+    freeMem file_name'
+    return result'
+
+-- function g_path_skip_root
+-- Args : [Arg {argName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_path_skip_root" g_path_skip_root :: 
+    CString ->                              -- file_name : TBasicType TUTF8
+    IO CString
+
+
+pathSkipRoot ::
+    (MonadIO m) =>
+    T.Text ->                               -- file_name
+    m T.Text
+pathSkipRoot file_name = liftIO $ do
+    file_name' <- textToCString file_name
+    result <- g_path_skip_root file_name'
+    result' <- cstringToText result
+    freeMem file_name'
+    return result'
+
+-- function g_pattern_match
+-- Args : [Arg {argName = "pspec", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_reversed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "pspec", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string_reversed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pattern_match" g_pattern_match :: 
+    Ptr PatternSpec ->                      -- pspec : TInterface "GLib" "PatternSpec"
+    Word32 ->                               -- string_length : TBasicType TUInt32
+    CString ->                              -- string : TBasicType TUTF8
+    CString ->                              -- string_reversed : TBasicType TUTF8
+    IO CInt
+
+
+patternMatch ::
+    (MonadIO m) =>
+    PatternSpec ->                          -- pspec
+    Word32 ->                               -- string_length
+    T.Text ->                               -- string
+    Maybe (T.Text) ->                       -- string_reversed
+    m Bool
+patternMatch pspec string_length string string_reversed = liftIO $ do
+    let pspec' = unsafeManagedPtrGetPtr pspec
+    string' <- textToCString string
+    maybeString_reversed <- case string_reversed of
+        Nothing -> return nullPtr
+        Just jString_reversed -> do
+            jString_reversed' <- textToCString jString_reversed
+            return jString_reversed'
+    result <- g_pattern_match pspec' string_length string' maybeString_reversed
+    let result' = (/= 0) result
+    touchManagedPtr pspec
+    freeMem string'
+    freeMem maybeString_reversed
+    return result'
+
+-- function g_pattern_match_simple
+-- Args : [Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pattern_match_simple" g_pattern_match_simple :: 
+    CString ->                              -- pattern : TBasicType TUTF8
+    CString ->                              -- string : TBasicType TUTF8
+    IO CInt
+
+
+patternMatchSimple ::
+    (MonadIO m) =>
+    T.Text ->                               -- pattern
+    T.Text ->                               -- string
+    m Bool
+patternMatchSimple pattern string = liftIO $ do
+    pattern' <- textToCString pattern
+    string' <- textToCString string
+    result <- g_pattern_match_simple pattern' string'
+    let result' = (/= 0) result
+    freeMem pattern'
+    freeMem string'
+    return result'
+
+-- function g_pattern_match_string
+-- Args : [Arg {argName = "pspec", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "pspec", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pattern_match_string" g_pattern_match_string :: 
+    Ptr PatternSpec ->                      -- pspec : TInterface "GLib" "PatternSpec"
+    CString ->                              -- string : TBasicType TUTF8
+    IO CInt
+
+
+patternMatchString ::
+    (MonadIO m) =>
+    PatternSpec ->                          -- pspec
+    T.Text ->                               -- string
+    m Bool
+patternMatchString pspec string = liftIO $ do
+    let pspec' = unsafeManagedPtrGetPtr pspec
+    string' <- textToCString string
+    result <- g_pattern_match_string pspec' string'
+    let result' = (/= 0) result
+    touchManagedPtr pspec
+    freeMem string'
+    return result'
+
+-- function g_pointer_bit_lock
+-- Args : [Arg {argName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pointer_bit_lock" g_pointer_bit_lock :: 
+    Ptr () ->                               -- address : TBasicType TVoid
+    Int32 ->                                -- lock_bit : TBasicType TInt32
+    IO ()
+
+
+pointerBitLock ::
+    (MonadIO m) =>
+    Ptr () ->                               -- address
+    Int32 ->                                -- lock_bit
+    m ()
+pointerBitLock address lock_bit = liftIO $ do
+    g_pointer_bit_lock address lock_bit
+    return ()
+
+-- function g_pointer_bit_trylock
+-- Args : [Arg {argName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pointer_bit_trylock" g_pointer_bit_trylock :: 
+    Ptr () ->                               -- address : TBasicType TVoid
+    Int32 ->                                -- lock_bit : TBasicType TInt32
+    IO CInt
+
+
+pointerBitTrylock ::
+    (MonadIO m) =>
+    Ptr () ->                               -- address
+    Int32 ->                                -- lock_bit
+    m Bool
+pointerBitTrylock address lock_bit = liftIO $ do
+    result <- g_pointer_bit_trylock address lock_bit
+    let result' = (/= 0) result
+    return result'
+
+-- function g_pointer_bit_unlock
+-- Args : [Arg {argName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pointer_bit_unlock" g_pointer_bit_unlock :: 
+    Ptr () ->                               -- address : TBasicType TVoid
+    Int32 ->                                -- lock_bit : TBasicType TInt32
+    IO ()
+
+
+pointerBitUnlock ::
+    (MonadIO m) =>
+    Ptr () ->                               -- address
+    Int32 ->                                -- lock_bit
+    m ()
+pointerBitUnlock address lock_bit = liftIO $ do
+    g_pointer_bit_unlock address lock_bit
+    return ()
+
+-- function g_poll
+-- Args : [Arg {argName = "fds", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nfds", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timeout", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "fds", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nfds", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timeout", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_poll" g_poll :: 
+    Ptr PollFD ->                           -- fds : TInterface "GLib" "PollFD"
+    Word32 ->                               -- nfds : TBasicType TUInt32
+    Int32 ->                                -- timeout : TBasicType TInt32
+    IO Int32
+
+
+poll ::
+    (MonadIO m) =>
+    PollFD ->                               -- fds
+    Word32 ->                               -- nfds
+    Int32 ->                                -- timeout
+    m Int32
+poll fds nfds timeout = liftIO $ do
+    let fds' = unsafeManagedPtrGetPtr fds
+    result <- g_poll fds' nfds timeout
+    touchManagedPtr fds
+    return result
+
+-- function g_propagate_error
+-- Args : [Arg {argName = "dest", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dest", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_propagate_error" g_propagate_error :: 
+    Ptr GError ->                           -- dest : TError
+    Ptr GError ->                           -- src : TError
+    IO ()
+
+
+propagateError ::
+    (MonadIO m) =>
+    GError ->                               -- dest
+    GError ->                               -- src
+    m ()
+propagateError dest src = liftIO $ do
+    let dest' = unsafeManagedPtrGetPtr dest
+    let src' = unsafeManagedPtrGetPtr src
+    g_propagate_error dest' src'
+    touchManagedPtr dest
+    touchManagedPtr src
+    return ()
+
+-- function g_quark_from_static_string
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_quark_from_static_string" g_quark_from_static_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO Word32
+
+
+quarkFromStaticString ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- string
+    m Word32
+quarkFromStaticString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_quark_from_static_string maybeString
+    freeMem maybeString
+    return result
+
+-- function g_quark_from_string
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_quark_from_string" g_quark_from_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO Word32
+
+
+quarkFromString ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- string
+    m Word32
+quarkFromString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_quark_from_string maybeString
+    freeMem maybeString
+    return result
+
+-- function g_quark_to_string
+-- Args : [Arg {argName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_quark_to_string" g_quark_to_string :: 
+    Word32 ->                               -- quark : TBasicType TUInt32
+    IO CString
+
+
+quarkToString ::
+    (MonadIO m) =>
+    Word32 ->                               -- quark
+    m T.Text
+quarkToString quark = liftIO $ do
+    result <- g_quark_to_string quark
+    result' <- cstringToText result
+    return result'
+
+-- function g_quark_try_string
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_quark_try_string" g_quark_try_string :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO Word32
+
+
+quarkTryString ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- string
+    m Word32
+quarkTryString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_quark_try_string maybeString
+    freeMem maybeString
+    return result
+
+-- function g_random_double
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_double" g_random_double :: 
+    IO CDouble
+
+
+randomDouble ::
+    (MonadIO m) =>
+    m Double
+randomDouble  = liftIO $ do
+    result <- g_random_double
+    let result' = realToFrac result
+    return result'
+
+-- function g_random_double_range
+-- Args : [Arg {argName = "begin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "begin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_double_range" g_random_double_range :: 
+    CDouble ->                              -- begin : TBasicType TDouble
+    CDouble ->                              -- end : TBasicType TDouble
+    IO CDouble
+
+
+randomDoubleRange ::
+    (MonadIO m) =>
+    Double ->                               -- begin
+    Double ->                               -- end
+    m Double
+randomDoubleRange begin end = liftIO $ do
+    let begin' = realToFrac begin
+    let end' = realToFrac end
+    result <- g_random_double_range begin' end'
+    let result' = realToFrac result
+    return result'
+
+-- function g_random_int
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_int" g_random_int :: 
+    IO Word32
+
+
+randomInt ::
+    (MonadIO m) =>
+    m Word32
+randomInt  = liftIO $ do
+    result <- g_random_int
+    return result
+
+-- function g_random_int_range
+-- Args : [Arg {argName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_int_range" g_random_int_range :: 
+    Int32 ->                                -- begin : TBasicType TInt32
+    Int32 ->                                -- end : TBasicType TInt32
+    IO Int32
+
+
+randomIntRange ::
+    (MonadIO m) =>
+    Int32 ->                                -- begin
+    Int32 ->                                -- end
+    m Int32
+randomIntRange begin end = liftIO $ do
+    result <- g_random_int_range begin end
+    return result
+
+-- function g_random_set_seed
+-- Args : [Arg {argName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_set_seed" g_random_set_seed :: 
+    Word32 ->                               -- seed : TBasicType TUInt32
+    IO ()
+
+
+randomSetSeed ::
+    (MonadIO m) =>
+    Word32 ->                               -- seed
+    m ()
+randomSetSeed seed = liftIO $ do
+    g_random_set_seed seed
+    return ()
+
+-- function g_regex_check_replacement
+-- Args : [Arg {argName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "has_references", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_regex_check_replacement" g_regex_check_replacement :: 
+    CString ->                              -- replacement : TBasicType TUTF8
+    Ptr CInt ->                             -- has_references : TBasicType TBoolean
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+regexCheckReplacement ::
+    (MonadIO m) =>
+    T.Text ->                               -- replacement
+    m (Bool)
+regexCheckReplacement replacement = liftIO $ do
+    replacement' <- textToCString replacement
+    has_references <- allocMem :: IO (Ptr CInt)
+    onException (do
+        _ <- propagateGError $ g_regex_check_replacement replacement' has_references
+        has_references' <- peek has_references
+        let has_references'' = (/= 0) has_references'
+        freeMem replacement'
+        freeMem has_references
+        return has_references''
+     ) (do
+        freeMem replacement'
+        freeMem has_references
+     )
+
+-- function g_regex_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_error_quark" g_regex_error_quark :: 
+    IO Word32
+
+
+regexErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+regexErrorQuark  = liftIO $ do
+    result <- g_regex_error_quark
+    return result
+
+-- function g_regex_escape_nul
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_escape_nul" g_regex_escape_nul :: 
+    CString ->                              -- string : TBasicType TUTF8
+    Int32 ->                                -- length : TBasicType TInt32
+    IO CString
+
+
+regexEscapeNul ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    Int32 ->                                -- length
+    m T.Text
+regexEscapeNul string length_ = liftIO $ do
+    string' <- textToCString string
+    result <- g_regex_escape_nul string' length_
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+-- function g_regex_escape_string
+-- Args : [Arg {argName = "string", argType = TCArray False (-1) 1 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "string", argType = TCArray False (-1) 1 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_escape_string" g_regex_escape_string :: 
+    Ptr CString ->                          -- string : TCArray False (-1) 1 (TBasicType TUTF8)
+    Int32 ->                                -- length : TBasicType TInt32
+    IO CString
+
+
+regexEscapeString ::
+    (MonadIO m) =>
+    [T.Text] ->                             -- string
+    m T.Text
+regexEscapeString string = liftIO $ do
+    let length_ = fromIntegral $ length string
+    string' <- packUTF8CArray string
+    result <- g_regex_escape_string string' length_
+    result' <- cstringToText result
+    freeMem result
+    (mapCArrayWithLength length_) freeMem string'
+    freeMem string'
+    return result'
+
+-- function g_regex_match_simple
+-- Args : [Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_match_simple" g_regex_match_simple :: 
+    CString ->                              -- pattern : TBasicType TUTF8
+    CString ->                              -- string : TBasicType TUTF8
+    CUInt ->                                -- compile_options : TInterface "GLib" "RegexCompileFlags"
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    IO CInt
+
+
+regexMatchSimple ::
+    (MonadIO m) =>
+    T.Text ->                               -- pattern
+    T.Text ->                               -- string
+    [RegexCompileFlags] ->                  -- compile_options
+    [RegexMatchFlags] ->                    -- match_options
+    m Bool
+regexMatchSimple pattern string compile_options match_options = liftIO $ do
+    pattern' <- textToCString pattern
+    string' <- textToCString string
+    let compile_options' = gflagsToWord compile_options
+    let match_options' = gflagsToWord match_options
+    result <- g_regex_match_simple pattern' string' compile_options' match_options'
+    let result' = (/= 0) result
+    freeMem pattern'
+    freeMem string'
+    return result'
+
+-- function g_regex_split_simple
+-- Args : [Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_regex_split_simple" g_regex_split_simple :: 
+    CString ->                              -- pattern : TBasicType TUTF8
+    CString ->                              -- string : TBasicType TUTF8
+    CUInt ->                                -- compile_options : TInterface "GLib" "RegexCompileFlags"
+    CUInt ->                                -- match_options : TInterface "GLib" "RegexMatchFlags"
+    IO (Ptr CString)
+
+
+regexSplitSimple ::
+    (MonadIO m) =>
+    T.Text ->                               -- pattern
+    T.Text ->                               -- string
+    [RegexCompileFlags] ->                  -- compile_options
+    [RegexMatchFlags] ->                    -- match_options
+    m [T.Text]
+regexSplitSimple pattern string compile_options match_options = liftIO $ do
+    pattern' <- textToCString pattern
+    string' <- textToCString string
+    let compile_options' = gflagsToWord compile_options
+    let match_options' = gflagsToWord match_options
+    result <- g_regex_split_simple pattern' string' compile_options' match_options'
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem pattern'
+    freeMem string'
+    return result'
+
+-- function g_reload_user_special_dirs_cache
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_reload_user_special_dirs_cache" g_reload_user_special_dirs_cache :: 
+    IO ()
+
+
+reloadUserSpecialDirsCache ::
+    (MonadIO m) =>
+    m ()
+reloadUserSpecialDirsCache  = liftIO $ do
+    g_reload_user_special_dirs_cache
+    return ()
+
+-- function g_return_if_fail_warning
+-- Args : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pretty_function", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expression", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pretty_function", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "expression", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_return_if_fail_warning" g_return_if_fail_warning :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CString ->                              -- pretty_function : TBasicType TUTF8
+    CString ->                              -- expression : TBasicType TUTF8
+    IO ()
+
+
+returnIfFailWarning ::
+    (MonadIO m) =>
+    T.Text ->                               -- log_domain
+    T.Text ->                               -- pretty_function
+    T.Text ->                               -- expression
+    m ()
+returnIfFailWarning log_domain pretty_function expression = liftIO $ do
+    log_domain' <- textToCString log_domain
+    pretty_function' <- textToCString pretty_function
+    expression' <- textToCString expression
+    g_return_if_fail_warning log_domain' pretty_function' expression'
+    freeMem log_domain'
+    freeMem pretty_function'
+    freeMem expression'
+    return ()
+
+-- function g_rmdir
+-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_rmdir" g_rmdir :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    IO Int32
+
+
+rmdir ::
+    (MonadIO m) =>
+    T.Text ->                               -- filename
+    m Int32
+rmdir filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_rmdir filename'
+    freeMem filename'
+    return result
+
+-- function g_sequence_move
+-- Args : [Arg {argName = "src", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "src", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_move" g_sequence_move :: 
+    Ptr SequenceIter ->                     -- src : TInterface "GLib" "SequenceIter"
+    Ptr SequenceIter ->                     -- dest : TInterface "GLib" "SequenceIter"
+    IO ()
+
+
+sequenceMove ::
+    (MonadIO m) =>
+    SequenceIter ->                         -- src
+    SequenceIter ->                         -- dest
+    m ()
+sequenceMove src dest = liftIO $ do
+    let src' = unsafeManagedPtrGetPtr src
+    let dest' = unsafeManagedPtrGetPtr dest
+    g_sequence_move src' dest'
+    touchManagedPtr src
+    touchManagedPtr dest
+    return ()
+
+-- function g_sequence_move_range
+-- Args : [Arg {argName = "dest", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "begin", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dest", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "begin", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_move_range" g_sequence_move_range :: 
+    Ptr SequenceIter ->                     -- dest : TInterface "GLib" "SequenceIter"
+    Ptr SequenceIter ->                     -- begin : TInterface "GLib" "SequenceIter"
+    Ptr SequenceIter ->                     -- end : TInterface "GLib" "SequenceIter"
+    IO ()
+
+
+sequenceMoveRange ::
+    (MonadIO m) =>
+    SequenceIter ->                         -- dest
+    SequenceIter ->                         -- begin
+    SequenceIter ->                         -- end
+    m ()
+sequenceMoveRange dest begin end = liftIO $ do
+    let dest' = unsafeManagedPtrGetPtr dest
+    let begin' = unsafeManagedPtrGetPtr begin
+    let end' = unsafeManagedPtrGetPtr end
+    g_sequence_move_range dest' begin' end'
+    touchManagedPtr dest
+    touchManagedPtr begin
+    touchManagedPtr end
+    return ()
+
+-- function g_sequence_remove
+-- Args : [Arg {argName = "iter", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "iter", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_remove" g_sequence_remove :: 
+    Ptr SequenceIter ->                     -- iter : TInterface "GLib" "SequenceIter"
+    IO ()
+
+
+sequenceRemove ::
+    (MonadIO m) =>
+    SequenceIter ->                         -- iter
+    m ()
+sequenceRemove iter = liftIO $ do
+    let iter' = unsafeManagedPtrGetPtr iter
+    g_sequence_remove iter'
+    touchManagedPtr iter
+    return ()
+
+-- function g_sequence_remove_range
+-- Args : [Arg {argName = "begin", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "begin", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_remove_range" g_sequence_remove_range :: 
+    Ptr SequenceIter ->                     -- begin : TInterface "GLib" "SequenceIter"
+    Ptr SequenceIter ->                     -- end : TInterface "GLib" "SequenceIter"
+    IO ()
+
+
+sequenceRemoveRange ::
+    (MonadIO m) =>
+    SequenceIter ->                         -- begin
+    SequenceIter ->                         -- end
+    m ()
+sequenceRemoveRange begin end = liftIO $ do
+    let begin' = unsafeManagedPtrGetPtr begin
+    let end' = unsafeManagedPtrGetPtr end
+    g_sequence_remove_range begin' end'
+    touchManagedPtr begin
+    touchManagedPtr end
+    return ()
+
+-- function g_sequence_set
+-- Args : [Arg {argName = "iter", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "iter", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_set" g_sequence_set :: 
+    Ptr SequenceIter ->                     -- iter : TInterface "GLib" "SequenceIter"
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO ()
+
+
+sequenceSet ::
+    (MonadIO m) =>
+    SequenceIter ->                         -- iter
+    Ptr () ->                               -- data
+    m ()
+sequenceSet iter data_ = liftIO $ do
+    let iter' = unsafeManagedPtrGetPtr iter
+    g_sequence_set iter' data_
+    touchManagedPtr iter
+    return ()
+
+-- function g_sequence_swap
+-- Args : [Arg {argName = "a", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "b", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "a", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "b", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_sequence_swap" g_sequence_swap :: 
+    Ptr SequenceIter ->                     -- a : TInterface "GLib" "SequenceIter"
+    Ptr SequenceIter ->                     -- b : TInterface "GLib" "SequenceIter"
+    IO ()
+
+
+sequenceSwap ::
+    (MonadIO m) =>
+    SequenceIter ->                         -- a
+    SequenceIter ->                         -- b
+    m ()
+sequenceSwap a b = liftIO $ do
+    let a' = unsafeManagedPtrGetPtr a
+    let b' = unsafeManagedPtrGetPtr b
+    g_sequence_swap a' b'
+    touchManagedPtr a
+    touchManagedPtr b
+    return ()
+
+-- function g_set_application_name
+-- Args : [Arg {argName = "application_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "application_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_set_application_name" g_set_application_name :: 
+    CString ->                              -- application_name : TBasicType TUTF8
+    IO ()
+
+
+setApplicationName ::
+    (MonadIO m) =>
+    T.Text ->                               -- application_name
+    m ()
+setApplicationName application_name = liftIO $ do
+    application_name' <- textToCString application_name
+    g_set_application_name application_name'
+    freeMem application_name'
+    return ()
+
+-- function g_set_error_literal
+-- Args : [Arg {argName = "err", argType = TError, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "code", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "err", argType = TError, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "domain", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "code", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_set_error_literal" g_set_error_literal :: 
+    Ptr GError ->                           -- err : TError
+    Word32 ->                               -- domain : TBasicType TUInt32
+    Int32 ->                                -- code : TBasicType TInt32
+    CString ->                              -- message : TBasicType TUTF8
+    IO ()
+
+
+setErrorLiteral ::
+    (MonadIO m) =>
+    Maybe (GError) ->                       -- err
+    Word32 ->                               -- domain
+    Int32 ->                                -- code
+    T.Text ->                               -- message
+    m ()
+setErrorLiteral err domain code message = liftIO $ do
+    maybeErr <- case err of
+        Nothing -> return nullPtr
+        Just jErr -> do
+            let jErr' = unsafeManagedPtrGetPtr jErr
+            return jErr'
+    message' <- textToCString message
+    g_set_error_literal maybeErr domain code message'
+    whenJust err touchManagedPtr
+    freeMem message'
+    return ()
+
+-- function g_set_prgname
+-- Args : [Arg {argName = "prgname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "prgname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_set_prgname" g_set_prgname :: 
+    CString ->                              -- prgname : TBasicType TUTF8
+    IO ()
+
+
+setPrgname ::
+    (MonadIO m) =>
+    T.Text ->                               -- prgname
+    m ()
+setPrgname prgname = liftIO $ do
+    prgname' <- textToCString prgname
+    g_set_prgname prgname'
+    freeMem prgname'
+    return ()
+
+-- function g_setenv
+-- Args : [Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_setenv" g_setenv :: 
+    CString ->                              -- variable : TBasicType TUTF8
+    CString ->                              -- value : TBasicType TUTF8
+    CInt ->                                 -- overwrite : TBasicType TBoolean
+    IO CInt
+
+
+setenv ::
+    (MonadIO m) =>
+    T.Text ->                               -- variable
+    T.Text ->                               -- value
+    Bool ->                                 -- overwrite
+    m Bool
+setenv variable value overwrite = liftIO $ do
+    variable' <- textToCString variable
+    value' <- textToCString value
+    let overwrite' = (fromIntegral . fromEnum) overwrite
+    result <- g_setenv variable' value' overwrite'
+    let result' = (/= 0) result
+    freeMem variable'
+    freeMem value'
+    return result'
+
+-- function g_shell_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_shell_error_quark" g_shell_error_quark :: 
+    IO Word32
+
+
+shellErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+shellErrorQuark  = liftIO $ do
+    result <- g_shell_error_quark
+    return result
+
+-- function g_shell_parse_argv
+-- Args : [Arg {argName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argcp", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "argvp", argType = TCArray True (-1) 1 (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_shell_parse_argv" g_shell_parse_argv :: 
+    CString ->                              -- command_line : TBasicType TUTF8
+    Ptr Int32 ->                            -- argcp : TBasicType TInt32
+    Ptr (Ptr CString) ->                    -- argvp : TCArray True (-1) 1 (TBasicType TUTF8)
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+shellParseArgv ::
+    (MonadIO m) =>
+    T.Text ->                               -- command_line
+    m (Int32,[T.Text])
+shellParseArgv command_line = liftIO $ do
+    command_line' <- textToCString command_line
+    argcp <- allocMem :: IO (Ptr Int32)
+    argvp <- allocMem :: IO (Ptr (Ptr CString))
+    onException (do
+        _ <- propagateGError $ g_shell_parse_argv command_line' argcp argvp
+        argcp' <- peek argcp
+        argvp' <- peek argvp
+        argvp'' <- unpackZeroTerminatedUTF8CArray argvp'
+        mapZeroTerminatedCArray freeMem argvp'
+        freeMem argvp'
+        freeMem command_line'
+        freeMem argcp
+        freeMem argvp
+        return (argcp', argvp'')
+     ) (do
+        freeMem command_line'
+        freeMem argcp
+        freeMem argvp
+     )
+
+-- function g_shell_quote
+-- Args : [Arg {argName = "unquoted_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "unquoted_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_shell_quote" g_shell_quote :: 
+    CString ->                              -- unquoted_string : TBasicType TUTF8
+    IO CString
+
+
+shellQuote ::
+    (MonadIO m) =>
+    T.Text ->                               -- unquoted_string
+    m T.Text
+shellQuote unquoted_string = liftIO $ do
+    unquoted_string' <- textToCString unquoted_string
+    result <- g_shell_quote unquoted_string'
+    result' <- cstringToText result
+    freeMem result
+    freeMem unquoted_string'
+    return result'
+
+-- function g_shell_unquote
+-- Args : [Arg {argName = "quoted_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "quoted_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_shell_unquote" g_shell_unquote :: 
+    CString ->                              -- quoted_string : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CString
+
+
+shellUnquote ::
+    (MonadIO m) =>
+    T.Text ->                               -- quoted_string
+    m T.Text
+shellUnquote quoted_string = liftIO $ do
+    quoted_string' <- textToCString quoted_string
+    onException (do
+        result <- propagateGError $ g_shell_unquote quoted_string'
+        result' <- cstringToText result
+        freeMem result
+        freeMem quoted_string'
+        return result'
+     ) (do
+        freeMem quoted_string'
+     )
+
+-- function g_slice_free1
+-- Args : [Arg {argName = "block_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mem_block", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "block_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mem_block", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_slice_free1" g_slice_free1 :: 
+    Word64 ->                               -- block_size : TBasicType TUInt64
+    Ptr () ->                               -- mem_block : TBasicType TVoid
+    IO ()
+
+
+sliceFree1 ::
+    (MonadIO m) =>
+    Word64 ->                               -- block_size
+    Ptr () ->                               -- mem_block
+    m ()
+sliceFree1 block_size mem_block = liftIO $ do
+    g_slice_free1 block_size mem_block
+    return ()
+
+-- function g_slice_free_chain_with_offset
+-- Args : [Arg {argName = "block_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mem_chain", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "next_offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "block_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mem_chain", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "next_offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_slice_free_chain_with_offset" g_slice_free_chain_with_offset :: 
+    Word64 ->                               -- block_size : TBasicType TUInt64
+    Ptr () ->                               -- mem_chain : TBasicType TVoid
+    Word64 ->                               -- next_offset : TBasicType TUInt64
+    IO ()
+
+
+sliceFreeChainWithOffset ::
+    (MonadIO m) =>
+    Word64 ->                               -- block_size
+    Ptr () ->                               -- mem_chain
+    Word64 ->                               -- next_offset
+    m ()
+sliceFreeChainWithOffset block_size mem_chain next_offset = liftIO $ do
+    g_slice_free_chain_with_offset block_size mem_chain next_offset
+    return ()
+
+-- function g_slice_get_config
+-- Args : [Arg {argName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_slice_get_config" g_slice_get_config :: 
+    CUInt ->                                -- ckey : TInterface "GLib" "SliceConfig"
+    IO Int64
+
+
+sliceGetConfig ::
+    (MonadIO m) =>
+    SliceConfig ->                          -- ckey
+    m Int64
+sliceGetConfig ckey = liftIO $ do
+    let ckey' = (fromIntegral . fromEnum) ckey
+    result <- g_slice_get_config ckey'
+    return result
+
+-- function g_slice_get_config_state
+-- Args : [Arg {argName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "address", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "address", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_slice_get_config_state" g_slice_get_config_state :: 
+    CUInt ->                                -- ckey : TInterface "GLib" "SliceConfig"
+    Int64 ->                                -- address : TBasicType TInt64
+    Word32 ->                               -- n_values : TBasicType TUInt32
+    IO Int64
+
+
+sliceGetConfigState ::
+    (MonadIO m) =>
+    SliceConfig ->                          -- ckey
+    Int64 ->                                -- address
+    Word32 ->                               -- n_values
+    m Int64
+sliceGetConfigState ckey address n_values = liftIO $ do
+    let ckey' = (fromIntegral . fromEnum) ckey
+    result <- g_slice_get_config_state ckey' address n_values
+    return result
+
+-- function g_slice_set_config
+-- Args : [Arg {argName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_slice_set_config" g_slice_set_config :: 
+    CUInt ->                                -- ckey : TInterface "GLib" "SliceConfig"
+    Int64 ->                                -- value : TBasicType TInt64
+    IO ()
+
+
+sliceSetConfig ::
+    (MonadIO m) =>
+    SliceConfig ->                          -- ckey
+    Int64 ->                                -- value
+    m ()
+sliceSetConfig ckey value = liftIO $ do
+    let ckey' = (fromIntegral . fromEnum) ckey
+    g_slice_set_config ckey' value
+    return ()
+
+-- function g_source_remove
+-- Args : [Arg {argName = "tag", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tag", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_remove" g_source_remove :: 
+    Word32 ->                               -- tag : TBasicType TUInt32
+    IO CInt
+
+
+sourceRemove ::
+    (MonadIO m) =>
+    Word32 ->                               -- tag
+    m Bool
+sourceRemove tag = liftIO $ do
+    result <- g_source_remove tag
+    let result' = (/= 0) result
+    return result'
+
+-- function g_source_remove_by_funcs_user_data
+-- Args : [Arg {argName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_remove_by_funcs_user_data" g_source_remove_by_funcs_user_data :: 
+    Ptr SourceFuncs ->                      -- funcs : TInterface "GLib" "SourceFuncs"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    IO CInt
+
+
+sourceRemoveByFuncsUserData ::
+    (MonadIO m) =>
+    SourceFuncs ->                          -- funcs
+    Ptr () ->                               -- user_data
+    m Bool
+sourceRemoveByFuncsUserData funcs user_data = liftIO $ do
+    let funcs' = unsafeManagedPtrGetPtr funcs
+    result <- g_source_remove_by_funcs_user_data funcs' user_data
+    let result' = (/= 0) result
+    touchManagedPtr funcs
+    return result'
+
+-- function g_source_remove_by_user_data
+-- Args : [Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_remove_by_user_data" g_source_remove_by_user_data :: 
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    IO CInt
+
+
+sourceRemoveByUserData ::
+    (MonadIO m) =>
+    Ptr () ->                               -- user_data
+    m Bool
+sourceRemoveByUserData user_data = liftIO $ do
+    result <- g_source_remove_by_user_data user_data
+    let result' = (/= 0) result
+    return result'
+
+-- function g_source_set_name_by_id
+-- Args : [Arg {argName = "tag", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "tag", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_source_set_name_by_id" g_source_set_name_by_id :: 
+    Word32 ->                               -- tag : TBasicType TUInt32
+    CString ->                              -- name : TBasicType TUTF8
+    IO ()
+
+
+sourceSetNameById ::
+    (MonadIO m) =>
+    Word32 ->                               -- tag
+    T.Text ->                               -- name
+    m ()
+sourceSetNameById tag name = liftIO $ do
+    name' <- textToCString name
+    g_source_set_name_by_id tag name'
+    freeMem name'
+    return ()
+
+-- function g_spaced_primes_closest
+-- Args : [Arg {argName = "num", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "num", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_spaced_primes_closest" g_spaced_primes_closest :: 
+    Word32 ->                               -- num : TBasicType TUInt32
+    IO Word32
+
+
+spacedPrimesClosest ::
+    (MonadIO m) =>
+    Word32 ->                               -- num
+    m Word32
+spacedPrimesClosest num = liftIO $ do
+    result <- g_spaced_primes_closest num
+    return result
+
+-- function g_spawn_async
+-- Args : [Arg {argName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_pid", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_async" g_spawn_async :: 
+    CString ->                              -- working_directory : TBasicType TUTF8
+    Ptr CString ->                          -- argv : TCArray True (-1) (-1) (TBasicType TUTF8)
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CUInt ->                                -- flags : TInterface "GLib" "SpawnFlags"
+    FunPtr SpawnChildSetupFuncC ->          -- child_setup : TInterface "GLib" "SpawnChildSetupFunc"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr Int32 ->                            -- child_pid : TBasicType TInt32
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnAsync ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- working_directory
+    [T.Text] ->                             -- argv
+    Maybe ([T.Text]) ->                     -- envp
+    [SpawnFlags] ->                         -- flags
+    Maybe (SpawnChildSetupFunc) ->          -- child_setup
+    m (Int32)
+spawnAsync working_directory argv envp flags child_setup = liftIO $ do
+    maybeWorking_directory <- case working_directory of
+        Nothing -> return nullPtr
+        Just jWorking_directory -> do
+            jWorking_directory' <- textToCString jWorking_directory
+            return jWorking_directory'
+    argv' <- packZeroTerminatedUTF8CArray argv
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    let flags' = gflagsToWord flags
+    ptrchild_setup <- callocBytes $ sizeOf (undefined :: FunPtr SpawnChildSetupFuncC)
+    maybeChild_setup <- case child_setup of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChild_setup -> do
+            jChild_setup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchild_setup) jChild_setup)
+            poke ptrchild_setup jChild_setup'
+            return jChild_setup'
+    child_pid <- allocMem :: IO (Ptr Int32)
+    let user_data = nullPtr
+    onException (do
+        _ <- propagateGError $ g_spawn_async maybeWorking_directory argv' maybeEnvp flags' maybeChild_setup user_data child_pid
+        child_pid' <- peek child_pid
+        freeMem maybeWorking_directory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem child_pid
+        return child_pid'
+     ) (do
+        freeMem maybeWorking_directory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem child_pid
+     )
+
+-- function g_spawn_async_with_pipes
+-- Args : [Arg {argName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_pid", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "standard_input", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "standard_output", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "standard_error", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_async_with_pipes" g_spawn_async_with_pipes :: 
+    CString ->                              -- working_directory : TBasicType TUTF8
+    Ptr CString ->                          -- argv : TCArray True (-1) (-1) (TBasicType TUTF8)
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CUInt ->                                -- flags : TInterface "GLib" "SpawnFlags"
+    FunPtr SpawnChildSetupFuncC ->          -- child_setup : TInterface "GLib" "SpawnChildSetupFunc"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr Int32 ->                            -- child_pid : TBasicType TInt32
+    Ptr Int32 ->                            -- standard_input : TBasicType TInt32
+    Ptr Int32 ->                            -- standard_output : TBasicType TInt32
+    Ptr Int32 ->                            -- standard_error : TBasicType TInt32
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnAsyncWithPipes ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- working_directory
+    [T.Text] ->                             -- argv
+    Maybe ([T.Text]) ->                     -- envp
+    [SpawnFlags] ->                         -- flags
+    Maybe (SpawnChildSetupFunc) ->          -- child_setup
+    m (Int32,Int32,Int32,Int32)
+spawnAsyncWithPipes working_directory argv envp flags child_setup = liftIO $ do
+    maybeWorking_directory <- case working_directory of
+        Nothing -> return nullPtr
+        Just jWorking_directory -> do
+            jWorking_directory' <- textToCString jWorking_directory
+            return jWorking_directory'
+    argv' <- packZeroTerminatedUTF8CArray argv
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    let flags' = gflagsToWord flags
+    ptrchild_setup <- callocBytes $ sizeOf (undefined :: FunPtr SpawnChildSetupFuncC)
+    maybeChild_setup <- case child_setup of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChild_setup -> do
+            jChild_setup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchild_setup) jChild_setup)
+            poke ptrchild_setup jChild_setup'
+            return jChild_setup'
+    child_pid <- allocMem :: IO (Ptr Int32)
+    standard_input <- allocMem :: IO (Ptr Int32)
+    standard_output <- allocMem :: IO (Ptr Int32)
+    standard_error <- allocMem :: IO (Ptr Int32)
+    let user_data = nullPtr
+    onException (do
+        _ <- propagateGError $ g_spawn_async_with_pipes maybeWorking_directory argv' maybeEnvp flags' maybeChild_setup user_data child_pid standard_input standard_output standard_error
+        child_pid' <- peek child_pid
+        standard_input' <- peek standard_input
+        standard_output' <- peek standard_output
+        standard_error' <- peek standard_error
+        freeMem maybeWorking_directory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem child_pid
+        freeMem standard_input
+        freeMem standard_output
+        freeMem standard_error
+        return (child_pid', standard_input', standard_output', standard_error')
+     ) (do
+        freeMem maybeWorking_directory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem child_pid
+        freeMem standard_input
+        freeMem standard_output
+        freeMem standard_error
+     )
+
+-- function g_spawn_check_exit_status
+-- Args : [Arg {argName = "exit_status", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "exit_status", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_check_exit_status" g_spawn_check_exit_status :: 
+    Int32 ->                                -- exit_status : TBasicType TInt32
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnCheckExitStatus ::
+    (MonadIO m) =>
+    Int32 ->                                -- exit_status
+    m ()
+spawnCheckExitStatus exit_status = liftIO $ do
+    onException (do
+        _ <- propagateGError $ g_spawn_check_exit_status exit_status
+        return ()
+     ) (do
+        return ()
+     )
+
+-- function g_spawn_close_pid
+-- Args : [Arg {argName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_spawn_close_pid" g_spawn_close_pid :: 
+    Int32 ->                                -- pid : TBasicType TInt32
+    IO ()
+
+
+spawnClosePid ::
+    (MonadIO m) =>
+    Int32 ->                                -- pid
+    m ()
+spawnClosePid pid = liftIO $ do
+    g_spawn_close_pid pid
+    return ()
+
+-- function g_spawn_command_line_async
+-- Args : [Arg {argName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_command_line_async" g_spawn_command_line_async :: 
+    CString ->                              -- command_line : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnCommandLineAsync ::
+    (MonadIO m) =>
+    T.Text ->                               -- command_line
+    m ()
+spawnCommandLineAsync command_line = liftIO $ do
+    command_line' <- textToCString command_line
+    onException (do
+        _ <- propagateGError $ g_spawn_command_line_async command_line'
+        freeMem command_line'
+        return ()
+     ) (do
+        freeMem command_line'
+     )
+
+-- function g_spawn_command_line_sync
+-- Args : [Arg {argName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "standard_output", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "standard_error", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "exit_status", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_command_line_sync" g_spawn_command_line_sync :: 
+    CString ->                              -- command_line : TBasicType TUTF8
+    Ptr (Ptr Word8) ->                      -- standard_output : TCArray True (-1) (-1) (TBasicType TUInt8)
+    Ptr (Ptr Word8) ->                      -- standard_error : TCArray True (-1) (-1) (TBasicType TUInt8)
+    Ptr Int32 ->                            -- exit_status : TBasicType TInt32
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnCommandLineSync ::
+    (MonadIO m) =>
+    T.Text ->                               -- command_line
+    m (ByteString,ByteString,Int32)
+spawnCommandLineSync command_line = liftIO $ do
+    command_line' <- textToCString command_line
+    standard_output <- allocMem :: IO (Ptr (Ptr Word8))
+    standard_error <- allocMem :: IO (Ptr (Ptr Word8))
+    exit_status <- allocMem :: IO (Ptr Int32)
+    onException (do
+        _ <- propagateGError $ g_spawn_command_line_sync command_line' standard_output standard_error exit_status
+        standard_output' <- peek standard_output
+        standard_output'' <- unpackZeroTerminatedByteString standard_output'
+        freeMem standard_output'
+        standard_error' <- peek standard_error
+        standard_error'' <- unpackZeroTerminatedByteString standard_error'
+        freeMem standard_error'
+        exit_status' <- peek exit_status
+        freeMem command_line'
+        freeMem standard_output
+        freeMem standard_error
+        freeMem exit_status
+        return (standard_output'', standard_error'', exit_status')
+     ) (do
+        freeMem command_line'
+        freeMem standard_output
+        freeMem standard_error
+        freeMem exit_status
+     )
+
+-- function g_spawn_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_spawn_error_quark" g_spawn_error_quark :: 
+    IO Word32
+
+
+spawnErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+spawnErrorQuark  = liftIO $ do
+    result <- g_spawn_error_quark
+    return result
+
+-- function g_spawn_exit_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_spawn_exit_error_quark" g_spawn_exit_error_quark :: 
+    IO Word32
+
+
+spawnExitErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+spawnExitErrorQuark  = liftIO $ do
+    result <- g_spawn_exit_error_quark
+    return result
+
+-- function g_spawn_sync
+-- Args : [Arg {argName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "standard_output", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "standard_error", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "exit_status", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_spawn_sync" g_spawn_sync :: 
+    CString ->                              -- working_directory : TBasicType TUTF8
+    Ptr CString ->                          -- argv : TCArray True (-1) (-1) (TBasicType TUTF8)
+    Ptr CString ->                          -- envp : TCArray True (-1) (-1) (TBasicType TUTF8)
+    CUInt ->                                -- flags : TInterface "GLib" "SpawnFlags"
+    FunPtr SpawnChildSetupFuncC ->          -- child_setup : TInterface "GLib" "SpawnChildSetupFunc"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    Ptr (Ptr Word8) ->                      -- standard_output : TCArray True (-1) (-1) (TBasicType TUInt8)
+    Ptr (Ptr Word8) ->                      -- standard_error : TCArray True (-1) (-1) (TBasicType TUInt8)
+    Ptr Int32 ->                            -- exit_status : TBasicType TInt32
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+spawnSync ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- working_directory
+    [T.Text] ->                             -- argv
+    Maybe ([T.Text]) ->                     -- envp
+    [SpawnFlags] ->                         -- flags
+    Maybe (SpawnChildSetupFunc) ->          -- child_setup
+    m (ByteString,ByteString,Int32)
+spawnSync working_directory argv envp flags child_setup = liftIO $ do
+    maybeWorking_directory <- case working_directory of
+        Nothing -> return nullPtr
+        Just jWorking_directory -> do
+            jWorking_directory' <- textToCString jWorking_directory
+            return jWorking_directory'
+    argv' <- packZeroTerminatedUTF8CArray argv
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    let flags' = gflagsToWord flags
+    ptrchild_setup <- callocBytes $ sizeOf (undefined :: FunPtr SpawnChildSetupFuncC)
+    maybeChild_setup <- case child_setup of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChild_setup -> do
+            jChild_setup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchild_setup) jChild_setup)
+            poke ptrchild_setup jChild_setup'
+            return jChild_setup'
+    standard_output <- allocMem :: IO (Ptr (Ptr Word8))
+    standard_error <- allocMem :: IO (Ptr (Ptr Word8))
+    exit_status <- allocMem :: IO (Ptr Int32)
+    let user_data = nullPtr
+    onException (do
+        _ <- propagateGError $ g_spawn_sync maybeWorking_directory argv' maybeEnvp flags' maybeChild_setup user_data standard_output standard_error exit_status
+        standard_output' <- peek standard_output
+        standard_output'' <- unpackZeroTerminatedByteString standard_output'
+        freeMem standard_output'
+        standard_error' <- peek standard_error
+        standard_error'' <- unpackZeroTerminatedByteString standard_error'
+        freeMem standard_error'
+        exit_status' <- peek exit_status
+        freeMem maybeWorking_directory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem standard_output
+        freeMem standard_error
+        freeMem exit_status
+        return (standard_output'', standard_error'', exit_status')
+     ) (do
+        freeMem maybeWorking_directory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem standard_output
+        freeMem standard_error
+        freeMem exit_status
+     )
+
+-- function g_stpcpy
+-- Args : [Arg {argName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_stpcpy" g_stpcpy :: 
+    CString ->                              -- dest : TBasicType TUTF8
+    CString ->                              -- src : TBasicType TUTF8
+    IO CString
+
+
+stpcpy ::
+    (MonadIO m) =>
+    T.Text ->                               -- dest
+    T.Text ->                               -- src
+    m T.Text
+stpcpy dest src = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_stpcpy dest' src'
+    result' <- cstringToText result
+    freeMem result
+    freeMem dest'
+    freeMem src'
+    return result'
+
+-- function g_str_equal
+-- Args : [Arg {argName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_equal" g_str_equal :: 
+    Ptr () ->                               -- v1 : TBasicType TVoid
+    Ptr () ->                               -- v2 : TBasicType TVoid
+    IO CInt
+
+
+strEqual ::
+    (MonadIO m) =>
+    Ptr () ->                               -- v1
+    Ptr () ->                               -- v2
+    m Bool
+strEqual v1 v2 = liftIO $ do
+    result <- g_str_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+-- function g_str_has_prefix
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "prefix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "prefix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_has_prefix" g_str_has_prefix :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CString ->                              -- prefix : TBasicType TUTF8
+    IO CInt
+
+
+strHasPrefix ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    T.Text ->                               -- prefix
+    m Bool
+strHasPrefix str prefix = liftIO $ do
+    str' <- textToCString str
+    prefix' <- textToCString prefix
+    result <- g_str_has_prefix str' prefix'
+    let result' = (/= 0) result
+    freeMem str'
+    freeMem prefix'
+    return result'
+
+-- function g_str_has_suffix
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "suffix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "suffix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_has_suffix" g_str_has_suffix :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CString ->                              -- suffix : TBasicType TUTF8
+    IO CInt
+
+
+strHasSuffix ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    T.Text ->                               -- suffix
+    m Bool
+strHasSuffix str suffix = liftIO $ do
+    str' <- textToCString str
+    suffix' <- textToCString suffix
+    result <- g_str_has_suffix str' suffix'
+    let result' = (/= 0) result
+    freeMem str'
+    freeMem suffix'
+    return result'
+
+-- function g_str_hash
+-- Args : [Arg {argName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_hash" g_str_hash :: 
+    Ptr () ->                               -- v : TBasicType TVoid
+    IO Word32
+
+
+strHash ::
+    (MonadIO m) =>
+    Ptr () ->                               -- v
+    m Word32
+strHash v = liftIO $ do
+    result <- g_str_hash v
+    return result
+
+-- function g_str_is_ascii
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_is_ascii" g_str_is_ascii :: 
+    CString ->                              -- str : TBasicType TUTF8
+    IO CInt
+
+
+strIsAscii ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    m Bool
+strIsAscii str = liftIO $ do
+    str' <- textToCString str
+    result <- g_str_is_ascii str'
+    let result' = (/= 0) result
+    freeMem str'
+    return result'
+
+-- function g_str_match_string
+-- Args : [Arg {argName = "search_term", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "potential_hit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accept_alternates", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "search_term", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "potential_hit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accept_alternates", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_match_string" g_str_match_string :: 
+    CString ->                              -- search_term : TBasicType TUTF8
+    CString ->                              -- potential_hit : TBasicType TUTF8
+    CInt ->                                 -- accept_alternates : TBasicType TBoolean
+    IO CInt
+
+
+strMatchString ::
+    (MonadIO m) =>
+    T.Text ->                               -- search_term
+    T.Text ->                               -- potential_hit
+    Bool ->                                 -- accept_alternates
+    m Bool
+strMatchString search_term potential_hit accept_alternates = liftIO $ do
+    search_term' <- textToCString search_term
+    potential_hit' <- textToCString potential_hit
+    let accept_alternates' = (fromIntegral . fromEnum) accept_alternates
+    result <- g_str_match_string search_term' potential_hit' accept_alternates'
+    let result' = (/= 0) result
+    freeMem search_term'
+    freeMem potential_hit'
+    return result'
+
+-- function g_str_to_ascii
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "from_locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "from_locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_to_ascii" g_str_to_ascii :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CString ->                              -- from_locale : TBasicType TUTF8
+    IO CString
+
+
+strToAscii ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Maybe (T.Text) ->                       -- from_locale
+    m T.Text
+strToAscii str from_locale = liftIO $ do
+    str' <- textToCString str
+    maybeFrom_locale <- case from_locale of
+        Nothing -> return nullPtr
+        Just jFrom_locale -> do
+            jFrom_locale' <- textToCString jFrom_locale
+            return jFrom_locale'
+    result <- g_str_to_ascii str' maybeFrom_locale
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    freeMem maybeFrom_locale
+    return result'
+
+-- function g_str_tokenize_and_fold
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "translit_locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ascii_alternates", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "translit_locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_str_tokenize_and_fold" g_str_tokenize_and_fold :: 
+    CString ->                              -- string : TBasicType TUTF8
+    CString ->                              -- translit_locale : TBasicType TUTF8
+    Ptr (Ptr CString) ->                    -- ascii_alternates : TCArray True (-1) (-1) (TBasicType TUTF8)
+    IO (Ptr CString)
+
+
+strTokenizeAndFold ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    Maybe (T.Text) ->                       -- translit_locale
+    m ([T.Text],[T.Text])
+strTokenizeAndFold string translit_locale = liftIO $ do
+    string' <- textToCString string
+    maybeTranslit_locale <- case translit_locale of
+        Nothing -> return nullPtr
+        Just jTranslit_locale -> do
+            jTranslit_locale' <- textToCString jTranslit_locale
+            return jTranslit_locale'
+    ascii_alternates <- allocMem :: IO (Ptr (Ptr CString))
+    result <- g_str_tokenize_and_fold string' maybeTranslit_locale ascii_alternates
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    ascii_alternates' <- peek ascii_alternates
+    ascii_alternates'' <- unpackZeroTerminatedUTF8CArray ascii_alternates'
+    mapZeroTerminatedCArray freeMem ascii_alternates'
+    freeMem ascii_alternates'
+    freeMem string'
+    freeMem maybeTranslit_locale
+    freeMem ascii_alternates
+    return (result', ascii_alternates'')
+
+-- function g_strcanon
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "valid_chars", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "substitutor", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "valid_chars", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "substitutor", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strcanon" g_strcanon :: 
+    CString ->                              -- string : TBasicType TUTF8
+    CString ->                              -- valid_chars : TBasicType TUTF8
+    Int8 ->                                 -- substitutor : TBasicType TInt8
+    IO CString
+
+
+strcanon ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    T.Text ->                               -- valid_chars
+    Int8 ->                                 -- substitutor
+    m T.Text
+strcanon string valid_chars substitutor = liftIO $ do
+    string' <- textToCString string
+    valid_chars' <- textToCString valid_chars
+    result <- g_strcanon string' valid_chars' substitutor
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    freeMem valid_chars'
+    return result'
+
+-- function g_strcasecmp
+-- Args : [Arg {argName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strcasecmp" g_strcasecmp :: 
+    CString ->                              -- s1 : TBasicType TUTF8
+    CString ->                              -- s2 : TBasicType TUTF8
+    IO Int32
+
+{-# DEPRECATED strcasecmp ["(Since version 2.2)","See g_strncasecmp() for a discussion of why this","    function is deprecated and how to replace it."]#-}
+strcasecmp ::
+    (MonadIO m) =>
+    T.Text ->                               -- s1
+    T.Text ->                               -- s2
+    m Int32
+strcasecmp s1 s2 = liftIO $ do
+    s1' <- textToCString s1
+    s2' <- textToCString s2
+    result <- g_strcasecmp s1' s2'
+    freeMem s1'
+    freeMem s2'
+    return result
+
+-- function g_strchomp
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strchomp" g_strchomp :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+strchomp ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    m T.Text
+strchomp string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strchomp string'
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+-- function g_strchug
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strchug" g_strchug :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+strchug ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    m T.Text
+strchug string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strchug string'
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+-- function g_strcmp0
+-- Args : [Arg {argName = "str1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strcmp0" g_strcmp0 :: 
+    CString ->                              -- str1 : TBasicType TUTF8
+    CString ->                              -- str2 : TBasicType TUTF8
+    IO Int32
+
+
+strcmp0 ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- str1
+    Maybe (T.Text) ->                       -- str2
+    m Int32
+strcmp0 str1 str2 = liftIO $ do
+    maybeStr1 <- case str1 of
+        Nothing -> return nullPtr
+        Just jStr1 -> do
+            jStr1' <- textToCString jStr1
+            return jStr1'
+    maybeStr2 <- case str2 of
+        Nothing -> return nullPtr
+        Just jStr2 -> do
+            jStr2' <- textToCString jStr2
+            return jStr2'
+    result <- g_strcmp0 maybeStr1 maybeStr2
+    freeMem maybeStr1
+    freeMem maybeStr2
+    return result
+
+-- function g_strcompress
+-- Args : [Arg {argName = "source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strcompress" g_strcompress :: 
+    CString ->                              -- source : TBasicType TUTF8
+    IO CString
+
+
+strcompress ::
+    (MonadIO m) =>
+    T.Text ->                               -- source
+    m T.Text
+strcompress source = liftIO $ do
+    source' <- textToCString source
+    result <- g_strcompress source'
+    result' <- cstringToText result
+    freeMem result
+    freeMem source'
+    return result'
+
+-- function g_strdelimit
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "delimiters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_delimiter", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "delimiters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_delimiter", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strdelimit" g_strdelimit :: 
+    CString ->                              -- string : TBasicType TUTF8
+    CString ->                              -- delimiters : TBasicType TUTF8
+    Int8 ->                                 -- new_delimiter : TBasicType TInt8
+    IO CString
+
+
+strdelimit ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    Maybe (T.Text) ->                       -- delimiters
+    Int8 ->                                 -- new_delimiter
+    m T.Text
+strdelimit string delimiters new_delimiter = liftIO $ do
+    string' <- textToCString string
+    maybeDelimiters <- case delimiters of
+        Nothing -> return nullPtr
+        Just jDelimiters -> do
+            jDelimiters' <- textToCString jDelimiters
+            return jDelimiters'
+    result <- g_strdelimit string' maybeDelimiters new_delimiter
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    freeMem maybeDelimiters
+    return result'
+
+-- function g_strdown
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strdown" g_strdown :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+{-# DEPRECATED strdown ["(Since version 2.2)","This function is totally broken for the reasons discussed","in the g_strncasecmp() docs - use g_ascii_strdown() or g_utf8_strdown()","instead."]#-}
+strdown ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    m T.Text
+strdown string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strdown string'
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+-- function g_strdup
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strdup" g_strdup :: 
+    CString ->                              -- str : TBasicType TUTF8
+    IO CString
+
+
+strdup ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    m T.Text
+strdup str = liftIO $ do
+    str' <- textToCString str
+    result <- g_strdup str'
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_strerror
+-- Args : [Arg {argName = "errnum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "errnum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strerror" g_strerror :: 
+    Int32 ->                                -- errnum : TBasicType TInt32
+    IO CString
+
+
+strerror ::
+    (MonadIO m) =>
+    Int32 ->                                -- errnum
+    m T.Text
+strerror errnum = liftIO $ do
+    result <- g_strerror errnum
+    result' <- cstringToText result
+    return result'
+
+-- function g_strescape
+-- Args : [Arg {argName = "source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "exceptions", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "exceptions", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strescape" g_strescape :: 
+    CString ->                              -- source : TBasicType TUTF8
+    CString ->                              -- exceptions : TBasicType TUTF8
+    IO CString
+
+
+strescape ::
+    (MonadIO m) =>
+    T.Text ->                               -- source
+    T.Text ->                               -- exceptions
+    m T.Text
+strescape source exceptions = liftIO $ do
+    source' <- textToCString source
+    exceptions' <- textToCString exceptions
+    result <- g_strescape source' exceptions'
+    result' <- cstringToText result
+    freeMem result
+    freeMem source'
+    freeMem exceptions'
+    return result'
+
+-- function g_strfreev
+-- Args : [Arg {argName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strfreev" g_strfreev :: 
+    CString ->                              -- str_array : TBasicType TUTF8
+    IO ()
+
+
+strfreev ::
+    (MonadIO m) =>
+    T.Text ->                               -- str_array
+    m ()
+strfreev str_array = liftIO $ do
+    str_array' <- textToCString str_array
+    g_strfreev str_array'
+    freeMem str_array'
+    return ()
+
+-- function g_string_new
+-- Args : [Arg {argName = "init", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "init", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_new" g_string_new :: 
+    CString ->                              -- init : TBasicType TUTF8
+    IO (Ptr String)
+
+
+stringNew ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- init
+    m String
+stringNew init = liftIO $ do
+    maybeInit <- case init of
+        Nothing -> return nullPtr
+        Just jInit -> do
+            jInit' <- textToCString jInit
+            return jInit'
+    result <- g_string_new maybeInit
+    result' <- (wrapBoxed String) result
+    freeMem maybeInit
+    return result'
+
+-- function g_string_new_len
+-- Args : [Arg {argName = "init", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "init", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_new_len" g_string_new_len :: 
+    CString ->                              -- init : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO (Ptr String)
+
+
+stringNewLen ::
+    (MonadIO m) =>
+    T.Text ->                               -- init
+    Int64 ->                                -- len
+    m String
+stringNewLen init len = liftIO $ do
+    init' <- textToCString init
+    result <- g_string_new_len init' len
+    result' <- (wrapBoxed String) result
+    freeMem init'
+    return result'
+
+-- function g_string_sized_new
+-- Args : [Arg {argName = "dfl_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dfl_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "String"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_string_sized_new" g_string_sized_new :: 
+    Word64 ->                               -- dfl_size : TBasicType TUInt64
+    IO (Ptr String)
+
+
+stringSizedNew ::
+    (MonadIO m) =>
+    Word64 ->                               -- dfl_size
+    m String
+stringSizedNew dfl_size = liftIO $ do
+    result <- g_string_sized_new dfl_size
+    result' <- (wrapBoxed String) result
+    return result'
+
+-- function g_strip_context
+-- Args : [Arg {argName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgval", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msgval", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strip_context" g_strip_context :: 
+    CString ->                              -- msgid : TBasicType TUTF8
+    CString ->                              -- msgval : TBasicType TUTF8
+    IO CString
+
+
+stripContext ::
+    (MonadIO m) =>
+    T.Text ->                               -- msgid
+    T.Text ->                               -- msgval
+    m T.Text
+stripContext msgid msgval = liftIO $ do
+    msgid' <- textToCString msgid
+    msgval' <- textToCString msgval
+    result <- g_strip_context msgid' msgval'
+    result' <- cstringToText result
+    freeMem msgid'
+    freeMem msgval'
+    return result'
+
+-- function g_strjoinv
+-- Args : [Arg {argName = "separator", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "separator", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strjoinv" g_strjoinv :: 
+    CString ->                              -- separator : TBasicType TUTF8
+    CString ->                              -- str_array : TBasicType TUTF8
+    IO CString
+
+
+strjoinv ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- separator
+    T.Text ->                               -- str_array
+    m T.Text
+strjoinv separator str_array = liftIO $ do
+    maybeSeparator <- case separator of
+        Nothing -> return nullPtr
+        Just jSeparator -> do
+            jSeparator' <- textToCString jSeparator
+            return jSeparator'
+    str_array' <- textToCString str_array
+    result <- g_strjoinv maybeSeparator str_array'
+    result' <- cstringToText result
+    freeMem result
+    freeMem maybeSeparator
+    freeMem str_array'
+    return result'
+
+-- function g_strlcat
+-- Args : [Arg {argName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strlcat" g_strlcat :: 
+    CString ->                              -- dest : TBasicType TUTF8
+    CString ->                              -- src : TBasicType TUTF8
+    Word64 ->                               -- dest_size : TBasicType TUInt64
+    IO Word64
+
+
+strlcat ::
+    (MonadIO m) =>
+    T.Text ->                               -- dest
+    T.Text ->                               -- src
+    Word64 ->                               -- dest_size
+    m Word64
+strlcat dest src dest_size = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_strlcat dest' src' dest_size
+    freeMem dest'
+    freeMem src'
+    return result
+
+-- function g_strlcpy
+-- Args : [Arg {argName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strlcpy" g_strlcpy :: 
+    CString ->                              -- dest : TBasicType TUTF8
+    CString ->                              -- src : TBasicType TUTF8
+    Word64 ->                               -- dest_size : TBasicType TUInt64
+    IO Word64
+
+
+strlcpy ::
+    (MonadIO m) =>
+    T.Text ->                               -- dest
+    T.Text ->                               -- src
+    Word64 ->                               -- dest_size
+    m Word64
+strlcpy dest src dest_size = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_strlcpy dest' src' dest_size
+    freeMem dest'
+    freeMem src'
+    return result
+
+-- function g_strncasecmp
+-- Args : [Arg {argName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strncasecmp" g_strncasecmp :: 
+    CString ->                              -- s1 : TBasicType TUTF8
+    CString ->                              -- s2 : TBasicType TUTF8
+    Word32 ->                               -- n : TBasicType TUInt32
+    IO Int32
+
+{-# DEPRECATED strncasecmp ["(Since version 2.2)","The problem with g_strncasecmp() is that it does","    the comparison by calling toupper()/tolower(). These functions","    are locale-specific and operate on single bytes. However, it is","    impossible to handle things correctly from an internationalization","    standpoint by operating on bytes, since characters may be multibyte.","    Thus g_strncasecmp() is broken if your string is guaranteed to be","    ASCII, since it is locale-sensitive, and it's broken if your string","    is localized, since it doesn't work on many encodings at all,","    including UTF-8, EUC-JP, etc.","","    There are therefore two replacement techniques: g_ascii_strncasecmp(),","    which only works on ASCII and is not locale-sensitive, and","    g_utf8_casefold() followed by strcmp() on the resulting strings,","    which is good for case-insensitive sorting of UTF-8."]#-}
+strncasecmp ::
+    (MonadIO m) =>
+    T.Text ->                               -- s1
+    T.Text ->                               -- s2
+    Word32 ->                               -- n
+    m Int32
+strncasecmp s1 s2 n = liftIO $ do
+    s1' <- textToCString s1
+    s2' <- textToCString s2
+    result <- g_strncasecmp s1' s2' n
+    freeMem s1'
+    freeMem s2'
+    return result
+
+-- function g_strndup
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strndup" g_strndup :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Word64 ->                               -- n : TBasicType TUInt64
+    IO CString
+
+
+strndup ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Word64 ->                               -- n
+    m T.Text
+strndup str n = liftIO $ do
+    str' <- textToCString str
+    result <- g_strndup str' n
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_strnfill
+-- Args : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fill_char", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fill_char", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strnfill" g_strnfill :: 
+    Word64 ->                               -- length : TBasicType TUInt64
+    Int8 ->                                 -- fill_char : TBasicType TInt8
+    IO CString
+
+
+strnfill ::
+    (MonadIO m) =>
+    Word64 ->                               -- length
+    Int8 ->                                 -- fill_char
+    m T.Text
+strnfill length_ fill_char = liftIO $ do
+    result <- g_strnfill length_ fill_char
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+-- function g_strreverse
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strreverse" g_strreverse :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+
+strreverse ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    m T.Text
+strreverse string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strreverse string'
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+-- function g_strrstr
+-- Args : [Arg {argName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strrstr" g_strrstr :: 
+    CString ->                              -- haystack : TBasicType TUTF8
+    CString ->                              -- needle : TBasicType TUTF8
+    IO CString
+
+
+strrstr ::
+    (MonadIO m) =>
+    T.Text ->                               -- haystack
+    T.Text ->                               -- needle
+    m T.Text
+strrstr haystack needle = liftIO $ do
+    haystack' <- textToCString haystack
+    needle' <- textToCString needle
+    result <- g_strrstr haystack' needle'
+    result' <- cstringToText result
+    freeMem result
+    freeMem haystack'
+    freeMem needle'
+    return result'
+
+-- function g_strrstr_len
+-- Args : [Arg {argName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "haystack_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "haystack_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strrstr_len" g_strrstr_len :: 
+    CString ->                              -- haystack : TBasicType TUTF8
+    Int64 ->                                -- haystack_len : TBasicType TInt64
+    CString ->                              -- needle : TBasicType TUTF8
+    IO CString
+
+
+strrstrLen ::
+    (MonadIO m) =>
+    T.Text ->                               -- haystack
+    Int64 ->                                -- haystack_len
+    T.Text ->                               -- needle
+    m T.Text
+strrstrLen haystack haystack_len needle = liftIO $ do
+    haystack' <- textToCString haystack
+    needle' <- textToCString needle
+    result <- g_strrstr_len haystack' haystack_len needle'
+    result' <- cstringToText result
+    freeMem result
+    freeMem haystack'
+    freeMem needle'
+    return result'
+
+-- function g_strsignal
+-- Args : [Arg {argName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strsignal" g_strsignal :: 
+    Int32 ->                                -- signum : TBasicType TInt32
+    IO CString
+
+
+strsignal ::
+    (MonadIO m) =>
+    Int32 ->                                -- signum
+    m T.Text
+strsignal signum = liftIO $ do
+    result <- g_strsignal signum
+    result' <- cstringToText result
+    return result'
+
+-- function g_strstr_len
+-- Args : [Arg {argName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "haystack_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "haystack_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strstr_len" g_strstr_len :: 
+    CString ->                              -- haystack : TBasicType TUTF8
+    Int64 ->                                -- haystack_len : TBasicType TInt64
+    CString ->                              -- needle : TBasicType TUTF8
+    IO CString
+
+
+strstrLen ::
+    (MonadIO m) =>
+    T.Text ->                               -- haystack
+    Int64 ->                                -- haystack_len
+    T.Text ->                               -- needle
+    m T.Text
+strstrLen haystack haystack_len needle = liftIO $ do
+    haystack' <- textToCString haystack
+    needle' <- textToCString needle
+    result <- g_strstr_len haystack' haystack_len needle'
+    result' <- cstringToText result
+    freeMem result
+    freeMem haystack'
+    freeMem needle'
+    return result'
+
+-- function g_strtod
+-- Args : [Arg {argName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strtod" g_strtod :: 
+    CString ->                              -- nptr : TBasicType TUTF8
+    CString ->                              -- endptr : TBasicType TUTF8
+    IO CDouble
+
+
+strtod ::
+    (MonadIO m) =>
+    T.Text ->                               -- nptr
+    T.Text ->                               -- endptr
+    m Double
+strtod nptr endptr = liftIO $ do
+    nptr' <- textToCString nptr
+    endptr' <- textToCString endptr
+    result <- g_strtod nptr' endptr'
+    let result' = realToFrac result
+    freeMem nptr'
+    freeMem endptr'
+    return result'
+
+-- function g_strup
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strup" g_strup :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CString
+
+{-# DEPRECATED strup ["(Since version 2.2)","This function is totally broken for the reasons","    discussed in the g_strncasecmp() docs - use g_ascii_strup()","    or g_utf8_strup() instead."]#-}
+strup ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    m T.Text
+strup string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strup string'
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+-- function g_strv_contains
+-- Args : [Arg {argName = "strv", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "strv", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strv_contains" g_strv_contains :: 
+    CString ->                              -- strv : TBasicType TUTF8
+    CString ->                              -- str : TBasicType TUTF8
+    IO CInt
+
+
+strvContains ::
+    (MonadIO m) =>
+    T.Text ->                               -- strv
+    T.Text ->                               -- str
+    m Bool
+strvContains strv str = liftIO $ do
+    strv' <- textToCString strv
+    str' <- textToCString str
+    result <- g_strv_contains strv' str'
+    let result' = (/= 0) result
+    freeMem strv'
+    freeMem str'
+    return result'
+
+-- function g_strv_get_type
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strv_get_type" g_strv_get_type :: 
+    IO CGType
+
+
+strvGetType ::
+    (MonadIO m) =>
+    m GType
+strvGetType  = liftIO $ do
+    result <- g_strv_get_type
+    let result' = GType result
+    return result'
+
+-- function g_strv_length
+-- Args : [Arg {argName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_strv_length" g_strv_length :: 
+    CString ->                              -- str_array : TBasicType TUTF8
+    IO Word32
+
+
+strvLength ::
+    (MonadIO m) =>
+    T.Text ->                               -- str_array
+    m Word32
+strvLength str_array = liftIO $ do
+    str_array' <- textToCString str_array
+    result <- g_strv_length str_array'
+    freeMem str_array'
+    return result
+
+-- function g_test_add_data_func
+-- Args : [Arg {argName = "testpath", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_func", argType = TInterface "GLib" "TestDataFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "testpath", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_func", argType = TInterface "GLib" "TestDataFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_add_data_func" g_test_add_data_func :: 
+    CString ->                              -- testpath : TBasicType TUTF8
+    Ptr () ->                               -- test_data : TBasicType TVoid
+    FunPtr TestDataFuncC ->                 -- test_func : TInterface "GLib" "TestDataFunc"
+    IO ()
+
+
+testAddDataFunc ::
+    (MonadIO m) =>
+    T.Text ->                               -- testpath
+    Ptr () ->                               -- test_data
+    TestDataFunc ->                         -- test_func
+    m ()
+testAddDataFunc testpath test_data test_func = liftIO $ do
+    testpath' <- textToCString testpath
+    ptrtest_func <- callocBytes $ sizeOf (undefined :: FunPtr TestDataFuncC)
+    test_func' <- mkTestDataFunc (testDataFuncWrapper (Just ptrtest_func) test_func)
+    poke ptrtest_func test_func'
+    g_test_add_data_func testpath' test_data test_func'
+    freeMem testpath'
+    return ()
+
+-- function g_test_add_func
+-- Args : [Arg {argName = "testpath", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_func", argType = TInterface "GLib" "TestFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "testpath", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_func", argType = TInterface "GLib" "TestFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_add_func" g_test_add_func :: 
+    CString ->                              -- testpath : TBasicType TUTF8
+    FunPtr TestFuncC ->                     -- test_func : TInterface "GLib" "TestFunc"
+    IO ()
+
+
+testAddFunc ::
+    (MonadIO m) =>
+    T.Text ->                               -- testpath
+    TestFunc ->                             -- test_func
+    m ()
+testAddFunc testpath test_func = liftIO $ do
+    testpath' <- textToCString testpath
+    ptrtest_func <- callocBytes $ sizeOf (undefined :: FunPtr TestFuncC)
+    test_func' <- mkTestFunc (testFuncWrapper (Just ptrtest_func) test_func)
+    poke ptrtest_func test_func'
+    g_test_add_func testpath' test_func'
+    freeMem testpath'
+    return ()
+
+-- function g_test_assert_expected_messages_internal
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_assert_expected_messages_internal" g_test_assert_expected_messages_internal :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt32
+    CString ->                              -- func : TBasicType TUTF8
+    IO ()
+
+
+testAssertExpectedMessagesInternal ::
+    (MonadIO m) =>
+    T.Text ->                               -- domain
+    T.Text ->                               -- file
+    Int32 ->                                -- line
+    T.Text ->                               -- func
+    m ()
+testAssertExpectedMessagesInternal domain file line func = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    g_test_assert_expected_messages_internal domain' file' line func'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    return ()
+
+-- function g_test_bug
+-- Args : [Arg {argName = "bug_uri_snippet", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "bug_uri_snippet", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_bug" g_test_bug :: 
+    CString ->                              -- bug_uri_snippet : TBasicType TUTF8
+    IO ()
+
+
+testBug ::
+    (MonadIO m) =>
+    T.Text ->                               -- bug_uri_snippet
+    m ()
+testBug bug_uri_snippet = liftIO $ do
+    bug_uri_snippet' <- textToCString bug_uri_snippet
+    g_test_bug bug_uri_snippet'
+    freeMem bug_uri_snippet'
+    return ()
+
+-- function g_test_bug_base
+-- Args : [Arg {argName = "uri_pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "uri_pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_bug_base" g_test_bug_base :: 
+    CString ->                              -- uri_pattern : TBasicType TUTF8
+    IO ()
+
+
+testBugBase ::
+    (MonadIO m) =>
+    T.Text ->                               -- uri_pattern
+    m ()
+testBugBase uri_pattern = liftIO $ do
+    uri_pattern' <- textToCString uri_pattern
+    g_test_bug_base uri_pattern'
+    freeMem uri_pattern'
+    return ()
+
+-- function g_test_expect_message
+-- Args : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_level", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_level", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_expect_message" g_test_expect_message :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CUInt ->                                -- log_level : TInterface "GLib" "LogLevelFlags"
+    CString ->                              -- pattern : TBasicType TUTF8
+    IO ()
+
+
+testExpectMessage ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- log_domain
+    [LogLevelFlags] ->                      -- log_level
+    T.Text ->                               -- pattern
+    m ()
+testExpectMessage log_domain log_level pattern = liftIO $ do
+    maybeLog_domain <- case log_domain of
+        Nothing -> return nullPtr
+        Just jLog_domain -> do
+            jLog_domain' <- textToCString jLog_domain
+            return jLog_domain'
+    let log_level' = gflagsToWord log_level
+    pattern' <- textToCString pattern
+    g_test_expect_message maybeLog_domain log_level' pattern'
+    freeMem maybeLog_domain
+    freeMem pattern'
+    return ()
+
+-- function g_test_fail
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_fail" g_test_fail :: 
+    IO ()
+
+
+testFail ::
+    (MonadIO m) =>
+    m ()
+testFail  = liftIO $ do
+    g_test_fail
+    return ()
+
+-- function g_test_failed
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_failed" g_test_failed :: 
+    IO CInt
+
+
+testFailed ::
+    (MonadIO m) =>
+    m Bool
+testFailed  = liftIO $ do
+    result <- g_test_failed
+    let result' = (/= 0) result
+    return result'
+
+-- function g_test_get_dir
+-- Args : [Arg {argName = "file_type", argType = TInterface "GLib" "TestFileType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "file_type", argType = TInterface "GLib" "TestFileType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_get_dir" g_test_get_dir :: 
+    CUInt ->                                -- file_type : TInterface "GLib" "TestFileType"
+    IO CString
+
+
+testGetDir ::
+    (MonadIO m) =>
+    TestFileType ->                         -- file_type
+    m T.Text
+testGetDir file_type = liftIO $ do
+    let file_type' = (fromIntegral . fromEnum) file_type
+    result <- g_test_get_dir file_type'
+    result' <- cstringToText result
+    return result'
+
+-- function g_test_incomplete
+-- Args : [Arg {argName = "msg", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "msg", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_incomplete" g_test_incomplete :: 
+    CString ->                              -- msg : TBasicType TUTF8
+    IO ()
+
+
+testIncomplete ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- msg
+    m ()
+testIncomplete msg = liftIO $ do
+    maybeMsg <- case msg of
+        Nothing -> return nullPtr
+        Just jMsg -> do
+            jMsg' <- textToCString jMsg
+            return jMsg'
+    g_test_incomplete maybeMsg
+    freeMem maybeMsg
+    return ()
+
+-- function g_test_log_type_name
+-- Args : [Arg {argName = "log_type", argType = TInterface "GLib" "TestLogType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "log_type", argType = TInterface "GLib" "TestLogType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_log_type_name" g_test_log_type_name :: 
+    CUInt ->                                -- log_type : TInterface "GLib" "TestLogType"
+    IO CString
+
+
+testLogTypeName ::
+    (MonadIO m) =>
+    TestLogType ->                          -- log_type
+    m T.Text
+testLogTypeName log_type = liftIO $ do
+    let log_type' = (fromIntegral . fromEnum) log_type
+    result <- g_test_log_type_name log_type'
+    result' <- cstringToText result
+    return result'
+
+-- function g_test_queue_destroy
+-- Args : [Arg {argName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "destroy_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_queue_destroy" g_test_queue_destroy :: 
+    FunPtr DestroyNotifyC ->                -- destroy_func : TInterface "GLib" "DestroyNotify"
+    Ptr () ->                               -- destroy_data : TBasicType TVoid
+    IO ()
+
+
+testQueueDestroy ::
+    (MonadIO m) =>
+    DestroyNotify ->                        -- destroy_func
+    Ptr () ->                               -- destroy_data
+    m ()
+testQueueDestroy destroy_func destroy_data = liftIO $ do
+    ptrdestroy_func <- callocBytes $ sizeOf (undefined :: FunPtr DestroyNotifyC)
+    destroy_func' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroy_func) destroy_func)
+    poke ptrdestroy_func destroy_func'
+    g_test_queue_destroy destroy_func' destroy_data
+    return ()
+
+-- function g_test_queue_free
+-- Args : [Arg {argName = "gfree_pointer", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "gfree_pointer", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_queue_free" g_test_queue_free :: 
+    Ptr () ->                               -- gfree_pointer : TBasicType TVoid
+    IO ()
+
+
+testQueueFree ::
+    (MonadIO m) =>
+    Ptr () ->                               -- gfree_pointer
+    m ()
+testQueueFree gfree_pointer = liftIO $ do
+    g_test_queue_free gfree_pointer
+    return ()
+
+-- function g_test_rand_double
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_rand_double" g_test_rand_double :: 
+    IO CDouble
+
+
+testRandDouble ::
+    (MonadIO m) =>
+    m Double
+testRandDouble  = liftIO $ do
+    result <- g_test_rand_double
+    let result' = realToFrac result
+    return result'
+
+-- function g_test_rand_double_range
+-- Args : [Arg {argName = "range_start", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "range_end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "range_start", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "range_end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_rand_double_range" g_test_rand_double_range :: 
+    CDouble ->                              -- range_start : TBasicType TDouble
+    CDouble ->                              -- range_end : TBasicType TDouble
+    IO CDouble
+
+
+testRandDoubleRange ::
+    (MonadIO m) =>
+    Double ->                               -- range_start
+    Double ->                               -- range_end
+    m Double
+testRandDoubleRange range_start range_end = liftIO $ do
+    let range_start' = realToFrac range_start
+    let range_end' = realToFrac range_end
+    result <- g_test_rand_double_range range_start' range_end'
+    let result' = realToFrac result
+    return result'
+
+-- function g_test_rand_int
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_rand_int" g_test_rand_int :: 
+    IO Int32
+
+
+testRandInt ::
+    (MonadIO m) =>
+    m Int32
+testRandInt  = liftIO $ do
+    result <- g_test_rand_int
+    return result
+
+-- function g_test_rand_int_range
+-- Args : [Arg {argName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_rand_int_range" g_test_rand_int_range :: 
+    Int32 ->                                -- begin : TBasicType TInt32
+    Int32 ->                                -- end : TBasicType TInt32
+    IO Int32
+
+
+testRandIntRange ::
+    (MonadIO m) =>
+    Int32 ->                                -- begin
+    Int32 ->                                -- end
+    m Int32
+testRandIntRange begin end = liftIO $ do
+    result <- g_test_rand_int_range begin end
+    return result
+
+-- function g_test_run
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_run" g_test_run :: 
+    IO Int32
+
+
+testRun ::
+    (MonadIO m) =>
+    m Int32
+testRun  = liftIO $ do
+    result <- g_test_run
+    return result
+
+-- function g_test_run_suite
+-- Args : [Arg {argName = "suite", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "suite", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_run_suite" g_test_run_suite :: 
+    Ptr TestSuite ->                        -- suite : TInterface "GLib" "TestSuite"
+    IO Int32
+
+
+testRunSuite ::
+    (MonadIO m) =>
+    TestSuite ->                            -- suite
+    m Int32
+testRunSuite suite = liftIO $ do
+    let suite' = unsafeManagedPtrGetPtr suite
+    result <- g_test_run_suite suite'
+    touchManagedPtr suite
+    return result
+
+-- function g_test_set_nonfatal_assertions
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_set_nonfatal_assertions" g_test_set_nonfatal_assertions :: 
+    IO ()
+
+
+testSetNonfatalAssertions ::
+    (MonadIO m) =>
+    m ()
+testSetNonfatalAssertions  = liftIO $ do
+    g_test_set_nonfatal_assertions
+    return ()
+
+-- function g_test_skip
+-- Args : [Arg {argName = "msg", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "msg", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_skip" g_test_skip :: 
+    CString ->                              -- msg : TBasicType TUTF8
+    IO ()
+
+
+testSkip ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- msg
+    m ()
+testSkip msg = liftIO $ do
+    maybeMsg <- case msg of
+        Nothing -> return nullPtr
+        Just jMsg -> do
+            jMsg' <- textToCString jMsg
+            return jMsg'
+    g_test_skip maybeMsg
+    freeMem maybeMsg
+    return ()
+
+-- function g_test_subprocess
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_subprocess" g_test_subprocess :: 
+    IO CInt
+
+
+testSubprocess ::
+    (MonadIO m) =>
+    m Bool
+testSubprocess  = liftIO $ do
+    result <- g_test_subprocess
+    let result' = (/= 0) result
+    return result'
+
+-- function g_test_timer_elapsed
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_timer_elapsed" g_test_timer_elapsed :: 
+    IO CDouble
+
+
+testTimerElapsed ::
+    (MonadIO m) =>
+    m Double
+testTimerElapsed  = liftIO $ do
+    result <- g_test_timer_elapsed
+    let result' = realToFrac result
+    return result'
+
+-- function g_test_timer_last
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_timer_last" g_test_timer_last :: 
+    IO CDouble
+
+
+testTimerLast ::
+    (MonadIO m) =>
+    m Double
+testTimerLast  = liftIO $ do
+    result <- g_test_timer_last
+    let result' = realToFrac result
+    return result'
+
+-- function g_test_timer_start
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_timer_start" g_test_timer_start :: 
+    IO ()
+
+
+testTimerStart ::
+    (MonadIO m) =>
+    m ()
+testTimerStart  = liftIO $ do
+    g_test_timer_start
+    return ()
+
+-- function g_test_trap_assertions
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "assertion_flags", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "assertion_flags", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_trap_assertions" g_test_trap_assertions :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt32
+    CString ->                              -- func : TBasicType TUTF8
+    Word64 ->                               -- assertion_flags : TBasicType TUInt64
+    CString ->                              -- pattern : TBasicType TUTF8
+    IO ()
+
+
+testTrapAssertions ::
+    (MonadIO m) =>
+    T.Text ->                               -- domain
+    T.Text ->                               -- file
+    Int32 ->                                -- line
+    T.Text ->                               -- func
+    Word64 ->                               -- assertion_flags
+    T.Text ->                               -- pattern
+    m ()
+testTrapAssertions domain file line func assertion_flags pattern = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    pattern' <- textToCString pattern
+    g_test_trap_assertions domain' file' line func' assertion_flags pattern'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem pattern'
+    return ()
+
+-- function g_test_trap_fork
+-- Args : [Arg {argName = "usec_timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_trap_flags", argType = TInterface "GLib" "TestTrapFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "usec_timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_trap_flags", argType = TInterface "GLib" "TestTrapFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_trap_fork" g_test_trap_fork :: 
+    Word64 ->                               -- usec_timeout : TBasicType TUInt64
+    CUInt ->                                -- test_trap_flags : TInterface "GLib" "TestTrapFlags"
+    IO CInt
+
+{-# DEPRECATED testTrapFork ["This function is implemented only on Unix platforms,","and is not always reliable due to problems inherent in","fork-without-exec. Use g_test_trap_subprocess() instead."]#-}
+testTrapFork ::
+    (MonadIO m) =>
+    Word64 ->                               -- usec_timeout
+    [TestTrapFlags] ->                      -- test_trap_flags
+    m Bool
+testTrapFork usec_timeout test_trap_flags = liftIO $ do
+    let test_trap_flags' = gflagsToWord test_trap_flags
+    result <- g_test_trap_fork usec_timeout test_trap_flags'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_test_trap_has_passed
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_trap_has_passed" g_test_trap_has_passed :: 
+    IO CInt
+
+
+testTrapHasPassed ::
+    (MonadIO m) =>
+    m Bool
+testTrapHasPassed  = liftIO $ do
+    result <- g_test_trap_has_passed
+    let result' = (/= 0) result
+    return result'
+
+-- function g_test_trap_reached_timeout
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_trap_reached_timeout" g_test_trap_reached_timeout :: 
+    IO CInt
+
+
+testTrapReachedTimeout ::
+    (MonadIO m) =>
+    m Bool
+testTrapReachedTimeout  = liftIO $ do
+    result <- g_test_trap_reached_timeout
+    let result' = (/= 0) result
+    return result'
+
+-- function g_test_trap_subprocess
+-- Args : [Arg {argName = "test_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "usec_timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_flags", argType = TInterface "GLib" "TestSubprocessFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "test_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "usec_timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "test_flags", argType = TInterface "GLib" "TestSubprocessFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_trap_subprocess" g_test_trap_subprocess :: 
+    CString ->                              -- test_path : TBasicType TUTF8
+    Word64 ->                               -- usec_timeout : TBasicType TUInt64
+    CUInt ->                                -- test_flags : TInterface "GLib" "TestSubprocessFlags"
+    IO ()
+
+
+testTrapSubprocess ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- test_path
+    Word64 ->                               -- usec_timeout
+    [TestSubprocessFlags] ->                -- test_flags
+    m ()
+testTrapSubprocess test_path usec_timeout test_flags = liftIO $ do
+    maybeTest_path <- case test_path of
+        Nothing -> return nullPtr
+        Just jTest_path -> do
+            jTest_path' <- textToCString jTest_path
+            return jTest_path'
+    let test_flags' = gflagsToWord test_flags
+    g_test_trap_subprocess maybeTest_path usec_timeout test_flags'
+    freeMem maybeTest_path
+    return ()
+
+-- function g_thread_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_error_quark" g_thread_error_quark :: 
+    IO Word32
+
+
+threadErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+threadErrorQuark  = liftIO $ do
+    result <- g_thread_error_quark
+    return result
+
+-- function g_thread_exit
+-- Args : [Arg {argName = "retval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "retval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_exit" g_thread_exit :: 
+    Ptr () ->                               -- retval : TBasicType TVoid
+    IO ()
+
+
+threadExit ::
+    (MonadIO m) =>
+    Ptr () ->                               -- retval
+    m ()
+threadExit retval = liftIO $ do
+    g_thread_exit retval
+    return ()
+
+-- function g_thread_pool_get_max_idle_time
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_get_max_idle_time" g_thread_pool_get_max_idle_time :: 
+    IO Word32
+
+
+threadPoolGetMaxIdleTime ::
+    (MonadIO m) =>
+    m Word32
+threadPoolGetMaxIdleTime  = liftIO $ do
+    result <- g_thread_pool_get_max_idle_time
+    return result
+
+-- function g_thread_pool_get_max_unused_threads
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_get_max_unused_threads" g_thread_pool_get_max_unused_threads :: 
+    IO Int32
+
+
+threadPoolGetMaxUnusedThreads ::
+    (MonadIO m) =>
+    m Int32
+threadPoolGetMaxUnusedThreads  = liftIO $ do
+    result <- g_thread_pool_get_max_unused_threads
+    return result
+
+-- function g_thread_pool_get_num_unused_threads
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_get_num_unused_threads" g_thread_pool_get_num_unused_threads :: 
+    IO Word32
+
+
+threadPoolGetNumUnusedThreads ::
+    (MonadIO m) =>
+    m Word32
+threadPoolGetNumUnusedThreads  = liftIO $ do
+    result <- g_thread_pool_get_num_unused_threads
+    return result
+
+-- function g_thread_pool_set_max_idle_time
+-- Args : [Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_set_max_idle_time" g_thread_pool_set_max_idle_time :: 
+    Word32 ->                               -- interval : TBasicType TUInt32
+    IO ()
+
+
+threadPoolSetMaxIdleTime ::
+    (MonadIO m) =>
+    Word32 ->                               -- interval
+    m ()
+threadPoolSetMaxIdleTime interval = liftIO $ do
+    g_thread_pool_set_max_idle_time interval
+    return ()
+
+-- function g_thread_pool_set_max_unused_threads
+-- Args : [Arg {argName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_set_max_unused_threads" g_thread_pool_set_max_unused_threads :: 
+    Int32 ->                                -- max_threads : TBasicType TInt32
+    IO ()
+
+
+threadPoolSetMaxUnusedThreads ::
+    (MonadIO m) =>
+    Int32 ->                                -- max_threads
+    m ()
+threadPoolSetMaxUnusedThreads max_threads = liftIO $ do
+    g_thread_pool_set_max_unused_threads max_threads
+    return ()
+
+-- function g_thread_pool_stop_unused_threads
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_pool_stop_unused_threads" g_thread_pool_stop_unused_threads :: 
+    IO ()
+
+
+threadPoolStopUnusedThreads ::
+    (MonadIO m) =>
+    m ()
+threadPoolStopUnusedThreads  = liftIO $ do
+    g_thread_pool_stop_unused_threads
+    return ()
+
+-- function g_thread_self
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TInterface "GLib" "Thread"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_self" g_thread_self :: 
+    IO (Ptr Thread)
+
+
+threadSelf ::
+    (MonadIO m) =>
+    m Thread
+threadSelf  = liftIO $ do
+    result <- g_thread_self
+    result' <- (wrapBoxed Thread) result
+    return result'
+
+-- function g_thread_yield
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_yield" g_thread_yield :: 
+    IO ()
+
+
+threadYield ::
+    (MonadIO m) =>
+    m ()
+threadYield  = liftIO $ do
+    g_thread_yield
+    return ()
+
+-- function g_time_val_from_iso8601
+-- Args : [Arg {argName = "iso_date", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TInterface "GLib" "TimeVal", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "iso_date", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_time_val_from_iso8601" g_time_val_from_iso8601 :: 
+    CString ->                              -- iso_date : TBasicType TUTF8
+    Ptr TimeVal ->                          -- time_ : TInterface "GLib" "TimeVal"
+    IO CInt
+
+
+timeValFromIso8601 ::
+    (MonadIO m) =>
+    T.Text ->                               -- iso_date
+    m (Bool,TimeVal)
+timeValFromIso8601 iso_date = liftIO $ do
+    iso_date' <- textToCString iso_date
+    time_ <- callocBytes 16 :: IO (Ptr TimeVal)
+    result <- g_time_val_from_iso8601 iso_date' time_
+    let result' = (/= 0) result
+    time_' <- (wrapPtr TimeVal) time_
+    freeMem iso_date'
+    return (result', time_')
+
+-- function g_timeout_add_full
+-- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timeout_add_full" g_timeout_add_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    Word32 ->                               -- interval : TBasicType TUInt32
+    FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+timeoutAdd ::
+    (MonadIO m) =>
+    Int32 ->                                -- priority
+    Word32 ->                               -- interval
+    SourceFunc ->                           -- function
+    m Word32
+timeoutAdd priority interval function = liftIO $ do
+    function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_timeout_add_full priority interval function' data_ notify
+    return result
+
+-- function g_timeout_add_seconds_full
+-- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timeout_add_seconds_full" g_timeout_add_seconds_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    Word32 ->                               -- interval : TBasicType TUInt32
+    FunPtr SourceFuncC ->                   -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+timeoutAddSeconds ::
+    (MonadIO m) =>
+    Int32 ->                                -- priority
+    Word32 ->                               -- interval
+    SourceFunc ->                           -- function
+    m Word32
+timeoutAddSeconds priority interval function = liftIO $ do
+    function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_timeout_add_seconds_full priority interval function' data_ notify
+    return result
+
+-- function g_timeout_source_new
+-- Args : [Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timeout_source_new" g_timeout_source_new :: 
+    Word32 ->                               -- interval : TBasicType TUInt32
+    IO (Ptr Source)
+
+
+timeoutSourceNew ::
+    (MonadIO m) =>
+    Word32 ->                               -- interval
+    m Source
+timeoutSourceNew interval = liftIO $ do
+    result <- g_timeout_source_new interval
+    result' <- (wrapBoxed Source) result
+    return result'
+
+-- function g_timeout_source_new_seconds
+-- Args : [Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_timeout_source_new_seconds" g_timeout_source_new_seconds :: 
+    Word32 ->                               -- interval : TBasicType TUInt32
+    IO (Ptr Source)
+
+
+timeoutSourceNewSeconds ::
+    (MonadIO m) =>
+    Word32 ->                               -- interval
+    m Source
+timeoutSourceNewSeconds interval = liftIO $ do
+    result <- g_timeout_source_new_seconds interval
+    result' <- (wrapBoxed Source) result
+    return result'
+
+-- function g_trash_stack_height
+-- Args : [Arg {argName = "stack_p", argType = TInterface "GLib" "TrashStack", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "stack_p", argType = TInterface "GLib" "TrashStack", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_trash_stack_height" g_trash_stack_height :: 
+    Ptr TrashStack ->                       -- stack_p : TInterface "GLib" "TrashStack"
+    IO Word32
+
+
+trashStackHeight ::
+    (MonadIO m) =>
+    TrashStack ->                           -- stack_p
+    m Word32
+trashStackHeight stack_p = liftIO $ do
+    let stack_p' = unsafeManagedPtrGetPtr stack_p
+    result <- g_trash_stack_height stack_p'
+    touchManagedPtr stack_p
+    return result
+
+-- function g_trash_stack_push
+-- Args : [Arg {argName = "stack_p", argType = TInterface "GLib" "TrashStack", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data_p", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "stack_p", argType = TInterface "GLib" "TrashStack", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data_p", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_trash_stack_push" g_trash_stack_push :: 
+    Ptr TrashStack ->                       -- stack_p : TInterface "GLib" "TrashStack"
+    Ptr () ->                               -- data_p : TBasicType TVoid
+    IO ()
+
+
+trashStackPush ::
+    (MonadIO m) =>
+    TrashStack ->                           -- stack_p
+    Ptr () ->                               -- data_p
+    m ()
+trashStackPush stack_p data_p = liftIO $ do
+    let stack_p' = unsafeManagedPtrGetPtr stack_p
+    g_trash_stack_push stack_p' data_p
+    touchManagedPtr stack_p
+    return ()
+
+-- function g_unichar_break_type
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "UnicodeBreakType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_break_type" g_unichar_break_type :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CUInt
+
+
+unicharBreakType ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m UnicodeBreakType
+unicharBreakType c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_break_type c'
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+-- function g_unichar_combining_class
+-- Args : [Arg {argName = "uc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "uc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_combining_class" g_unichar_combining_class :: 
+    CInt ->                                 -- uc : TBasicType TUniChar
+    IO Int32
+
+
+unicharCombiningClass ::
+    (MonadIO m) =>
+    Char ->                                 -- uc
+    m Int32
+unicharCombiningClass uc = liftIO $ do
+    let uc' = (fromIntegral . ord) uc
+    result <- g_unichar_combining_class uc'
+    return result
+
+-- function g_unichar_compose
+-- Args : [Arg {argName = "a", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "b", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "a", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "b", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_compose" g_unichar_compose :: 
+    CInt ->                                 -- a : TBasicType TUniChar
+    CInt ->                                 -- b : TBasicType TUniChar
+    CInt ->                                 -- ch : TBasicType TUniChar
+    IO CInt
+
+
+unicharCompose ::
+    (MonadIO m) =>
+    Char ->                                 -- a
+    Char ->                                 -- b
+    Char ->                                 -- ch
+    m Bool
+unicharCompose a b ch = liftIO $ do
+    let a' = (fromIntegral . ord) a
+    let b' = (fromIntegral . ord) b
+    let ch' = (fromIntegral . ord) ch
+    result <- g_unichar_compose a' b' ch'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_decompose
+-- Args : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "a", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "b", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "a", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "b", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_decompose" g_unichar_decompose :: 
+    CInt ->                                 -- ch : TBasicType TUniChar
+    CInt ->                                 -- a : TBasicType TUniChar
+    CInt ->                                 -- b : TBasicType TUniChar
+    IO CInt
+
+
+unicharDecompose ::
+    (MonadIO m) =>
+    Char ->                                 -- ch
+    Char ->                                 -- a
+    Char ->                                 -- b
+    m Bool
+unicharDecompose ch a b = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    let a' = (fromIntegral . ord) a
+    let b' = (fromIntegral . ord) b
+    result <- g_unichar_decompose ch' a' b'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_digit_value
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_digit_value" g_unichar_digit_value :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO Int32
+
+
+unicharDigitValue ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Int32
+unicharDigitValue c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_digit_value c'
+    return result
+
+-- function g_unichar_get_mirror_char
+-- Args : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mirrored_ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mirrored_ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_get_mirror_char" g_unichar_get_mirror_char :: 
+    CInt ->                                 -- ch : TBasicType TUniChar
+    CInt ->                                 -- mirrored_ch : TBasicType TUniChar
+    IO CInt
+
+
+unicharGetMirrorChar ::
+    (MonadIO m) =>
+    Char ->                                 -- ch
+    Char ->                                 -- mirrored_ch
+    m Bool
+unicharGetMirrorChar ch mirrored_ch = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    let mirrored_ch' = (fromIntegral . ord) mirrored_ch
+    result <- g_unichar_get_mirror_char ch' mirrored_ch'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_get_script
+-- Args : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "UnicodeScript"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_get_script" g_unichar_get_script :: 
+    CInt ->                                 -- ch : TBasicType TUniChar
+    IO CUInt
+
+
+unicharGetScript ::
+    (MonadIO m) =>
+    Char ->                                 -- ch
+    m UnicodeScript
+unicharGetScript ch = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    result <- g_unichar_get_script ch'
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+-- function g_unichar_isalnum
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isalnum" g_unichar_isalnum :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsalnum ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIsalnum c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isalnum c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_isalpha
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isalpha" g_unichar_isalpha :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsalpha ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIsalpha c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isalpha c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_iscntrl
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_iscntrl" g_unichar_iscntrl :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIscntrl ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIscntrl c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iscntrl c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_isdefined
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isdefined" g_unichar_isdefined :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsdefined ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIsdefined c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isdefined c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_isdigit
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isdigit" g_unichar_isdigit :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsdigit ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIsdigit c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isdigit c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_isgraph
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isgraph" g_unichar_isgraph :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsgraph ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIsgraph c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isgraph c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_islower
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_islower" g_unichar_islower :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIslower ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIslower c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_islower c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_ismark
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_ismark" g_unichar_ismark :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsmark ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIsmark c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_ismark c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_isprint
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isprint" g_unichar_isprint :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsprint ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIsprint c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isprint c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_ispunct
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_ispunct" g_unichar_ispunct :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIspunct ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIspunct c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_ispunct c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_isspace
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isspace" g_unichar_isspace :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsspace ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIsspace c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isspace c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_istitle
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_istitle" g_unichar_istitle :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIstitle ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIstitle c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_istitle c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_isupper
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isupper" g_unichar_isupper :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsupper ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIsupper c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isupper c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_iswide
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_iswide" g_unichar_iswide :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIswide ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIswide c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iswide c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_iswide_cjk
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_iswide_cjk" g_unichar_iswide_cjk :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIswideCjk ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIswideCjk c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iswide_cjk c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_isxdigit
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_isxdigit" g_unichar_isxdigit :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIsxdigit ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIsxdigit c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isxdigit c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_iszerowidth
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_iszerowidth" g_unichar_iszerowidth :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharIszerowidth ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Bool
+unicharIszerowidth c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iszerowidth c'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_to_utf8
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "outbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "outbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_to_utf8" g_unichar_to_utf8 :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    CString ->                              -- outbuf : TBasicType TUTF8
+    IO Int32
+
+
+unicharToUtf8 ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    T.Text ->                               -- outbuf
+    m Int32
+unicharToUtf8 c outbuf = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    outbuf' <- textToCString outbuf
+    result <- g_unichar_to_utf8 c' outbuf'
+    freeMem outbuf'
+    return result
+
+-- function g_unichar_tolower
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUniChar
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_tolower" g_unichar_tolower :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharTolower ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Char
+unicharTolower c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_tolower c'
+    let result' = (chr . fromIntegral) result
+    return result'
+
+-- function g_unichar_totitle
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUniChar
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_totitle" g_unichar_totitle :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharTotitle ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Char
+unicharTotitle c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_totitle c'
+    let result' = (chr . fromIntegral) result
+    return result'
+
+-- function g_unichar_toupper
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUniChar
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_toupper" g_unichar_toupper :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CInt
+
+
+unicharToupper ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Char
+unicharToupper c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_toupper c'
+    let result' = (chr . fromIntegral) result
+    return result'
+
+-- function g_unichar_type
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "UnicodeType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_type" g_unichar_type :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CUInt
+
+
+unicharType ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m UnicodeType
+unicharType c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_type c'
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+-- function g_unichar_validate
+-- Args : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_validate" g_unichar_validate :: 
+    CInt ->                                 -- ch : TBasicType TUniChar
+    IO CInt
+
+
+unicharValidate ::
+    (MonadIO m) =>
+    Char ->                                 -- ch
+    m Bool
+unicharValidate ch = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    result <- g_unichar_validate ch'
+    let result' = (/= 0) result
+    return result'
+
+-- function g_unichar_xdigit_value
+-- Args : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unichar_xdigit_value" g_unichar_xdigit_value :: 
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO Int32
+
+
+unicharXdigitValue ::
+    (MonadIO m) =>
+    Char ->                                 -- c
+    m Int32
+unicharXdigitValue c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_xdigit_value c'
+    return result
+
+-- function g_unicode_canonical_decomposition
+-- Args : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "result_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUniChar
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unicode_canonical_decomposition" g_unicode_canonical_decomposition :: 
+    CInt ->                                 -- ch : TBasicType TUniChar
+    Word64 ->                               -- result_len : TBasicType TUInt64
+    IO CInt
+
+{-# DEPRECATED unicodeCanonicalDecomposition ["(Since version 2.30)","Use the more flexible g_unichar_fully_decompose()","  instead."]#-}
+unicodeCanonicalDecomposition ::
+    (MonadIO m) =>
+    Char ->                                 -- ch
+    Word64 ->                               -- result_len
+    m Char
+unicodeCanonicalDecomposition ch result_len = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    result <- g_unicode_canonical_decomposition ch' result_len
+    let result' = (chr . fromIntegral) result
+    return result'
+
+-- function g_unicode_canonical_ordering
+-- Args : [Arg {argName = "string", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unicode_canonical_ordering" g_unicode_canonical_ordering :: 
+    CInt ->                                 -- string : TBasicType TUniChar
+    Word64 ->                               -- len : TBasicType TUInt64
+    IO ()
+
+
+unicodeCanonicalOrdering ::
+    (MonadIO m) =>
+    Char ->                                 -- string
+    Word64 ->                               -- len
+    m ()
+unicodeCanonicalOrdering string len = liftIO $ do
+    let string' = (fromIntegral . ord) string
+    g_unicode_canonical_ordering string' len
+    return ()
+
+-- function g_unicode_script_from_iso15924
+-- Args : [Arg {argName = "iso15924", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "iso15924", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "UnicodeScript"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unicode_script_from_iso15924" g_unicode_script_from_iso15924 :: 
+    Word32 ->                               -- iso15924 : TBasicType TUInt32
+    IO CUInt
+
+
+unicodeScriptFromIso15924 ::
+    (MonadIO m) =>
+    Word32 ->                               -- iso15924
+    m UnicodeScript
+unicodeScriptFromIso15924 iso15924 = liftIO $ do
+    result <- g_unicode_script_from_iso15924 iso15924
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+-- function g_unicode_script_to_iso15924
+-- Args : [Arg {argName = "script", argType = TInterface "GLib" "UnicodeScript", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "script", argType = TInterface "GLib" "UnicodeScript", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unicode_script_to_iso15924" g_unicode_script_to_iso15924 :: 
+    CUInt ->                                -- script : TInterface "GLib" "UnicodeScript"
+    IO Word32
+
+
+unicodeScriptToIso15924 ::
+    (MonadIO m) =>
+    UnicodeScript ->                        -- script
+    m Word32
+unicodeScriptToIso15924 script = liftIO $ do
+    let script' = (fromIntegral . fromEnum) script
+    result <- g_unicode_script_to_iso15924 script'
+    return result
+
+-- function g_unix_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unix_error_quark" g_unix_error_quark :: 
+    IO Word32
+
+
+unixErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+unixErrorQuark  = liftIO $ do
+    result <- g_unix_error_quark
+    return result
+
+-- function g_unix_fd_add_full
+-- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "UnixFDSourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "UnixFDSourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unix_fd_add_full" g_unix_fd_add_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    Int32 ->                                -- fd : TBasicType TInt32
+    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
+    FunPtr UnixFDSourceFuncC ->             -- function : TInterface "GLib" "UnixFDSourceFunc"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+unixFdAddFull ::
+    (MonadIO m) =>
+    Int32 ->                                -- priority
+    Int32 ->                                -- fd
+    [IOCondition] ->                        -- condition
+    UnixFDSourceFunc ->                     -- function
+    m Word32
+unixFdAddFull priority fd condition function = liftIO $ do
+    let condition' = gflagsToWord condition
+    function' <- mkUnixFDSourceFunc (unixFDSourceFuncWrapper Nothing function)
+    let user_data = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_unix_fd_add_full priority fd condition' function' user_data notify
+    return result
+
+-- function g_unix_fd_source_new
+-- Args : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unix_fd_source_new" g_unix_fd_source_new :: 
+    Int32 ->                                -- fd : TBasicType TInt32
+    CUInt ->                                -- condition : TInterface "GLib" "IOCondition"
+    IO (Ptr Source)
+
+
+unixFdSourceNew ::
+    (MonadIO m) =>
+    Int32 ->                                -- fd
+    [IOCondition] ->                        -- condition
+    m Source
+unixFdSourceNew fd condition = liftIO $ do
+    let condition' = gflagsToWord condition
+    result <- g_unix_fd_source_new fd condition'
+    result' <- (wrapBoxed Source) result
+    return result'
+
+-- function g_unix_open_pipe
+-- Args : [Arg {argName = "fds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "fds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_unix_open_pipe" g_unix_open_pipe :: 
+    Int32 ->                                -- fds : TBasicType TInt32
+    Int32 ->                                -- flags : TBasicType TInt32
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+unixOpenPipe ::
+    (MonadIO m) =>
+    Int32 ->                                -- fds
+    Int32 ->                                -- flags
+    m ()
+unixOpenPipe fds flags = liftIO $ do
+    onException (do
+        _ <- propagateGError $ g_unix_open_pipe fds flags
+        return ()
+     ) (do
+        return ()
+     )
+
+-- function g_unix_set_fd_nonblocking
+-- Args : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nonblock", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nonblock", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_unix_set_fd_nonblocking" g_unix_set_fd_nonblocking :: 
+    Int32 ->                                -- fd : TBasicType TInt32
+    CInt ->                                 -- nonblock : TBasicType TBoolean
+    Ptr (Ptr GError) ->                     -- error
+    IO CInt
+
+
+unixSetFdNonblocking ::
+    (MonadIO m) =>
+    Int32 ->                                -- fd
+    Bool ->                                 -- nonblock
+    m ()
+unixSetFdNonblocking fd nonblock = liftIO $ do
+    let nonblock' = (fromIntegral . fromEnum) nonblock
+    onException (do
+        _ <- propagateGError $ g_unix_set_fd_nonblocking fd nonblock'
+        return ()
+     ) (do
+        return ()
+     )
+
+-- function g_unix_signal_add_full
+-- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unix_signal_add_full" g_unix_signal_add_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    Int32 ->                                -- signum : TBasicType TInt32
+    FunPtr SourceFuncC ->                   -- handler : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+unixSignalAdd ::
+    (MonadIO m) =>
+    Int32 ->                                -- priority
+    Int32 ->                                -- signum
+    SourceFunc ->                           -- handler
+    m Word32
+unixSignalAdd priority signum handler = liftIO $ do
+    handler' <- mkSourceFunc (sourceFuncWrapper Nothing handler)
+    let user_data = castFunPtrToPtr handler'
+    let notify = safeFreeFunPtrPtr
+    result <- g_unix_signal_add_full priority signum handler' user_data notify
+    return result
+
+-- function g_unix_signal_source_new
+-- Args : [Arg {argName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "Source"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unix_signal_source_new" g_unix_signal_source_new :: 
+    Int32 ->                                -- signum : TBasicType TInt32
+    IO (Ptr Source)
+
+
+unixSignalSourceNew ::
+    (MonadIO m) =>
+    Int32 ->                                -- signum
+    m Source
+unixSignalSourceNew signum = liftIO $ do
+    result <- g_unix_signal_source_new signum
+    result' <- (wrapBoxed Source) result
+    return result'
+
+-- function g_unlink
+-- Args : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unlink" g_unlink :: 
+    CString ->                              -- filename : TBasicType TUTF8
+    IO Int32
+
+
+unlink ::
+    (MonadIO m) =>
+    T.Text ->                               -- filename
+    m Int32
+unlink filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_unlink filename'
+    freeMem filename'
+    return result
+
+-- function g_unsetenv
+-- Args : [Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_unsetenv" g_unsetenv :: 
+    CString ->                              -- variable : TBasicType TUTF8
+    IO ()
+
+
+unsetenv ::
+    (MonadIO m) =>
+    T.Text ->                               -- variable
+    m ()
+unsetenv variable = liftIO $ do
+    variable' <- textToCString variable
+    g_unsetenv variable'
+    freeMem variable'
+    return ()
+
+-- function g_uri_escape_string
+-- Args : [Arg {argName = "unescaped", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "reserved_chars_allowed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "allow_utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "unescaped", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "reserved_chars_allowed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "allow_utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_uri_escape_string" g_uri_escape_string :: 
+    CString ->                              -- unescaped : TBasicType TUTF8
+    CString ->                              -- reserved_chars_allowed : TBasicType TUTF8
+    CInt ->                                 -- allow_utf8 : TBasicType TBoolean
+    IO CString
+
+
+uriEscapeString ::
+    (MonadIO m) =>
+    T.Text ->                               -- unescaped
+    Maybe (T.Text) ->                       -- reserved_chars_allowed
+    Bool ->                                 -- allow_utf8
+    m T.Text
+uriEscapeString unescaped reserved_chars_allowed allow_utf8 = liftIO $ do
+    unescaped' <- textToCString unescaped
+    maybeReserved_chars_allowed <- case reserved_chars_allowed of
+        Nothing -> return nullPtr
+        Just jReserved_chars_allowed -> do
+            jReserved_chars_allowed' <- textToCString jReserved_chars_allowed
+            return jReserved_chars_allowed'
+    let allow_utf8' = (fromIntegral . fromEnum) allow_utf8
+    result <- g_uri_escape_string unescaped' maybeReserved_chars_allowed allow_utf8'
+    result' <- cstringToText result
+    freeMem result
+    freeMem unescaped'
+    freeMem maybeReserved_chars_allowed
+    return result'
+
+-- function g_uri_list_extract_uris
+-- Args : [Arg {argName = "uri_list", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "uri_list", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_uri_list_extract_uris" g_uri_list_extract_uris :: 
+    CString ->                              -- uri_list : TBasicType TUTF8
+    IO (Ptr CString)
+
+
+uriListExtractUris ::
+    (MonadIO m) =>
+    T.Text ->                               -- uri_list
+    m [T.Text]
+uriListExtractUris uri_list = liftIO $ do
+    uri_list' <- textToCString uri_list
+    result <- g_uri_list_extract_uris uri_list'
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem uri_list'
+    return result'
+
+-- function g_uri_parse_scheme
+-- Args : [Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_uri_parse_scheme" g_uri_parse_scheme :: 
+    CString ->                              -- uri : TBasicType TUTF8
+    IO CString
+
+
+uriParseScheme ::
+    (MonadIO m) =>
+    T.Text ->                               -- uri
+    m T.Text
+uriParseScheme uri = liftIO $ do
+    uri' <- textToCString uri
+    result <- g_uri_parse_scheme uri'
+    result' <- cstringToText result
+    freeMem result
+    freeMem uri'
+    return result'
+
+-- function g_uri_unescape_segment
+-- Args : [Arg {argName = "escaped_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "escaped_string_end", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "illegal_characters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "escaped_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "escaped_string_end", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "illegal_characters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_uri_unescape_segment" g_uri_unescape_segment :: 
+    CString ->                              -- escaped_string : TBasicType TUTF8
+    CString ->                              -- escaped_string_end : TBasicType TUTF8
+    CString ->                              -- illegal_characters : TBasicType TUTF8
+    IO CString
+
+
+uriUnescapeSegment ::
+    (MonadIO m) =>
+    Maybe (T.Text) ->                       -- escaped_string
+    Maybe (T.Text) ->                       -- escaped_string_end
+    Maybe (T.Text) ->                       -- illegal_characters
+    m T.Text
+uriUnescapeSegment escaped_string escaped_string_end illegal_characters = liftIO $ do
+    maybeEscaped_string <- case escaped_string of
+        Nothing -> return nullPtr
+        Just jEscaped_string -> do
+            jEscaped_string' <- textToCString jEscaped_string
+            return jEscaped_string'
+    maybeEscaped_string_end <- case escaped_string_end of
+        Nothing -> return nullPtr
+        Just jEscaped_string_end -> do
+            jEscaped_string_end' <- textToCString jEscaped_string_end
+            return jEscaped_string_end'
+    maybeIllegal_characters <- case illegal_characters of
+        Nothing -> return nullPtr
+        Just jIllegal_characters -> do
+            jIllegal_characters' <- textToCString jIllegal_characters
+            return jIllegal_characters'
+    result <- g_uri_unescape_segment maybeEscaped_string maybeEscaped_string_end maybeIllegal_characters
+    result' <- cstringToText result
+    freeMem result
+    freeMem maybeEscaped_string
+    freeMem maybeEscaped_string_end
+    freeMem maybeIllegal_characters
+    return result'
+
+-- function g_uri_unescape_string
+-- Args : [Arg {argName = "escaped_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "illegal_characters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "escaped_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "illegal_characters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_uri_unescape_string" g_uri_unescape_string :: 
+    CString ->                              -- escaped_string : TBasicType TUTF8
+    CString ->                              -- illegal_characters : TBasicType TUTF8
+    IO CString
+
+
+uriUnescapeString ::
+    (MonadIO m) =>
+    T.Text ->                               -- escaped_string
+    Maybe (T.Text) ->                       -- illegal_characters
+    m T.Text
+uriUnescapeString escaped_string illegal_characters = liftIO $ do
+    escaped_string' <- textToCString escaped_string
+    maybeIllegal_characters <- case illegal_characters of
+        Nothing -> return nullPtr
+        Just jIllegal_characters -> do
+            jIllegal_characters' <- textToCString jIllegal_characters
+            return jIllegal_characters'
+    result <- g_uri_unescape_string escaped_string' maybeIllegal_characters
+    result' <- cstringToText result
+    freeMem result
+    freeMem escaped_string'
+    freeMem maybeIllegal_characters
+    return result'
+
+-- function g_usleep
+-- Args : [Arg {argName = "microseconds", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "microseconds", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_usleep" g_usleep :: 
+    Word64 ->                               -- microseconds : TBasicType TUInt64
+    IO ()
+
+
+usleep ::
+    (MonadIO m) =>
+    Word64 ->                               -- microseconds
+    m ()
+usleep microseconds = liftIO $ do
+    g_usleep microseconds
+    return ()
+
+-- function g_utf8_casefold
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_casefold" g_utf8_casefold :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8Casefold ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    m T.Text
+utf8Casefold str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_casefold str' len
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_utf8_collate
+-- Args : [Arg {argName = "str1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "str2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_collate" g_utf8_collate :: 
+    CString ->                              -- str1 : TBasicType TUTF8
+    CString ->                              -- str2 : TBasicType TUTF8
+    IO Int32
+
+
+utf8Collate ::
+    (MonadIO m) =>
+    T.Text ->                               -- str1
+    T.Text ->                               -- str2
+    m Int32
+utf8Collate str1 str2 = liftIO $ do
+    str1' <- textToCString str1
+    str2' <- textToCString str2
+    result <- g_utf8_collate str1' str2'
+    freeMem str1'
+    freeMem str2'
+    return result
+
+-- function g_utf8_collate_key
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_collate_key" g_utf8_collate_key :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8CollateKey ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    m T.Text
+utf8CollateKey str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_collate_key str' len
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_utf8_collate_key_for_filename
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_collate_key_for_filename" g_utf8_collate_key_for_filename :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8CollateKeyForFilename ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    m T.Text
+utf8CollateKeyForFilename str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_collate_key_for_filename str' len
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_utf8_find_next_char
+-- Args : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_find_next_char" g_utf8_find_next_char :: 
+    CString ->                              -- p : TBasicType TUTF8
+    CString ->                              -- end : TBasicType TUTF8
+    IO CString
+
+
+utf8FindNextChar ::
+    (MonadIO m) =>
+    T.Text ->                               -- p
+    T.Text ->                               -- end
+    m T.Text
+utf8FindNextChar p end = liftIO $ do
+    p' <- textToCString p
+    end' <- textToCString end
+    result <- g_utf8_find_next_char p' end'
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    freeMem end'
+    return result'
+
+-- function g_utf8_find_prev_char
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_find_prev_char" g_utf8_find_prev_char :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CString ->                              -- p : TBasicType TUTF8
+    IO CString
+
+
+utf8FindPrevChar ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    T.Text ->                               -- p
+    m T.Text
+utf8FindPrevChar str p = liftIO $ do
+    str' <- textToCString str
+    p' <- textToCString p
+    result <- g_utf8_find_prev_char str' p'
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    freeMem p'
+    return result'
+
+-- function g_utf8_get_char
+-- Args : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUniChar
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_get_char" g_utf8_get_char :: 
+    CString ->                              -- p : TBasicType TUTF8
+    IO CInt
+
+
+utf8GetChar ::
+    (MonadIO m) =>
+    T.Text ->                               -- p
+    m Char
+utf8GetChar p = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_get_char p'
+    let result' = (chr . fromIntegral) result
+    freeMem p'
+    return result'
+
+-- function g_utf8_get_char_validated
+-- Args : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUniChar
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_get_char_validated" g_utf8_get_char_validated :: 
+    CString ->                              -- p : TBasicType TUTF8
+    Int64 ->                                -- max_len : TBasicType TInt64
+    IO CInt
+
+
+utf8GetCharValidated ::
+    (MonadIO m) =>
+    T.Text ->                               -- p
+    Int64 ->                                -- max_len
+    m Char
+utf8GetCharValidated p max_len = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_get_char_validated p' max_len
+    let result' = (chr . fromIntegral) result
+    freeMem p'
+    return result'
+
+-- function g_utf8_normalize
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "GLib" "NormalizeMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "GLib" "NormalizeMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_normalize" g_utf8_normalize :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    CUInt ->                                -- mode : TInterface "GLib" "NormalizeMode"
+    IO CString
+
+
+utf8Normalize ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    NormalizeMode ->                        -- mode
+    m T.Text
+utf8Normalize str len mode = liftIO $ do
+    str' <- textToCString str
+    let mode' = (fromIntegral . fromEnum) mode
+    result <- g_utf8_normalize str' len mode'
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_utf8_offset_to_pointer
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_offset_to_pointer" g_utf8_offset_to_pointer :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- offset : TBasicType TInt64
+    IO CString
+
+
+utf8OffsetToPointer ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- offset
+    m T.Text
+utf8OffsetToPointer str offset = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_offset_to_pointer str' offset
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_utf8_pointer_to_offset
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pos", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_pointer_to_offset" g_utf8_pointer_to_offset :: 
+    CString ->                              -- str : TBasicType TUTF8
+    CString ->                              -- pos : TBasicType TUTF8
+    IO Int64
+
+
+utf8PointerToOffset ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    T.Text ->                               -- pos
+    m Int64
+utf8PointerToOffset str pos = liftIO $ do
+    str' <- textToCString str
+    pos' <- textToCString pos
+    result <- g_utf8_pointer_to_offset str' pos'
+    freeMem str'
+    freeMem pos'
+    return result
+
+-- function g_utf8_prev_char
+-- Args : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_prev_char" g_utf8_prev_char :: 
+    CString ->                              -- p : TBasicType TUTF8
+    IO CString
+
+
+utf8PrevChar ::
+    (MonadIO m) =>
+    T.Text ->                               -- p
+    m T.Text
+utf8PrevChar p = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_prev_char p'
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    return result'
+
+-- function g_utf8_strchr
+-- Args : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strchr" g_utf8_strchr :: 
+    CString ->                              -- p : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CString
+
+
+utf8Strchr ::
+    (MonadIO m) =>
+    T.Text ->                               -- p
+    Int64 ->                                -- len
+    Char ->                                 -- c
+    m T.Text
+utf8Strchr p len c = liftIO $ do
+    p' <- textToCString p
+    let c' = (fromIntegral . ord) c
+    result <- g_utf8_strchr p' len c'
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    return result'
+
+-- function g_utf8_strdown
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strdown" g_utf8_strdown :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8Strdown ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    m T.Text
+utf8Strdown str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_strdown str' len
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_utf8_strlen
+-- Args : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strlen" g_utf8_strlen :: 
+    CString ->                              -- p : TBasicType TUTF8
+    Int64 ->                                -- max : TBasicType TInt64
+    IO Int64
+
+
+utf8Strlen ::
+    (MonadIO m) =>
+    T.Text ->                               -- p
+    Int64 ->                                -- max
+    m Int64
+utf8Strlen p max = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_strlen p' max
+    freeMem p'
+    return result
+
+-- function g_utf8_strncpy
+-- Args : [Arg {argName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strncpy" g_utf8_strncpy :: 
+    CString ->                              -- dest : TBasicType TUTF8
+    CString ->                              -- src : TBasicType TUTF8
+    Word64 ->                               -- n : TBasicType TUInt64
+    IO CString
+
+
+utf8Strncpy ::
+    (MonadIO m) =>
+    T.Text ->                               -- dest
+    T.Text ->                               -- src
+    Word64 ->                               -- n
+    m T.Text
+utf8Strncpy dest src n = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_utf8_strncpy dest' src' n
+    result' <- cstringToText result
+    freeMem result
+    freeMem dest'
+    freeMem src'
+    return result'
+
+-- function g_utf8_strrchr
+-- Args : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strrchr" g_utf8_strrchr :: 
+    CString ->                              -- p : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    CInt ->                                 -- c : TBasicType TUniChar
+    IO CString
+
+
+utf8Strrchr ::
+    (MonadIO m) =>
+    T.Text ->                               -- p
+    Int64 ->                                -- len
+    Char ->                                 -- c
+    m T.Text
+utf8Strrchr p len c = liftIO $ do
+    p' <- textToCString p
+    let c' = (fromIntegral . ord) c
+    result <- g_utf8_strrchr p' len c'
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    return result'
+
+-- function g_utf8_strreverse
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strreverse" g_utf8_strreverse :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8Strreverse ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    m T.Text
+utf8Strreverse str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_strreverse str' len
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_utf8_strup
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_strup" g_utf8_strup :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- len : TBasicType TInt64
+    IO CString
+
+
+utf8Strup ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- len
+    m T.Text
+utf8Strup str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_strup str' len
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_utf8_substring
+-- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end_pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "start_pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end_pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_substring" g_utf8_substring :: 
+    CString ->                              -- str : TBasicType TUTF8
+    Int64 ->                                -- start_pos : TBasicType TInt64
+    Int64 ->                                -- end_pos : TBasicType TInt64
+    IO CString
+
+
+utf8Substring ::
+    (MonadIO m) =>
+    T.Text ->                               -- str
+    Int64 ->                                -- start_pos
+    Int64 ->                                -- end_pos
+    m T.Text
+utf8Substring str start_pos end_pos = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_substring str' start_pos end_pos
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+-- function g_utf8_validate
+-- Args : [Arg {argName = "str", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "end", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : [Arg {argName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- hInArgs : [Arg {argName = "str", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_utf8_validate" g_utf8_validate :: 
+    Ptr Word8 ->                            -- str : TCArray False (-1) 1 (TBasicType TUInt8)
+    Int64 ->                                -- max_len : TBasicType TInt64
+    Ptr CString ->                          -- end : TBasicType TUTF8
+    IO CInt
+
+
+utf8Validate ::
+    (MonadIO m) =>
+    ByteString ->                           -- str
+    m (Bool,T.Text)
+utf8Validate str = liftIO $ do
+    let max_len = fromIntegral $ B.length str
+    str' <- packByteString str
+    end <- allocMem :: IO (Ptr CString)
+    result <- g_utf8_validate str' max_len end
+    let result' = (/= 0) result
+    end' <- peek end
+    end'' <- cstringToText end'
+    freeMem str'
+    freeMem end
+    return (result', end'')
+
+-- function g_variant_get_gtype
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_get_gtype" g_variant_get_gtype :: 
+    IO CGType
+
+
+variantGetGtype ::
+    (MonadIO m) =>
+    m GType
+variantGetGtype  = liftIO $ do
+    result <- g_variant_get_gtype
+    let result' = GType result
+    return result'
+
+-- function g_variant_is_object_path
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_is_object_path" g_variant_is_object_path :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CInt
+
+
+variantIsObjectPath ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    m Bool
+variantIsObjectPath string = liftIO $ do
+    string' <- textToCString string
+    result <- g_variant_is_object_path string'
+    let result' = (/= 0) result
+    freeMem string'
+    return result'
+
+-- function g_variant_is_signature
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_is_signature" g_variant_is_signature :: 
+    CString ->                              -- string : TBasicType TUTF8
+    IO CInt
+
+
+variantIsSignature ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    m Bool
+variantIsSignature string = liftIO $ do
+    string' <- textToCString string
+    result <- g_variant_is_signature string'
+    let result' = (/= 0) result
+    freeMem string'
+    return result'
+
+-- function g_variant_parse
+-- Args : [Arg {argName = "type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TVariant
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_variant_parse" g_variant_parse :: 
+    Ptr VariantType ->                      -- type : TInterface "GLib" "VariantType"
+    CString ->                              -- text : TBasicType TUTF8
+    CString ->                              -- limit : TBasicType TUTF8
+    CString ->                              -- endptr : TBasicType TUTF8
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr GVariant)
+
+
+variantParse ::
+    (MonadIO m) =>
+    Maybe (VariantType) ->                  -- type
+    T.Text ->                               -- text
+    Maybe (T.Text) ->                       -- limit
+    Maybe (T.Text) ->                       -- endptr
+    m GVariant
+variantParse type_ text limit endptr = liftIO $ do
+    maybeType_ <- case type_ of
+        Nothing -> return nullPtr
+        Just jType_ -> do
+            let jType_' = unsafeManagedPtrGetPtr jType_
+            return jType_'
+    text' <- textToCString text
+    maybeLimit <- case limit of
+        Nothing -> return nullPtr
+        Just jLimit -> do
+            jLimit' <- textToCString jLimit
+            return jLimit'
+    maybeEndptr <- case endptr of
+        Nothing -> return nullPtr
+        Just jEndptr -> do
+            jEndptr' <- textToCString jEndptr
+            return jEndptr'
+    onException (do
+        result <- propagateGError $ g_variant_parse maybeType_ text' maybeLimit maybeEndptr
+        result' <- wrapGVariantPtr result
+        whenJust type_ touchManagedPtr
+        freeMem text'
+        freeMem maybeLimit
+        freeMem maybeEndptr
+        return result'
+     ) (do
+        freeMem text'
+        freeMem maybeLimit
+        freeMem maybeEndptr
+     )
+
+-- function g_variant_parse_error_print_context
+-- Args : [Arg {argName = "error", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "error", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_parse_error_print_context" g_variant_parse_error_print_context :: 
+    Ptr GError ->                           -- error : TError
+    CString ->                              -- source_str : TBasicType TUTF8
+    IO CString
+
+
+variantParseErrorPrintContext ::
+    (MonadIO m) =>
+    GError ->                               -- error
+    T.Text ->                               -- source_str
+    m T.Text
+variantParseErrorPrintContext error_ source_str = liftIO $ do
+    let error_' = unsafeManagedPtrGetPtr error_
+    source_str' <- textToCString source_str
+    result <- g_variant_parse_error_print_context error_' source_str'
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr error_
+    freeMem source_str'
+    return result'
+
+-- function g_variant_parse_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_parse_error_quark" g_variant_parse_error_quark :: 
+    IO Word32
+
+
+variantParseErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+variantParseErrorQuark  = liftIO $ do
+    result <- g_variant_parse_error_quark
+    return result
+
+-- function g_variant_parser_get_error_quark
+-- Args : []
+-- Lengths : []
+-- hInArgs : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_parser_get_error_quark" g_variant_parser_get_error_quark :: 
+    IO Word32
+
+{-# DEPRECATED variantParserGetErrorQuark ["Use g_variant_parse_error_quark() instead."]#-}
+variantParserGetErrorQuark ::
+    (MonadIO m) =>
+    m Word32
+variantParserGetErrorQuark  = liftIO $ do
+    result <- g_variant_parser_get_error_quark
+    return result
+
+-- function g_variant_type_checked_
+-- Args : [Arg {argName = "arg0", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "arg0", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "VariantType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_checked_" g_variant_type_checked_ :: 
+    CString ->                              -- arg0 : TBasicType TUTF8
+    IO (Ptr VariantType)
+
+
+variantTypeChecked_ ::
+    (MonadIO m) =>
+    T.Text ->                               -- arg0
+    m VariantType
+variantTypeChecked_ arg0 = liftIO $ do
+    arg0' <- textToCString arg0
+    result <- g_variant_type_checked_ arg0'
+    result' <- (newBoxed VariantType) result
+    freeMem arg0'
+    return result'
+
+-- function g_variant_type_string_is_valid
+-- Args : [Arg {argName = "type_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "type_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_string_is_valid" g_variant_type_string_is_valid :: 
+    CString ->                              -- type_string : TBasicType TUTF8
+    IO CInt
+
+
+variantTypeStringIsValid ::
+    (MonadIO m) =>
+    T.Text ->                               -- type_string
+    m Bool
+variantTypeStringIsValid type_string = liftIO $ do
+    type_string' <- textToCString type_string
+    result <- g_variant_type_string_is_valid type_string'
+    let result' = (/= 0) result
+    freeMem type_string'
+    return result'
+
+-- function g_variant_type_string_scan
+-- Args : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "endptr", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "limit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_variant_type_string_scan" g_variant_type_string_scan :: 
+    CString ->                              -- string : TBasicType TUTF8
+    CString ->                              -- limit : TBasicType TUTF8
+    Ptr CString ->                          -- endptr : TBasicType TUTF8
+    IO CInt
+
+
+variantTypeStringScan ::
+    (MonadIO m) =>
+    T.Text ->                               -- string
+    Maybe (T.Text) ->                       -- limit
+    m (Bool,T.Text)
+variantTypeStringScan string limit = liftIO $ do
+    string' <- textToCString string
+    maybeLimit <- case limit of
+        Nothing -> return nullPtr
+        Just jLimit -> do
+            jLimit' <- textToCString jLimit
+            return jLimit'
+    endptr <- allocMem :: IO (Ptr CString)
+    result <- g_variant_type_string_scan string' maybeLimit endptr
+    let result' = (/= 0) result
+    endptr' <- peek endptr
+    endptr'' <- cstringToText endptr'
+    freeMem endptr'
+    freeMem string'
+    freeMem maybeLimit
+    freeMem endptr
+    return (result', endptr'')
+
+-- function g_warn_message
+-- Args : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "warnexpr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Lengths : []
+-- hInArgs : [Arg {argName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "warnexpr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_warn_message" g_warn_message :: 
+    CString ->                              -- domain : TBasicType TUTF8
+    CString ->                              -- file : TBasicType TUTF8
+    Int32 ->                                -- line : TBasicType TInt32
+    CString ->                              -- func : TBasicType TUTF8
+    CString ->                              -- warnexpr : TBasicType TUTF8
+    IO ()
+
+
+warnMessage ::
+    (MonadIO m) =>
+    T.Text ->                               -- domain
+    T.Text ->                               -- file
+    Int32 ->                                -- line
+    T.Text ->                               -- func
+    T.Text ->                               -- warnexpr
+    m ()
+warnMessage domain file line func warnexpr = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    warnexpr' <- textToCString warnexpr
+    g_warn_message domain' file' line func' warnexpr'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem warnexpr'
+    return ()
+
+-- callback IOFuncsIoReadFieldCallback
+iOFuncsIoReadFieldCallbackClosure :: IOFuncsIoReadFieldCallback -> IO Closure
+iOFuncsIoReadFieldCallbackClosure cb = newCClosure =<< mkIOFuncsIoReadFieldCallback wrapped
+    where wrapped = iOFuncsIoReadFieldCallbackWrapper Nothing cb
+
+type IOFuncsIoReadFieldCallbackC =
+    Ptr IOChannel ->
+    CString ->
+    Word64 ->
+    Word64 ->
+    IO CUInt
+
+foreign import ccall "wrapper"
+    mkIOFuncsIoReadFieldCallback :: IOFuncsIoReadFieldCallbackC -> IO (FunPtr IOFuncsIoReadFieldCallbackC)
+
+type IOFuncsIoReadFieldCallback =
+    IOChannel ->
+    T.Text ->
+    Word64 ->
+    Word64 ->
+    IO IOStatus
+
+noIOFuncsIoReadFieldCallback :: Maybe IOFuncsIoReadFieldCallback
+noIOFuncsIoReadFieldCallback = Nothing
+
+iOFuncsIoReadFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (IOFuncsIoReadFieldCallbackC))) ->
+    IOFuncsIoReadFieldCallback ->
+    Ptr IOChannel ->
+    CString ->
+    Word64 ->
+    Word64 ->
+    IO CUInt
+iOFuncsIoReadFieldCallbackWrapper funptrptr _cb channel buf count bytes_read = do
+    channel' <- (newBoxed IOChannel) channel
+    buf' <- cstringToText buf
+    result <- _cb  channel' buf' count bytes_read
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback IOFuncsIoWriteFieldCallback
+iOFuncsIoWriteFieldCallbackClosure :: IOFuncsIoWriteFieldCallback -> IO Closure
+iOFuncsIoWriteFieldCallbackClosure cb = newCClosure =<< mkIOFuncsIoWriteFieldCallback wrapped
+    where wrapped = iOFuncsIoWriteFieldCallbackWrapper Nothing cb
+
+type IOFuncsIoWriteFieldCallbackC =
+    Ptr IOChannel ->
+    CString ->
+    Word64 ->
+    Word64 ->
+    IO CUInt
+
+foreign import ccall "wrapper"
+    mkIOFuncsIoWriteFieldCallback :: IOFuncsIoWriteFieldCallbackC -> IO (FunPtr IOFuncsIoWriteFieldCallbackC)
+
+type IOFuncsIoWriteFieldCallback =
+    IOChannel ->
+    T.Text ->
+    Word64 ->
+    Word64 ->
+    IO IOStatus
+
+noIOFuncsIoWriteFieldCallback :: Maybe IOFuncsIoWriteFieldCallback
+noIOFuncsIoWriteFieldCallback = Nothing
+
+iOFuncsIoWriteFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (IOFuncsIoWriteFieldCallbackC))) ->
+    IOFuncsIoWriteFieldCallback ->
+    Ptr IOChannel ->
+    CString ->
+    Word64 ->
+    Word64 ->
+    IO CUInt
+iOFuncsIoWriteFieldCallbackWrapper funptrptr _cb channel buf count bytes_written = do
+    channel' <- (newBoxed IOChannel) channel
+    buf' <- cstringToText buf
+    result <- _cb  channel' buf' count bytes_written
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback IOFuncsIoSeekFieldCallback
+iOFuncsIoSeekFieldCallbackClosure :: IOFuncsIoSeekFieldCallback -> IO Closure
+iOFuncsIoSeekFieldCallbackClosure cb = newCClosure =<< mkIOFuncsIoSeekFieldCallback wrapped
+    where wrapped = iOFuncsIoSeekFieldCallbackWrapper Nothing cb
+
+type IOFuncsIoSeekFieldCallbackC =
+    Ptr IOChannel ->
+    Int64 ->
+    CUInt ->
+    IO CUInt
+
+foreign import ccall "wrapper"
+    mkIOFuncsIoSeekFieldCallback :: IOFuncsIoSeekFieldCallbackC -> IO (FunPtr IOFuncsIoSeekFieldCallbackC)
+
+type IOFuncsIoSeekFieldCallback =
+    IOChannel ->
+    Int64 ->
+    SeekType ->
+    IO IOStatus
+
+noIOFuncsIoSeekFieldCallback :: Maybe IOFuncsIoSeekFieldCallback
+noIOFuncsIoSeekFieldCallback = Nothing
+
+iOFuncsIoSeekFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (IOFuncsIoSeekFieldCallbackC))) ->
+    IOFuncsIoSeekFieldCallback ->
+    Ptr IOChannel ->
+    Int64 ->
+    CUInt ->
+    IO CUInt
+iOFuncsIoSeekFieldCallbackWrapper funptrptr _cb channel offset type_ = do
+    channel' <- (newBoxed IOChannel) channel
+    let type_' = (toEnum . fromIntegral) type_
+    result <- _cb  channel' offset type_'
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback IOFuncsIoCloseFieldCallback
+iOFuncsIoCloseFieldCallbackClosure :: IOFuncsIoCloseFieldCallback -> IO Closure
+iOFuncsIoCloseFieldCallbackClosure cb = newCClosure =<< mkIOFuncsIoCloseFieldCallback wrapped
+    where wrapped = iOFuncsIoCloseFieldCallbackWrapper Nothing cb
+
+type IOFuncsIoCloseFieldCallbackC =
+    Ptr IOChannel ->
+    IO CUInt
+
+foreign import ccall "wrapper"
+    mkIOFuncsIoCloseFieldCallback :: IOFuncsIoCloseFieldCallbackC -> IO (FunPtr IOFuncsIoCloseFieldCallbackC)
+
+type IOFuncsIoCloseFieldCallback =
+    IOChannel ->
+    IO IOStatus
+
+noIOFuncsIoCloseFieldCallback :: Maybe IOFuncsIoCloseFieldCallback
+noIOFuncsIoCloseFieldCallback = Nothing
+
+iOFuncsIoCloseFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (IOFuncsIoCloseFieldCallbackC))) ->
+    IOFuncsIoCloseFieldCallback ->
+    Ptr IOChannel ->
+    IO CUInt
+iOFuncsIoCloseFieldCallbackWrapper funptrptr _cb channel = do
+    channel' <- (newBoxed IOChannel) channel
+    result <- _cb  channel'
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback IOFuncsIoCreateWatchFieldCallback
+iOFuncsIoCreateWatchFieldCallbackClosure :: IOFuncsIoCreateWatchFieldCallback -> IO Closure
+iOFuncsIoCreateWatchFieldCallbackClosure cb = newCClosure =<< mkIOFuncsIoCreateWatchFieldCallback wrapped
+    where wrapped = iOFuncsIoCreateWatchFieldCallbackWrapper Nothing cb
+
+type IOFuncsIoCreateWatchFieldCallbackC =
+    Ptr IOChannel ->
+    CUInt ->
+    IO (Ptr Source)
+
+foreign import ccall "wrapper"
+    mkIOFuncsIoCreateWatchFieldCallback :: IOFuncsIoCreateWatchFieldCallbackC -> IO (FunPtr IOFuncsIoCreateWatchFieldCallbackC)
+
+type IOFuncsIoCreateWatchFieldCallback =
+    IOChannel ->
+    [IOCondition] ->
+    IO Source
+
+noIOFuncsIoCreateWatchFieldCallback :: Maybe IOFuncsIoCreateWatchFieldCallback
+noIOFuncsIoCreateWatchFieldCallback = Nothing
+
+iOFuncsIoCreateWatchFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (IOFuncsIoCreateWatchFieldCallbackC))) ->
+    IOFuncsIoCreateWatchFieldCallback ->
+    Ptr IOChannel ->
+    CUInt ->
+    IO (Ptr Source)
+iOFuncsIoCreateWatchFieldCallbackWrapper funptrptr _cb channel condition = do
+    channel' <- (newBoxed IOChannel) channel
+    let condition' = wordToGFlags condition
+    result <- _cb  channel' condition'
+    maybeReleaseFunPtr funptrptr
+    result' <- copyBoxed result
+    return result'
+
+-- callback IOFuncsIoFreeFieldCallback
+iOFuncsIoFreeFieldCallbackClosure :: IOFuncsIoFreeFieldCallback -> IO Closure
+iOFuncsIoFreeFieldCallbackClosure cb = newCClosure =<< mkIOFuncsIoFreeFieldCallback wrapped
+    where wrapped = iOFuncsIoFreeFieldCallbackWrapper Nothing cb
+
+type IOFuncsIoFreeFieldCallbackC =
+    Ptr IOChannel ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkIOFuncsIoFreeFieldCallback :: IOFuncsIoFreeFieldCallbackC -> IO (FunPtr IOFuncsIoFreeFieldCallbackC)
+
+type IOFuncsIoFreeFieldCallback =
+    IOChannel ->
+    IO ()
+
+noIOFuncsIoFreeFieldCallback :: Maybe IOFuncsIoFreeFieldCallback
+noIOFuncsIoFreeFieldCallback = Nothing
+
+iOFuncsIoFreeFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (IOFuncsIoFreeFieldCallbackC))) ->
+    IOFuncsIoFreeFieldCallback ->
+    Ptr IOChannel ->
+    IO ()
+iOFuncsIoFreeFieldCallbackWrapper funptrptr _cb channel = do
+    channel' <- (newBoxed IOChannel) channel
+    _cb  channel'
+    maybeReleaseFunPtr funptrptr
+
+-- callback IOFuncsIoSetFlagsFieldCallback
+iOFuncsIoSetFlagsFieldCallbackClosure :: IOFuncsIoSetFlagsFieldCallback -> IO Closure
+iOFuncsIoSetFlagsFieldCallbackClosure cb = newCClosure =<< mkIOFuncsIoSetFlagsFieldCallback wrapped
+    where wrapped = iOFuncsIoSetFlagsFieldCallbackWrapper Nothing cb
+
+type IOFuncsIoSetFlagsFieldCallbackC =
+    Ptr IOChannel ->
+    CUInt ->
+    IO CUInt
+
+foreign import ccall "wrapper"
+    mkIOFuncsIoSetFlagsFieldCallback :: IOFuncsIoSetFlagsFieldCallbackC -> IO (FunPtr IOFuncsIoSetFlagsFieldCallbackC)
+
+type IOFuncsIoSetFlagsFieldCallback =
+    IOChannel ->
+    [IOFlags] ->
+    IO IOStatus
+
+noIOFuncsIoSetFlagsFieldCallback :: Maybe IOFuncsIoSetFlagsFieldCallback
+noIOFuncsIoSetFlagsFieldCallback = Nothing
+
+iOFuncsIoSetFlagsFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (IOFuncsIoSetFlagsFieldCallbackC))) ->
+    IOFuncsIoSetFlagsFieldCallback ->
+    Ptr IOChannel ->
+    CUInt ->
+    IO CUInt
+iOFuncsIoSetFlagsFieldCallbackWrapper funptrptr _cb channel flags = do
+    channel' <- (newBoxed IOChannel) channel
+    let flags' = wordToGFlags flags
+    result <- _cb  channel' flags'
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback IOFuncsIoGetFlagsFieldCallback
+iOFuncsIoGetFlagsFieldCallbackClosure :: IOFuncsIoGetFlagsFieldCallback -> IO Closure
+iOFuncsIoGetFlagsFieldCallbackClosure cb = newCClosure =<< mkIOFuncsIoGetFlagsFieldCallback wrapped
+    where wrapped = iOFuncsIoGetFlagsFieldCallbackWrapper Nothing cb
+
+type IOFuncsIoGetFlagsFieldCallbackC =
+    Ptr IOChannel ->
+    IO CUInt
+
+foreign import ccall "wrapper"
+    mkIOFuncsIoGetFlagsFieldCallback :: IOFuncsIoGetFlagsFieldCallbackC -> IO (FunPtr IOFuncsIoGetFlagsFieldCallbackC)
+
+type IOFuncsIoGetFlagsFieldCallback =
+    IOChannel ->
+    IO [IOFlags]
+
+noIOFuncsIoGetFlagsFieldCallback :: Maybe IOFuncsIoGetFlagsFieldCallback
+noIOFuncsIoGetFlagsFieldCallback = Nothing
+
+iOFuncsIoGetFlagsFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (IOFuncsIoGetFlagsFieldCallbackC))) ->
+    IOFuncsIoGetFlagsFieldCallback ->
+    Ptr IOChannel ->
+    IO CUInt
+iOFuncsIoGetFlagsFieldCallbackWrapper funptrptr _cb channel = do
+    channel' <- (newBoxed IOChannel) channel
+    result <- _cb  channel'
+    maybeReleaseFunPtr funptrptr
+    let result' = gflagsToWord result
+    return result'
+
+-- callback MarkupParserStartElementFieldCallback
+markupParserStartElementFieldCallbackClosure :: MarkupParserStartElementFieldCallback -> IO Closure
+markupParserStartElementFieldCallbackClosure cb = newCClosure =<< mkMarkupParserStartElementFieldCallback wrapped
+    where wrapped = markupParserStartElementFieldCallbackWrapper Nothing cb
+
+type MarkupParserStartElementFieldCallbackC =
+    Ptr MarkupParseContext ->
+    CString ->
+    CString ->
+    CString ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkMarkupParserStartElementFieldCallback :: MarkupParserStartElementFieldCallbackC -> IO (FunPtr MarkupParserStartElementFieldCallbackC)
+
+type MarkupParserStartElementFieldCallback =
+    MarkupParseContext ->
+    T.Text ->
+    T.Text ->
+    T.Text ->
+    IO ()
+
+noMarkupParserStartElementFieldCallback :: Maybe MarkupParserStartElementFieldCallback
+noMarkupParserStartElementFieldCallback = Nothing
+
+markupParserStartElementFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (MarkupParserStartElementFieldCallbackC))) ->
+    MarkupParserStartElementFieldCallback ->
+    Ptr MarkupParseContext ->
+    CString ->
+    CString ->
+    CString ->
+    Ptr () ->
+    IO ()
+markupParserStartElementFieldCallbackWrapper funptrptr _cb context element_name attribute_names attribute_values _ = do
+    context' <- (newBoxed MarkupParseContext) context
+    element_name' <- cstringToText element_name
+    attribute_names' <- cstringToText attribute_names
+    attribute_values' <- cstringToText attribute_values
+    _cb  context' element_name' attribute_names' attribute_values'
+    maybeReleaseFunPtr funptrptr
+
+-- callback MarkupParserEndElementFieldCallback
+markupParserEndElementFieldCallbackClosure :: MarkupParserEndElementFieldCallback -> IO Closure
+markupParserEndElementFieldCallbackClosure cb = newCClosure =<< mkMarkupParserEndElementFieldCallback wrapped
+    where wrapped = markupParserEndElementFieldCallbackWrapper Nothing cb
+
+type MarkupParserEndElementFieldCallbackC =
+    Ptr MarkupParseContext ->
+    CString ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkMarkupParserEndElementFieldCallback :: MarkupParserEndElementFieldCallbackC -> IO (FunPtr MarkupParserEndElementFieldCallbackC)
+
+type MarkupParserEndElementFieldCallback =
+    MarkupParseContext ->
+    T.Text ->
+    IO ()
+
+noMarkupParserEndElementFieldCallback :: Maybe MarkupParserEndElementFieldCallback
+noMarkupParserEndElementFieldCallback = Nothing
+
+markupParserEndElementFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (MarkupParserEndElementFieldCallbackC))) ->
+    MarkupParserEndElementFieldCallback ->
+    Ptr MarkupParseContext ->
+    CString ->
+    Ptr () ->
+    IO ()
+markupParserEndElementFieldCallbackWrapper funptrptr _cb context element_name _ = do
+    context' <- (newBoxed MarkupParseContext) context
+    element_name' <- cstringToText element_name
+    _cb  context' element_name'
+    maybeReleaseFunPtr funptrptr
+
+-- callback MarkupParserTextFieldCallback
+markupParserTextFieldCallbackClosure :: MarkupParserTextFieldCallback -> IO Closure
+markupParserTextFieldCallbackClosure cb = newCClosure =<< mkMarkupParserTextFieldCallback wrapped
+    where wrapped = markupParserTextFieldCallbackWrapper Nothing cb
+
+type MarkupParserTextFieldCallbackC =
+    Ptr MarkupParseContext ->
+    CString ->
+    Word64 ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkMarkupParserTextFieldCallback :: MarkupParserTextFieldCallbackC -> IO (FunPtr MarkupParserTextFieldCallbackC)
+
+type MarkupParserTextFieldCallback =
+    MarkupParseContext ->
+    T.Text ->
+    Word64 ->
+    IO ()
+
+noMarkupParserTextFieldCallback :: Maybe MarkupParserTextFieldCallback
+noMarkupParserTextFieldCallback = Nothing
+
+markupParserTextFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (MarkupParserTextFieldCallbackC))) ->
+    MarkupParserTextFieldCallback ->
+    Ptr MarkupParseContext ->
+    CString ->
+    Word64 ->
+    Ptr () ->
+    IO ()
+markupParserTextFieldCallbackWrapper funptrptr _cb context text text_len _ = do
+    context' <- (newBoxed MarkupParseContext) context
+    text' <- cstringToText text
+    _cb  context' text' text_len
+    maybeReleaseFunPtr funptrptr
+
+-- callback MarkupParserPassthroughFieldCallback
+markupParserPassthroughFieldCallbackClosure :: MarkupParserPassthroughFieldCallback -> IO Closure
+markupParserPassthroughFieldCallbackClosure cb = newCClosure =<< mkMarkupParserPassthroughFieldCallback wrapped
+    where wrapped = markupParserPassthroughFieldCallbackWrapper Nothing cb
+
+type MarkupParserPassthroughFieldCallbackC =
+    Ptr MarkupParseContext ->
+    CString ->
+    Word64 ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkMarkupParserPassthroughFieldCallback :: MarkupParserPassthroughFieldCallbackC -> IO (FunPtr MarkupParserPassthroughFieldCallbackC)
+
+type MarkupParserPassthroughFieldCallback =
+    MarkupParseContext ->
+    T.Text ->
+    Word64 ->
+    IO ()
+
+noMarkupParserPassthroughFieldCallback :: Maybe MarkupParserPassthroughFieldCallback
+noMarkupParserPassthroughFieldCallback = Nothing
+
+markupParserPassthroughFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (MarkupParserPassthroughFieldCallbackC))) ->
+    MarkupParserPassthroughFieldCallback ->
+    Ptr MarkupParseContext ->
+    CString ->
+    Word64 ->
+    Ptr () ->
+    IO ()
+markupParserPassthroughFieldCallbackWrapper funptrptr _cb context passthrough_text text_len _ = do
+    context' <- (newBoxed MarkupParseContext) context
+    passthrough_text' <- cstringToText passthrough_text
+    _cb  context' passthrough_text' text_len
+    maybeReleaseFunPtr funptrptr
+
+-- callback MarkupParserErrorFieldCallback
+markupParserErrorFieldCallbackClosure :: MarkupParserErrorFieldCallback -> IO Closure
+markupParserErrorFieldCallbackClosure cb = newCClosure =<< mkMarkupParserErrorFieldCallback wrapped
+    where wrapped = markupParserErrorFieldCallbackWrapper Nothing cb
+
+type MarkupParserErrorFieldCallbackC =
+    Ptr MarkupParseContext ->
+    Ptr GError ->
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkMarkupParserErrorFieldCallback :: MarkupParserErrorFieldCallbackC -> IO (FunPtr MarkupParserErrorFieldCallbackC)
+
+type MarkupParserErrorFieldCallback =
+    MarkupParseContext ->
+    GError ->
+    IO ()
+
+noMarkupParserErrorFieldCallback :: Maybe MarkupParserErrorFieldCallback
+noMarkupParserErrorFieldCallback = Nothing
+
+markupParserErrorFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (MarkupParserErrorFieldCallbackC))) ->
+    MarkupParserErrorFieldCallback ->
+    Ptr MarkupParseContext ->
+    Ptr GError ->
+    Ptr () ->
+    IO ()
+markupParserErrorFieldCallbackWrapper funptrptr _cb context error_ _ = do
+    context' <- (newBoxed MarkupParseContext) context
+    error_' <- (newBoxed GError) error_
+    _cb  context' error_'
+    maybeReleaseFunPtr funptrptr
+
+-- callback MemVTableFreeFieldCallback
+memVTableFreeFieldCallbackClosure :: MemVTableFreeFieldCallback -> IO Closure
+memVTableFreeFieldCallbackClosure cb = newCClosure =<< mkMemVTableFreeFieldCallback wrapped
+    where wrapped = memVTableFreeFieldCallbackWrapper Nothing cb
+
+type MemVTableFreeFieldCallbackC =
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkMemVTableFreeFieldCallback :: MemVTableFreeFieldCallbackC -> IO (FunPtr MemVTableFreeFieldCallbackC)
+
+type MemVTableFreeFieldCallback =
+    Ptr () ->
+    IO ()
+
+noMemVTableFreeFieldCallback :: Maybe MemVTableFreeFieldCallback
+noMemVTableFreeFieldCallback = Nothing
+
+memVTableFreeFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (MemVTableFreeFieldCallbackC))) ->
+    MemVTableFreeFieldCallback ->
+    Ptr () ->
+    IO ()
+memVTableFreeFieldCallbackWrapper funptrptr _cb mem = do
+    _cb  mem
+    maybeReleaseFunPtr funptrptr
+
+-- callback SourceCallbackFuncsRefFieldCallback
+sourceCallbackFuncsRefFieldCallbackClosure :: SourceCallbackFuncsRefFieldCallback -> IO Closure
+sourceCallbackFuncsRefFieldCallbackClosure cb = newCClosure =<< mkSourceCallbackFuncsRefFieldCallback wrapped
+    where wrapped = sourceCallbackFuncsRefFieldCallbackWrapper Nothing cb
+
+type SourceCallbackFuncsRefFieldCallbackC =
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkSourceCallbackFuncsRefFieldCallback :: SourceCallbackFuncsRefFieldCallbackC -> IO (FunPtr SourceCallbackFuncsRefFieldCallbackC)
+
+type SourceCallbackFuncsRefFieldCallback =
+    Ptr () ->
+    IO ()
+
+noSourceCallbackFuncsRefFieldCallback :: Maybe SourceCallbackFuncsRefFieldCallback
+noSourceCallbackFuncsRefFieldCallback = Nothing
+
+sourceCallbackFuncsRefFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (SourceCallbackFuncsRefFieldCallbackC))) ->
+    SourceCallbackFuncsRefFieldCallback ->
+    Ptr () ->
+    IO ()
+sourceCallbackFuncsRefFieldCallbackWrapper funptrptr _cb cb_data = do
+    _cb  cb_data
+    maybeReleaseFunPtr funptrptr
+
+-- callback SourceCallbackFuncsUnrefFieldCallback
+sourceCallbackFuncsUnrefFieldCallbackClosure :: SourceCallbackFuncsUnrefFieldCallback -> IO Closure
+sourceCallbackFuncsUnrefFieldCallbackClosure cb = newCClosure =<< mkSourceCallbackFuncsUnrefFieldCallback wrapped
+    where wrapped = sourceCallbackFuncsUnrefFieldCallbackWrapper Nothing cb
+
+type SourceCallbackFuncsUnrefFieldCallbackC =
+    Ptr () ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkSourceCallbackFuncsUnrefFieldCallback :: SourceCallbackFuncsUnrefFieldCallbackC -> IO (FunPtr SourceCallbackFuncsUnrefFieldCallbackC)
+
+type SourceCallbackFuncsUnrefFieldCallback =
+    Ptr () ->
+    IO ()
+
+noSourceCallbackFuncsUnrefFieldCallback :: Maybe SourceCallbackFuncsUnrefFieldCallback
+noSourceCallbackFuncsUnrefFieldCallback = Nothing
+
+sourceCallbackFuncsUnrefFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (SourceCallbackFuncsUnrefFieldCallbackC))) ->
+    SourceCallbackFuncsUnrefFieldCallback ->
+    Ptr () ->
+    IO ()
+sourceCallbackFuncsUnrefFieldCallbackWrapper funptrptr _cb cb_data = do
+    _cb  cb_data
+    maybeReleaseFunPtr funptrptr
+
+-- callback SourceFuncsPrepareFieldCallback
+sourceFuncsPrepareFieldCallbackClosure :: SourceFuncsPrepareFieldCallback -> IO Closure
+sourceFuncsPrepareFieldCallbackClosure cb = newCClosure =<< mkSourceFuncsPrepareFieldCallback wrapped
+    where wrapped = sourceFuncsPrepareFieldCallbackWrapper Nothing cb
+
+type SourceFuncsPrepareFieldCallbackC =
+    Ptr Source ->
+    Int32 ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkSourceFuncsPrepareFieldCallback :: SourceFuncsPrepareFieldCallbackC -> IO (FunPtr SourceFuncsPrepareFieldCallbackC)
+
+type SourceFuncsPrepareFieldCallback =
+    Source ->
+    Int32 ->
+    IO Bool
+
+noSourceFuncsPrepareFieldCallback :: Maybe SourceFuncsPrepareFieldCallback
+noSourceFuncsPrepareFieldCallback = Nothing
+
+sourceFuncsPrepareFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (SourceFuncsPrepareFieldCallbackC))) ->
+    SourceFuncsPrepareFieldCallback ->
+    Ptr Source ->
+    Int32 ->
+    IO CInt
+sourceFuncsPrepareFieldCallbackWrapper funptrptr _cb source timeout_ = do
+    source' <- (newBoxed Source) source
+    result <- _cb  source' timeout_
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback SourceFuncsCheckFieldCallback
+sourceFuncsCheckFieldCallbackClosure :: SourceFuncsCheckFieldCallback -> IO Closure
+sourceFuncsCheckFieldCallbackClosure cb = newCClosure =<< mkSourceFuncsCheckFieldCallback wrapped
+    where wrapped = sourceFuncsCheckFieldCallbackWrapper Nothing cb
+
+type SourceFuncsCheckFieldCallbackC =
+    Ptr Source ->
+    IO CInt
+
+foreign import ccall "wrapper"
+    mkSourceFuncsCheckFieldCallback :: SourceFuncsCheckFieldCallbackC -> IO (FunPtr SourceFuncsCheckFieldCallbackC)
+
+type SourceFuncsCheckFieldCallback =
+    Source ->
+    IO Bool
+
+noSourceFuncsCheckFieldCallback :: Maybe SourceFuncsCheckFieldCallback
+noSourceFuncsCheckFieldCallback = Nothing
+
+sourceFuncsCheckFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (SourceFuncsCheckFieldCallbackC))) ->
+    SourceFuncsCheckFieldCallback ->
+    Ptr Source ->
+    IO CInt
+sourceFuncsCheckFieldCallbackWrapper funptrptr _cb source = do
+    source' <- (newBoxed Source) source
+    result <- _cb  source'
+    maybeReleaseFunPtr funptrptr
+    let result' = (fromIntegral . fromEnum) result
+    return result'
+
+-- callback SourceFuncsFinalizeFieldCallback
+sourceFuncsFinalizeFieldCallbackClosure :: SourceFuncsFinalizeFieldCallback -> IO Closure
+sourceFuncsFinalizeFieldCallbackClosure cb = newCClosure =<< mkSourceFuncsFinalizeFieldCallback wrapped
+    where wrapped = sourceFuncsFinalizeFieldCallbackWrapper Nothing cb
+
+type SourceFuncsFinalizeFieldCallbackC =
+    Ptr Source ->
+    IO ()
+
+foreign import ccall "wrapper"
+    mkSourceFuncsFinalizeFieldCallback :: SourceFuncsFinalizeFieldCallbackC -> IO (FunPtr SourceFuncsFinalizeFieldCallbackC)
+
+type SourceFuncsFinalizeFieldCallback =
+    Source ->
+    IO ()
+
+noSourceFuncsFinalizeFieldCallback :: Maybe SourceFuncsFinalizeFieldCallback
+noSourceFuncsFinalizeFieldCallback = Nothing
+
+sourceFuncsFinalizeFieldCallbackWrapper ::
+    Maybe (Ptr (FunPtr (SourceFuncsFinalizeFieldCallbackC))) ->
+    SourceFuncsFinalizeFieldCallback ->
+    Ptr Source ->
+    IO ()
+sourceFuncsFinalizeFieldCallbackWrapper funptrptr _cb source = do
+    source' <- (newBoxed Source) source
+    _cb  source'
+    maybeReleaseFunPtr funptrptr
+
diff --git a/GI/GLibAttributes.hs b/GI/GLibAttributes.hs
new file mode 100644
--- /dev/null
+++ b/GI/GLibAttributes.hs
@@ -0,0 +1,48 @@
+{-# OPTIONS_GHC -fno-warn-orphans -fno-warn-unused-imports #-}
+
+-- Generated code.
+
+{-# OPTIONS_GHC -fno-warn-unused-imports #-}
+
+{-# LANGUAGE ForeignFunctionInterface, ConstraintKinds,
+    TypeFamilies, MultiParamTypeClasses, KindSignatures,
+    FlexibleInstances, UndecidableInstances, DataKinds,
+    OverloadedStrings, NegativeLiterals, FlexibleContexts #-}
+
+module GI.GLibAttributes where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+import Data.Char
+import Data.Int
+import Data.Word
+import qualified Data.ByteString.Char8 as B
+import Data.ByteString.Char8 (ByteString)
+import qualified Data.Map as Map
+import Foreign.C
+import Foreign.Ptr
+import Foreign.ForeignPtr
+import Foreign.ForeignPtr.Unsafe (unsafeForeignPtrToPtr)
+import Foreign.Storable (peek, poke, sizeOf)
+import Control.Applicative ((<$>))
+import Control.Exception (onException)
+import Control.Monad.IO.Class
+import qualified Data.Text as T
+
+import Data.GI.Base.Attributes hiding (get, set)
+import Data.GI.Base.BasicTypes
+import Data.GI.Base.BasicConversions
+import Data.GI.Base.Closure
+import Data.GI.Base.GError
+import Data.GI.Base.GHashTable
+import Data.GI.Base.GParamSpec
+import Data.GI.Base.GVariant
+import Data.GI.Base.GValue
+import Data.GI.Base.ManagedPtr
+import Data.GI.Base.Overloading
+import Data.GI.Base.Properties hiding (new)
+import Data.GI.Base.Signals (SignalConnectMode(..), connectSignalFunPtr, SignalHandlerId)
+import Data.GI.Base.Utils
+
+import GI.GLib
+
diff --git a/GI/GLibSignals.hs b/GI/GLibSignals.hs
new file mode 100644
--- /dev/null
+++ b/GI/GLibSignals.hs
@@ -0,0 +1,16 @@
+-- Generated code.
+
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+
+{-# LANGUAGE DataKinds,    FlexibleInstances,
+             TypeFamilies, MultiParamTypeClasses,
+               TypeOperators #-}
+
+module GI.GLibSignals where
+
+import Data.GI.Base.Properties (GObjectNotifySignalInfo)
+import Data.GI.Base.Signals
+import Data.GI.Base.Overloading
+
+import GI.GLib
+
diff --git a/GLib.overrides b/GLib.overrides
deleted file mode 100644
--- a/GLib.overrides
+++ /dev/null
@@ -1,31 +0,0 @@
-namespace GLib
-
-# "terminator_pos" is not marked as out.
-ignore IOChannel.read_line_string
-
-# The test_data argument is not marked as a closure.
-ignore test_add_data_func_full
-
-# "items_read" and "items_written" are out parameters, but they are
-# marked as in parameters the introspection data.
-ignore utf16_to_ucs4
-ignore utf16_to_utf8
-ignore utf8_to_ucs4
-ignore utf8_to_ucs4_fast
-ignore utf8_to_utf16
-
-# "result" parameter is an array, but it is not marked as such.
-ignore unichar_fully_decompose
-
-# The first argument is marked as g_unichar, but it is really an array
-# of g_unichar.
-ignore ucs4_to_utf16
-ignore ucs4_to_utf8
-
-# "line_number" is not marked as out.
-ignore MarkupParseContext.get_position
-
-# These require more complex logic.
-ignore base64_decode_step
-ignore base64_encode_step
-ignore base64_encode_close
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -454,3 +454,49 @@
 FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
 SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
 DAMAGES.
+
+                     END OF TERMS AND CONDITIONS
+
+           How to Apply These Terms to Your New Libraries
+
+  If you develop a new library, and you want it to be of the greatest
+possible use to the public, we recommend making it free software that
+everyone can redistribute and change.  You can do so by permitting
+redistribution under these terms (or, alternatively, under the terms of the
+ordinary General Public License).
+
+  To apply these terms, attach the following notices to the library.  It is
+safest to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least the
+"copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the library's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This library is free software; you can redistribute it and/or
+    modify it under the terms of the GNU Lesser General Public
+    License as published by the Free Software Foundation; either
+    version 2.1 of the License, or (at your option) any later version.
+
+    This library is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+    Lesser General Public License for more details.
+
+    You should have received a copy of the GNU Lesser General Public
+    License along with this library; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+
+Also add information on how to contact you by electronic and paper mail.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the library, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the
+  library `Frob' (a library for tweaking knobs) written by James Random Hacker.
+
+  <signature of Ty Coon>, 1 April 1990
+  Ty Coon, President of Vice
+
+That's all there is to it!
diff --git a/Setup.hs b/Setup.hs
--- a/Setup.hs
+++ b/Setup.hs
@@ -1,12 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
-
-import Distribution.Simple (defaultMainWithHooks)
-import Data.GI.CodeGen.CabalHooks (simpleHaskellGIHooks)
-
-main = defaultMainWithHooks (simpleHaskellGIHooks name version verbose
-                             overridesFile outputDir)
-    where name = "GLib"
-          version = "2.0"
-          verbose = False
-          overridesFile = Just "GLib.overrides"
-          outputDir = Nothing
+#!/usr/bin/env runhaskell
+import Distribution.Simple
+main = defaultMain
diff --git a/gi-glib.cabal b/gi-glib.cabal
--- a/gi-glib.cabal
+++ b/gi-glib.cabal
@@ -1,5 +1,6 @@
+-- Autogenerated, do not edit.
 name:               gi-glib
-version:            0.0.2.2
+version:            0.2.44.8
 synopsis:           GLib bindings
 description:        Bindings for GLib, autogenerated by haskell-gi.
 homepage:           https://github.com/haskell-gi/haskell-gi
@@ -8,26 +9,16 @@
 author:             Will Thompson, Iñaki García Etxebarria and Jonas Platte
 maintainer:         Iñaki García Etxebarria (garetxe@gmail.com)
 category:           Bindings
-build-type:         Custom
-cabal-version:      >= 1.24
-
-extra-source-files: GLib.overrides
-
-custom-setup
-  setup-depends: base >= 4.7,
-                 Cabal >= 1.24,
-                 haskell-gi >= 0.15
+build-type:         Simple
+cabal-version:      >=1.10
 
 library
     default-language:   Haskell2010
-    default-extensions: NoImplicitPrelude, ScopedTypeVariables, CPP, OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts
-    other-extensions:   PatternSynonyms ViewPatterns
-    ghc-options:        -fno-warn-unused-imports -fno-warn-warnings-deprecations
-
-    pkgconfig-depends:  glib-2.0
-    build-depends: base >= 4.7 && <5,
-        haskell-gi-base >= 0.15 && < 1,
+    exposed-modules:    GI.GLib, GI.GLibAttributes, GI.GLibSignals
+    pkgconfig-depends:  glib-2.0 >= 2.44
+    build-depends: base >= 4.6 && <4.9,
+        haskell-gi-base >= 0.8 && < 1,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
-        transformers >= 0.5
+        transformers >= 0.3
