diff --git a/GI/GLib.hs b/GI/GLib.hs
--- a/GI/GLib.hs
+++ b/GI/GLib.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -15,6 +16,10 @@
     module GI.GLib.Unions                   ,
 
 
+
+    module Data.GI.Base                     ,
+
+
     ) where
 
 import GI.GLib.Callbacks
@@ -35,4 +40,5 @@
 import GI.GLib.Types
 import GI.GLib.Callbacks
 
+import Data.GI.Base
 
diff --git a/GI/GLib/Callbacks.hs b/GI/GLib/Callbacks.hs
--- a/GI/GLib/Callbacks.hs
+++ b/GI/GLib/Callbacks.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -726,11 +727,11 @@
     CString ->
     Ptr () ->
     IO CInt
-testLogFatalFuncWrapper funptrptr _cb log_domain log_level message _ = do
-    log_domain' <- cstringToText log_domain
-    let log_level' = wordToGFlags log_level
+testLogFatalFuncWrapper funptrptr _cb logDomain logLevel message _ = do
+    logDomain' <- cstringToText logDomain
+    let logLevel' = wordToGFlags logLevel
     message' <- cstringToText message
-    result <- _cb  log_domain' log_level' message'
+    result <- _cb  logDomain' logLevel' message'
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -871,9 +872,9 @@
     Ptr Source ->
     Int32 ->
     IO CInt
-sourceFuncsPrepareFieldCallbackWrapper funptrptr _cb source timeout_ = do
+sourceFuncsPrepareFieldCallbackWrapper funptrptr _cb source timeout = do
     source' <- (newBoxed Source) source
-    result <- _cb  source' timeout_
+    result <- _cb  source' timeout
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -1016,8 +1017,8 @@
     SourceCallbackFuncsUnrefFieldCallback ->
     Ptr () ->
     IO ()
-sourceCallbackFuncsUnrefFieldCallbackWrapper funptrptr _cb cb_data = do
-    _cb  cb_data
+sourceCallbackFuncsUnrefFieldCallbackWrapper funptrptr _cb cbData = do
+    _cb  cbData
     maybeReleaseFunPtr funptrptr
 
 -- callback SourceCallbackFuncsRefFieldCallback
@@ -1044,8 +1045,8 @@
     SourceCallbackFuncsRefFieldCallback ->
     Ptr () ->
     IO ()
-sourceCallbackFuncsRefFieldCallbackWrapper funptrptr _cb cb_data = do
-    _cb  cb_data
+sourceCallbackFuncsRefFieldCallbackWrapper funptrptr _cb cbData = do
+    _cb  cbData
     maybeReleaseFunPtr funptrptr
 
 -- callback SequenceIterCompareFunc
@@ -1153,10 +1154,10 @@
     Ptr String ->
     Ptr () ->
     IO CInt
-regexEvalCallbackWrapper funptrptr _cb match_info result_ _ = do
-    match_info' <- (newBoxed MatchInfo) match_info
+regexEvalCallbackWrapper funptrptr _cb matchInfo result_ _ = do
+    matchInfo' <- (newBoxed MatchInfo) matchInfo
     result_' <- (newBoxed String) result_
-    result <- _cb  match_info' result_'
+    result <- _cb  matchInfo' result_'
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -1220,9 +1221,9 @@
     Word32 ->
     Int32 ->
     IO Int32
-pollFuncWrapper funptrptr _cb ufds nfsd timeout_ = do
+pollFuncWrapper funptrptr _cb ufds nfsd timeout = do
     ufds' <- (newBoxed PollFD) ufds
-    result <- _cb  ufds' nfsd timeout_
+    result <- _cb  ufds' nfsd timeout
     maybeReleaseFunPtr funptrptr
     return result
 
@@ -1332,10 +1333,10 @@
     CString ->
     Ptr () ->
     IO CInt
-optionArgFuncWrapper funptrptr _cb option_name value data_ = do
-    option_name' <- cstringToText option_name
+optionArgFuncWrapper funptrptr _cb optionName value data_ = do
+    optionName' <- cstringToText optionName
     value' <- cstringToText value
-    result <- _cb  option_name' value' data_
+    result <- _cb  optionName' value' data_
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -1466,10 +1467,10 @@
     Word64 ->
     Ptr () ->
     IO ()
-markupParserTextFieldCallbackWrapper funptrptr _cb context text text_len _ = do
+markupParserTextFieldCallbackWrapper funptrptr _cb context text textLen _ = do
     context' <- (newBoxed MarkupParseContext) context
     text' <- cstringToText text
-    _cb  context' text' text_len
+    _cb  context' text' textLen
     maybeReleaseFunPtr funptrptr
 
 -- callback MarkupParserStartElementFieldCallback
@@ -1507,12 +1508,12 @@
     CString ->
     Ptr () ->
     IO ()
-markupParserStartElementFieldCallbackWrapper funptrptr _cb context element_name attribute_names attribute_values _ = do
+markupParserStartElementFieldCallbackWrapper funptrptr _cb context elementName attributeNames attributeValues _ = 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'
+    elementName' <- cstringToText elementName
+    attributeNames' <- cstringToText attributeNames
+    attributeValues' <- cstringToText attributeValues
+    _cb  context' elementName' attributeNames' attributeValues'
     maybeReleaseFunPtr funptrptr
 
 -- callback MarkupParserPassthroughFieldCallback
@@ -1547,10 +1548,10 @@
     Word64 ->
     Ptr () ->
     IO ()
-markupParserPassthroughFieldCallbackWrapper funptrptr _cb context passthrough_text text_len _ = do
+markupParserPassthroughFieldCallbackWrapper funptrptr _cb context passthroughText textLen _ = do
     context' <- (newBoxed MarkupParseContext) context
-    passthrough_text' <- cstringToText passthrough_text
-    _cb  context' passthrough_text' text_len
+    passthroughText' <- cstringToText passthroughText
+    _cb  context' passthroughText' textLen
     maybeReleaseFunPtr funptrptr
 
 -- callback MarkupParserErrorFieldCallback
@@ -1617,10 +1618,10 @@
     CString ->
     Ptr () ->
     IO ()
-markupParserEndElementFieldCallbackWrapper funptrptr _cb context element_name _ = do
+markupParserEndElementFieldCallbackWrapper funptrptr _cb context elementName _ = do
     context' <- (newBoxed MarkupParseContext) context
-    element_name' <- cstringToText element_name
-    _cb  context' element_name'
+    elementName' <- cstringToText elementName
+    _cb  context' elementName'
     maybeReleaseFunPtr funptrptr
 
 -- callback LogFunc
@@ -1655,11 +1656,11 @@
     CString ->
     Ptr () ->
     IO ()
-logFuncWrapper funptrptr _cb log_domain log_level message _ = do
-    log_domain' <- cstringToText log_domain
-    let log_level' = wordToGFlags log_level
+logFuncWrapper funptrptr _cb logDomain logLevel message _ = do
+    logDomain' <- cstringToText logDomain
+    let logLevel' = wordToGFlags logLevel
     message' <- cstringToText message
-    _cb  log_domain' log_level' message'
+    _cb  logDomain' logLevel' message'
     maybeReleaseFunPtr funptrptr
 
 -- callback IOFuncsIoWriteFieldCallback
@@ -1695,10 +1696,10 @@
     Word64 ->
     Word64 ->
     IO CUInt
-iOFuncsIoWriteFieldCallbackWrapper funptrptr _cb channel buf count bytes_written = do
+iOFuncsIoWriteFieldCallbackWrapper funptrptr _cb channel buf count bytesWritten = do
     channel' <- (newBoxed IOChannel) channel
     buf' <- cstringToText buf
-    result <- _cb  channel' buf' count bytes_written
+    result <- _cb  channel' buf' count bytesWritten
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -1809,10 +1810,10 @@
     Word64 ->
     Word64 ->
     IO CUInt
-iOFuncsIoReadFieldCallbackWrapper funptrptr _cb channel buf count bytes_read = do
+iOFuncsIoReadFieldCallbackWrapper funptrptr _cb channel buf count bytesRead = do
     channel' <- (newBoxed IOChannel) channel
     buf' <- cstringToText buf
-    result <- _cb  channel' buf' count bytes_read
+    result <- _cb  channel' buf' count bytesRead
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -2008,9 +2009,9 @@
     Ptr Hook ->
     Ptr () ->
     IO ()
-hookMarshallerWrapper funptrptr _cb hook marshal_data = do
+hookMarshallerWrapper funptrptr _cb hook marshalData = do
     hook' <- (newPtr 64 Hook) hook
-    _cb  hook' marshal_data
+    _cb  hook' marshalData
     maybeReleaseFunPtr funptrptr
 
 -- callback HookFunc
@@ -2102,10 +2103,10 @@
     Ptr HookList ->
     Ptr Hook ->
     IO ()
-hookFinalizeFuncWrapper funptrptr _cb hook_list hook = do
-    hook_list' <- (newPtr 56 HookList) hook_list
+hookFinalizeFuncWrapper funptrptr _cb hookList hook = do
+    hookList' <- (newPtr 56 HookList) hookList
     hook' <- (newPtr 64 Hook) hook
-    _cb  hook_list' hook'
+    _cb  hookList' hook'
     maybeReleaseFunPtr funptrptr
 
 -- callback HookCompareFunc
@@ -2135,10 +2136,10 @@
     Ptr Hook ->
     Ptr Hook ->
     IO Int32
-hookCompareFuncWrapper funptrptr _cb new_hook sibling = do
-    new_hook' <- (newPtr 64 Hook) new_hook
+hookCompareFuncWrapper funptrptr _cb newHook sibling = do
+    newHook' <- (newPtr 64 Hook) newHook
     sibling' <- (newPtr 64 Hook) sibling
-    result <- _cb  new_hook' sibling'
+    result <- _cb  newHook' sibling'
     maybeReleaseFunPtr funptrptr
     return result
 
@@ -2169,9 +2170,9 @@
     Ptr Hook ->
     Ptr () ->
     IO CInt
-hookCheckMarshallerWrapper funptrptr _cb hook marshal_data = do
+hookCheckMarshallerWrapper funptrptr _cb hook marshalData = do
     hook' <- (newPtr 64 Hook) hook
-    result <- _cb  hook' marshal_data
+    result <- _cb  hook' marshalData
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -2451,8 +2452,8 @@
     Ptr () ->
     Ptr () ->
     IO ()
-dataForeachFuncWrapper funptrptr _cb key_id data_ _ = do
-    _cb  key_id data_
+dataForeachFuncWrapper funptrptr _cb keyId data_ _ = do
+    _cb  keyId data_
     maybeReleaseFunPtr funptrptr
 
 -- callback CompareFunc
diff --git a/GI/GLib/Constants.hs b/GI/GLib/Constants.hs
--- a/GI/GLib/Constants.hs
+++ b/GI/GLib/Constants.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE PatternSynonyms, ScopedTypeVariables, ViewPatterns #-}
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
diff --git a/GI/GLib/Enums.hs b/GI/GLib/Enums.hs
--- a/GI/GLib/Enums.hs
+++ b/GI/GLib/Enums.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
diff --git a/GI/GLib/Flags.hs b/GI/GLib/Flags.hs
--- a/GI/GLib/Flags.hs
+++ b/GI/GLib/Flags.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
diff --git a/GI/GLib/Functions.hs b/GI/GLib/Functions.hs
--- a/GI/GLib/Functions.hs
+++ b/GI/GLib/Functions.hs
@@ -1,14313 +1,11343 @@
 
-{- |
-Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-License    : LGPL-2.1
-Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
--}
-
-module GI.GLib.Functions
-    ( 
-
- -- * Methods
--- ** access
-    access                                  ,
-
-
--- ** asciiDigitValue
-    asciiDigitValue                         ,
-
-
--- ** asciiDtostr
-    asciiDtostr                             ,
-
-
--- ** asciiFormatd
-    asciiFormatd                            ,
-
-
--- ** asciiStrcasecmp
-    asciiStrcasecmp                         ,
-
-
--- ** asciiStrdown
-    asciiStrdown                            ,
-
-
--- ** asciiStrncasecmp
-    asciiStrncasecmp                        ,
-
-
--- ** asciiStrtod
-    asciiStrtod                             ,
-
-
--- ** asciiStrtoll
-    asciiStrtoll                            ,
-
-
--- ** asciiStrtoull
-    asciiStrtoull                           ,
-
-
--- ** asciiStrup
-    asciiStrup                              ,
-
-
--- ** asciiTolower
-    asciiTolower                            ,
-
-
--- ** asciiToupper
-    asciiToupper                            ,
-
-
--- ** asciiXdigitValue
-    asciiXdigitValue                        ,
-
-
--- ** assertWarning
-    assertWarning                           ,
-
-
--- ** assertionMessage
-    assertionMessage                        ,
-
-
--- ** assertionMessageCmpstr
-    assertionMessageCmpstr                  ,
-
-
--- ** assertionMessageError
-    assertionMessageError                   ,
-
-
--- ** assertionMessageExpr
-    assertionMessageExpr                    ,
-
-
--- ** atexit
-    atexit                                  ,
-
-
--- ** atomicIntAdd
-    atomicIntAdd                            ,
-
-
--- ** atomicIntAnd
-    atomicIntAnd                            ,
-
-
--- ** atomicIntCompareAndExchange
-    atomicIntCompareAndExchange             ,
-
-
--- ** atomicIntDecAndTest
-    atomicIntDecAndTest                     ,
-
-
--- ** atomicIntExchangeAndAdd
-    atomicIntExchangeAndAdd                 ,
-
-
--- ** atomicIntGet
-    atomicIntGet                            ,
-
-
--- ** atomicIntInc
-    atomicIntInc                            ,
-
-
--- ** atomicIntOr
-    atomicIntOr                             ,
-
-
--- ** atomicIntSet
-    atomicIntSet                            ,
-
-
--- ** atomicIntXor
-    atomicIntXor                            ,
-
-
--- ** atomicPointerAdd
-    atomicPointerAdd                        ,
-
-
--- ** atomicPointerAnd
-    atomicPointerAnd                        ,
-
-
--- ** atomicPointerCompareAndExchange
-    atomicPointerCompareAndExchange         ,
-
-
--- ** atomicPointerOr
-    atomicPointerOr                         ,
-
-
--- ** atomicPointerSet
-    atomicPointerSet                        ,
-
-
--- ** atomicPointerXor
-    atomicPointerXor                        ,
-
-
--- ** base64Decode
-    base64Decode                            ,
-
-
--- ** base64DecodeInplace
-    base64DecodeInplace                     ,
-
-
--- ** base64Encode
-    base64Encode                            ,
-
-
--- ** basename
-    basename                                ,
-
-
--- ** bitLock
-    bitLock                                 ,
-
-
--- ** bitNthLsf
-    bitNthLsf                               ,
-
-
--- ** bitNthMsf
-    bitNthMsf                               ,
-
-
--- ** bitStorage
-    bitStorage                              ,
-
-
--- ** bitTrylock
-    bitTrylock                              ,
-
-
--- ** bitUnlock
-    bitUnlock                               ,
-
-
--- ** bookmarkFileErrorQuark
-    bookmarkFileErrorQuark                  ,
-
-
--- ** buildFilenamev
-    buildFilenamev                          ,
-
-
--- ** buildPathv
-    buildPathv                              ,
-
-
--- ** byteArrayFree
-    byteArrayFree                           ,
-
-
--- ** byteArrayFreeToBytes
-    byteArrayFreeToBytes                    ,
-
-
--- ** byteArrayNew
-    byteArrayNew                            ,
-
-
--- ** byteArrayNewTake
-    byteArrayNewTake                        ,
-
-
--- ** byteArrayUnref
-    byteArrayUnref                          ,
-
-
--- ** chdir
-    chdir                                   ,
-
-
--- ** checkVersion
-    checkVersion                            ,
-
-
--- ** checksumTypeGetLength
-    checksumTypeGetLength                   ,
-
-
--- ** childWatchAdd
-    childWatchAdd                           ,
-
-
--- ** childWatchSourceNew
-    childWatchSourceNew                     ,
-
-
--- ** clearError
-    clearError                              ,
-
-
--- ** close
-    close                                   ,
-
-
--- ** computeChecksumForBytes
-    computeChecksumForBytes                 ,
-
-
--- ** computeChecksumForData
-    computeChecksumForData                  ,
-
-
--- ** computeChecksumForString
-    computeChecksumForString                ,
-
-
--- ** computeHmacForData
-    computeHmacForData                      ,
-
-
--- ** computeHmacForString
-    computeHmacForString                    ,
-
-
--- ** convert
-    convert                                 ,
-
-
--- ** convertErrorQuark
-    convertErrorQuark                       ,
-
-
--- ** convertWithFallback
-    convertWithFallback                     ,
-
-
--- ** convertWithIconv
-    convertWithIconv                        ,
-
-
--- ** datalistClear
-    datalistClear                           ,
-
-
--- ** datalistGetFlags
-    datalistGetFlags                        ,
-
-
--- ** datalistIdReplaceData
-    datalistIdReplaceData                   ,
-
-
--- ** datalistIdSetDataFull
-    datalistIdSetDataFull                   ,
-
-
--- ** datalistInit
-    datalistInit                            ,
-
-
--- ** datalistSetFlags
-    datalistSetFlags                        ,
-
-
--- ** datalistUnsetFlags
-    datalistUnsetFlags                      ,
-
-
--- ** datasetDestroy
-    datasetDestroy                          ,
-
-
--- ** datasetIdSetDataFull
-    datasetIdSetDataFull                    ,
-
-
--- ** dateGetDaysInMonth
-    dateGetDaysInMonth                      ,
-
-
--- ** dateGetMondayWeeksInYear
-    dateGetMondayWeeksInYear                ,
-
-
--- ** dateGetSundayWeeksInYear
-    dateGetSundayWeeksInYear                ,
-
-
--- ** dateIsLeapYear
-    dateIsLeapYear                          ,
-
-
--- ** dateStrftime
-    dateStrftime                            ,
-
-
--- ** dateTimeCompare
-    dateTimeCompare                         ,
-
-
--- ** dateTimeEqual
-    dateTimeEqual                           ,
-
-
--- ** dateTimeHash
-    dateTimeHash                            ,
-
-
--- ** dateValidDay
-    dateValidDay                            ,
-
-
--- ** dateValidDmy
-    dateValidDmy                            ,
-
-
--- ** dateValidJulian
-    dateValidJulian                         ,
-
-
--- ** dateValidMonth
-    dateValidMonth                          ,
-
-
--- ** dateValidWeekday
-    dateValidWeekday                        ,
-
-
--- ** dateValidYear
-    dateValidYear                           ,
-
-
--- ** dcgettext
-    dcgettext                               ,
-
-
--- ** dgettext
-    dgettext                                ,
-
-
--- ** dirMakeTmp
-    dirMakeTmp                              ,
-
-
--- ** directEqual
-    directEqual                             ,
-
-
--- ** directHash
-    directHash                              ,
-
-
--- ** dngettext
-    dngettext                               ,
-
-
--- ** doubleEqual
-    doubleEqual                             ,
-
-
--- ** doubleHash
-    doubleHash                              ,
-
-
--- ** dpgettext
-    dpgettext                               ,
-
-
--- ** dpgettext2
-    dpgettext2                              ,
-
-
--- ** environGetenv
-    environGetenv                           ,
-
-
--- ** environSetenv
-    environSetenv                           ,
-
-
--- ** environUnsetenv
-    environUnsetenv                         ,
-
-
--- ** fileErrorFromErrno
-    fileErrorFromErrno                      ,
-
-
--- ** fileErrorQuark
-    fileErrorQuark                          ,
-
-
--- ** fileGetContents
-    fileGetContents                         ,
-
-
--- ** fileOpenTmp
-    fileOpenTmp                             ,
-
-
--- ** fileReadLink
-    fileReadLink                            ,
-
-
--- ** fileSetContents
-    fileSetContents                         ,
-
-
--- ** fileTest
-    fileTest                                ,
-
-
--- ** filenameDisplayBasename
-    filenameDisplayBasename                 ,
-
-
--- ** filenameDisplayName
-    filenameDisplayName                     ,
-
-
--- ** filenameFromUri
-    filenameFromUri                         ,
-
-
--- ** filenameFromUtf8
-    filenameFromUtf8                        ,
-
-
--- ** filenameToUri
-    filenameToUri                           ,
-
-
--- ** filenameToUtf8
-    filenameToUtf8                          ,
-
-
--- ** findProgramInPath
-    findProgramInPath                       ,
-
-
--- ** formatSize
-    formatSize                              ,
-
-
--- ** formatSizeForDisplay
-    formatSizeForDisplay                    ,
-
-
--- ** formatSizeFull
-    formatSizeFull                          ,
-
-
--- ** free
-    free                                    ,
-
-
--- ** getApplicationName
-    getApplicationName                      ,
-
-
--- ** getCharset
-    getCharset                              ,
-
-
--- ** getCodeset
-    getCodeset                              ,
-
-
--- ** getCurrentDir
-    getCurrentDir                           ,
-
-
--- ** getCurrentTime
-    getCurrentTime                          ,
-
-
--- ** getEnviron
-    getEnviron                              ,
-
-
--- ** getFilenameCharsets
-    getFilenameCharsets                     ,
-
-
--- ** getHomeDir
-    getHomeDir                              ,
-
-
--- ** getHostName
-    getHostName                             ,
-
-
--- ** getLanguageNames
-    getLanguageNames                        ,
-
-
--- ** getLocaleVariants
-    getLocaleVariants                       ,
-
-
--- ** getMonotonicTime
-    getMonotonicTime                        ,
-
-
--- ** getNumProcessors
-    getNumProcessors                        ,
-
-
--- ** getPrgname
-    getPrgname                              ,
-
-
--- ** getRealName
-    getRealName                             ,
-
-
--- ** getRealTime
-    getRealTime                             ,
-
-
--- ** getSystemConfigDirs
-    getSystemConfigDirs                     ,
-
-
--- ** getSystemDataDirs
-    getSystemDataDirs                       ,
-
-
--- ** getTmpDir
-    getTmpDir                               ,
-
-
--- ** getUserCacheDir
-    getUserCacheDir                         ,
-
-
--- ** getUserConfigDir
-    getUserConfigDir                        ,
-
-
--- ** getUserDataDir
-    getUserDataDir                          ,
-
-
--- ** getUserName
-    getUserName                             ,
-
-
--- ** getUserRuntimeDir
-    getUserRuntimeDir                       ,
-
-
--- ** getUserSpecialDir
-    getUserSpecialDir                       ,
-
-
--- ** getenv
-    getenv                                  ,
-
-
--- ** hashTableAdd
-    hashTableAdd                            ,
-
-
--- ** hashTableContains
-    hashTableContains                       ,
-
-
--- ** hashTableDestroy
-    hashTableDestroy                        ,
-
-
--- ** hashTableInsert
-    hashTableInsert                         ,
-
-
--- ** hashTableLookupExtended
-    hashTableLookupExtended                 ,
-
-
--- ** hashTableRemove
-    hashTableRemove                         ,
-
-
--- ** hashTableRemoveAll
-    hashTableRemoveAll                      ,
-
-
--- ** hashTableReplace
-    hashTableReplace                        ,
-
-
--- ** hashTableSize
-    hashTableSize                           ,
-
-
--- ** hashTableSteal
-    hashTableSteal                          ,
-
-
--- ** hashTableStealAll
-    hashTableStealAll                       ,
-
-
--- ** hashTableUnref
-    hashTableUnref                          ,
-
-
--- ** hookDestroy
-    hookDestroy                             ,
-
-
--- ** hookDestroyLink
-    hookDestroyLink                         ,
-
-
--- ** hookFree
-    hookFree                                ,
-
-
--- ** hookInsertBefore
-    hookInsertBefore                        ,
-
-
--- ** hookPrepend
-    hookPrepend                             ,
-
-
--- ** hookUnref
-    hookUnref                               ,
-
-
--- ** hostnameIsAsciiEncoded
-    hostnameIsAsciiEncoded                  ,
-
-
--- ** hostnameIsIpAddress
-    hostnameIsIpAddress                     ,
-
-
--- ** hostnameIsNonAscii
-    hostnameIsNonAscii                      ,
-
-
--- ** hostnameToAscii
-    hostnameToAscii                         ,
-
-
--- ** hostnameToUnicode
-    hostnameToUnicode                       ,
-
-
--- ** iconv
-    iconv                                   ,
-
-
--- ** idleAdd
-    idleAdd                                 ,
-
-
--- ** idleRemoveByData
-    idleRemoveByData                        ,
-
-
--- ** idleSourceNew
-    idleSourceNew                           ,
-
-
--- ** int64Equal
-    int64Equal                              ,
-
-
--- ** int64Hash
-    int64Hash                               ,
-
-
--- ** intEqual
-    intEqual                                ,
-
-
--- ** intHash
-    intHash                                 ,
-
-
--- ** internStaticString
-    internStaticString                      ,
-
-
--- ** internString
-    internString                            ,
-
-
--- ** ioAddWatch
-    ioAddWatch                              ,
-
-
--- ** ioChannelErrorFromErrno
-    ioChannelErrorFromErrno                 ,
-
-
--- ** ioChannelErrorQuark
-    ioChannelErrorQuark                     ,
-
-
--- ** ioCreateWatch
-    ioCreateWatch                           ,
-
-
--- ** keyFileErrorQuark
-    keyFileErrorQuark                       ,
-
-
--- ** listenv
-    listenv                                 ,
-
-
--- ** localeFromUtf8
-    localeFromUtf8                          ,
-
-
--- ** localeToUtf8
-    localeToUtf8                            ,
-
-
--- ** logDefaultHandler
-    logDefaultHandler                       ,
-
-
--- ** logRemoveHandler
-    logRemoveHandler                        ,
-
-
--- ** logSetAlwaysFatal
-    logSetAlwaysFatal                       ,
-
-
--- ** logSetFatalMask
-    logSetFatalMask                         ,
-
-
--- ** logSetHandler
-    logSetHandler                           ,
-
-
--- ** mainContextDefault
-    mainContextDefault                      ,
-
-
--- ** mainContextGetThreadDefault
-    mainContextGetThreadDefault             ,
-
-
--- ** mainContextRefThreadDefault
-    mainContextRefThreadDefault             ,
-
-
--- ** mainCurrentSource
-    mainCurrentSource                       ,
-
-
--- ** mainDepth
-    mainDepth                               ,
-
-
--- ** markupErrorQuark
-    markupErrorQuark                        ,
-
-
--- ** markupEscapeText
-    markupEscapeText                        ,
-
-
--- ** memIsSystemMalloc
-    memIsSystemMalloc                       ,
-
-
--- ** memProfile
-    memProfile                              ,
-
-
--- ** memSetVtable
-    memSetVtable                            ,
-
-
--- ** mkdirWithParents
-    mkdirWithParents                        ,
-
-
--- ** mkdtemp
-    mkdtemp                                 ,
-
-
--- ** mkdtempFull
-    mkdtempFull                             ,
-
-
--- ** mkstemp
-    mkstemp                                 ,
-
-
--- ** mkstempFull
-    mkstempFull                             ,
-
-
--- ** nullifyPointer
-    nullifyPointer                          ,
-
-
--- ** onErrorQuery
-    onErrorQuery                            ,
-
-
--- ** onErrorStackTrace
-    onErrorStackTrace                       ,
-
-
--- ** onceInitEnter
-    onceInitEnter                           ,
-
-
--- ** onceInitLeave
-    onceInitLeave                           ,
-
-
--- ** optionErrorQuark
-    optionErrorQuark                        ,
-
-
--- ** parseDebugString
-    parseDebugString                        ,
-
-
--- ** pathGetBasename
-    pathGetBasename                         ,
-
-
--- ** pathGetDirname
-    pathGetDirname                          ,
-
-
--- ** pathIsAbsolute
-    pathIsAbsolute                          ,
-
-
--- ** pathSkipRoot
-    pathSkipRoot                            ,
-
-
--- ** patternMatch
-    patternMatch                            ,
-
-
--- ** patternMatchSimple
-    patternMatchSimple                      ,
-
-
--- ** patternMatchString
-    patternMatchString                      ,
-
-
--- ** pointerBitLock
-    pointerBitLock                          ,
-
-
--- ** pointerBitTrylock
-    pointerBitTrylock                       ,
-
-
--- ** pointerBitUnlock
-    pointerBitUnlock                        ,
-
-
--- ** poll
-    poll                                    ,
-
-
--- ** propagateError
-    propagateError                          ,
-
-
--- ** quarkFromStaticString
-    quarkFromStaticString                   ,
-
-
--- ** quarkFromString
-    quarkFromString                         ,
-
-
--- ** quarkToString
-    quarkToString                           ,
-
-
--- ** quarkTryString
-    quarkTryString                          ,
-
-
--- ** randomDouble
-    randomDouble                            ,
-
-
--- ** randomDoubleRange
-    randomDoubleRange                       ,
-
-
--- ** randomInt
-    randomInt                               ,
-
-
--- ** randomIntRange
-    randomIntRange                          ,
-
-
--- ** randomSetSeed
-    randomSetSeed                           ,
-
-
--- ** regexCheckReplacement
-    regexCheckReplacement                   ,
-
-
--- ** regexErrorQuark
-    regexErrorQuark                         ,
-
-
--- ** regexEscapeNul
-    regexEscapeNul                          ,
-
-
--- ** regexEscapeString
-    regexEscapeString                       ,
-
-
--- ** regexMatchSimple
-    regexMatchSimple                        ,
-
-
--- ** regexSplitSimple
-    regexSplitSimple                        ,
-
-
--- ** reloadUserSpecialDirsCache
-    reloadUserSpecialDirsCache              ,
-
-
--- ** returnIfFailWarning
-    returnIfFailWarning                     ,
-
-
--- ** rmdir
-    rmdir                                   ,
-
-
--- ** sequenceMove
-    sequenceMove                            ,
-
-
--- ** sequenceMoveRange
-    sequenceMoveRange                       ,
-
-
--- ** sequenceRemove
-    sequenceRemove                          ,
-
-
--- ** sequenceRemoveRange
-    sequenceRemoveRange                     ,
-
-
--- ** sequenceSet
-    sequenceSet                             ,
-
-
--- ** sequenceSwap
-    sequenceSwap                            ,
-
-
--- ** setApplicationName
-    setApplicationName                      ,
-
-
--- ** setErrorLiteral
-    setErrorLiteral                         ,
-
-
--- ** setPrgname
-    setPrgname                              ,
-
-
--- ** setenv
-    setenv                                  ,
-
-
--- ** shellErrorQuark
-    shellErrorQuark                         ,
-
-
--- ** shellParseArgv
-    shellParseArgv                          ,
-
-
--- ** shellQuote
-    shellQuote                              ,
-
-
--- ** shellUnquote
-    shellUnquote                            ,
-
-
--- ** sliceFree1
-    sliceFree1                              ,
-
-
--- ** sliceFreeChainWithOffset
-    sliceFreeChainWithOffset                ,
-
-
--- ** sliceGetConfig
-    sliceGetConfig                          ,
-
-
--- ** sliceGetConfigState
-    sliceGetConfigState                     ,
-
-
--- ** sliceSetConfig
-    sliceSetConfig                          ,
-
-
--- ** sourceRemove
-    sourceRemove                            ,
-
-
--- ** sourceRemoveByFuncsUserData
-    sourceRemoveByFuncsUserData             ,
-
-
--- ** sourceRemoveByUserData
-    sourceRemoveByUserData                  ,
-
-
--- ** sourceSetNameById
-    sourceSetNameById                       ,
-
-
--- ** spacedPrimesClosest
-    spacedPrimesClosest                     ,
-
-
--- ** spawnAsync
-    spawnAsync                              ,
-
-
--- ** spawnAsyncWithPipes
-    spawnAsyncWithPipes                     ,
-
-
--- ** spawnCheckExitStatus
-    spawnCheckExitStatus                    ,
-
-
--- ** spawnClosePid
-    spawnClosePid                           ,
-
-
--- ** spawnCommandLineAsync
-    spawnCommandLineAsync                   ,
-
-
--- ** spawnCommandLineSync
-    spawnCommandLineSync                    ,
-
-
--- ** spawnErrorQuark
-    spawnErrorQuark                         ,
-
-
--- ** spawnExitErrorQuark
-    spawnExitErrorQuark                     ,
-
-
--- ** spawnSync
-    spawnSync                               ,
-
-
--- ** stpcpy
-    stpcpy                                  ,
-
-
--- ** strEqual
-    strEqual                                ,
-
-
--- ** strHasPrefix
-    strHasPrefix                            ,
-
-
--- ** strHasSuffix
-    strHasSuffix                            ,
-
-
--- ** strHash
-    strHash                                 ,
-
-
--- ** strIsAscii
-    strIsAscii                              ,
-
-
--- ** strMatchString
-    strMatchString                          ,
-
-
--- ** strToAscii
-    strToAscii                              ,
-
-
--- ** strTokenizeAndFold
-    strTokenizeAndFold                      ,
-
-
--- ** strcanon
-    strcanon                                ,
-
-
--- ** strcasecmp
-    strcasecmp                              ,
-
-
--- ** strchomp
-    strchomp                                ,
-
-
--- ** strchug
-    strchug                                 ,
-
-
--- ** strcmp0
-    strcmp0                                 ,
-
-
--- ** strcompress
-    strcompress                             ,
-
-
--- ** strdelimit
-    strdelimit                              ,
-
-
--- ** strdown
-    strdown                                 ,
-
-
--- ** strdup
-    strdup                                  ,
-
-
--- ** strerror
-    strerror                                ,
-
-
--- ** strescape
-    strescape                               ,
-
-
--- ** strfreev
-    strfreev                                ,
-
-
--- ** stringNew
-    stringNew                               ,
-
-
--- ** stringNewLen
-    stringNewLen                            ,
-
-
--- ** stringSizedNew
-    stringSizedNew                          ,
-
-
--- ** stripContext
-    stripContext                            ,
-
-
--- ** strjoinv
-    strjoinv                                ,
-
-
--- ** strlcat
-    strlcat                                 ,
-
-
--- ** strlcpy
-    strlcpy                                 ,
-
-
--- ** strncasecmp
-    strncasecmp                             ,
-
-
--- ** strndup
-    strndup                                 ,
-
-
--- ** strnfill
-    strnfill                                ,
-
-
--- ** strreverse
-    strreverse                              ,
-
-
--- ** strrstr
-    strrstr                                 ,
-
-
--- ** strrstrLen
-    strrstrLen                              ,
-
-
--- ** strsignal
-    strsignal                               ,
-
-
--- ** strstrLen
-    strstrLen                               ,
-
-
--- ** strtod
-    strtod                                  ,
-
-
--- ** strup
-    strup                                   ,
-
-
--- ** strvContains
-    strvContains                            ,
-
-
--- ** strvGetType
-    strvGetType                             ,
-
-
--- ** strvLength
-    strvLength                              ,
-
-
--- ** testAddDataFunc
-    testAddDataFunc                         ,
-
-
--- ** testAddFunc
-    testAddFunc                             ,
-
-
--- ** testAssertExpectedMessagesInternal
-    testAssertExpectedMessagesInternal      ,
-
-
--- ** testBug
-    testBug                                 ,
-
-
--- ** testBugBase
-    testBugBase                             ,
-
-
--- ** testExpectMessage
-    testExpectMessage                       ,
-
-
--- ** testFail
-    testFail                                ,
-
-
--- ** testFailed
-    testFailed                              ,
-
-
--- ** testGetDir
-    testGetDir                              ,
-
-
--- ** testIncomplete
-    testIncomplete                          ,
-
-
--- ** testLogTypeName
-    testLogTypeName                         ,
-
-
--- ** testQueueDestroy
-    testQueueDestroy                        ,
-
-
--- ** testQueueFree
-    testQueueFree                           ,
-
-
--- ** testRandDouble
-    testRandDouble                          ,
-
-
--- ** testRandDoubleRange
-    testRandDoubleRange                     ,
-
-
--- ** testRandInt
-    testRandInt                             ,
-
-
--- ** testRandIntRange
-    testRandIntRange                        ,
-
-
--- ** testRun
-    testRun                                 ,
-
-
--- ** testRunSuite
-    testRunSuite                            ,
-
-
--- ** testSetNonfatalAssertions
-    testSetNonfatalAssertions               ,
-
-
--- ** testSkip
-    testSkip                                ,
-
-
--- ** testSubprocess
-    testSubprocess                          ,
-
-
--- ** testTimerElapsed
-    testTimerElapsed                        ,
-
-
--- ** testTimerLast
-    testTimerLast                           ,
-
-
--- ** testTimerStart
-    testTimerStart                          ,
-
-
--- ** testTrapAssertions
-    testTrapAssertions                      ,
-
-
--- ** testTrapFork
-    testTrapFork                            ,
-
-
--- ** testTrapHasPassed
-    testTrapHasPassed                       ,
-
-
--- ** testTrapReachedTimeout
-    testTrapReachedTimeout                  ,
-
-
--- ** testTrapSubprocess
-    testTrapSubprocess                      ,
-
-
--- ** threadErrorQuark
-    threadErrorQuark                        ,
-
-
--- ** threadExit
-    threadExit                              ,
-
-
--- ** threadPoolGetMaxIdleTime
-    threadPoolGetMaxIdleTime                ,
-
-
--- ** threadPoolGetMaxUnusedThreads
-    threadPoolGetMaxUnusedThreads           ,
-
-
--- ** threadPoolGetNumUnusedThreads
-    threadPoolGetNumUnusedThreads           ,
-
-
--- ** threadPoolSetMaxIdleTime
-    threadPoolSetMaxIdleTime                ,
-
-
--- ** threadPoolSetMaxUnusedThreads
-    threadPoolSetMaxUnusedThreads           ,
-
-
--- ** threadPoolStopUnusedThreads
-    threadPoolStopUnusedThreads             ,
-
-
--- ** threadSelf
-    threadSelf                              ,
-
-
--- ** threadYield
-    threadYield                             ,
-
-
--- ** timeValFromIso8601
-    timeValFromIso8601                      ,
-
-
--- ** timeoutAdd
-    timeoutAdd                              ,
-
-
--- ** timeoutAddSeconds
-    timeoutAddSeconds                       ,
-
-
--- ** timeoutSourceNew
-    timeoutSourceNew                        ,
-
-
--- ** timeoutSourceNewSeconds
-    timeoutSourceNewSeconds                 ,
-
-
--- ** trashStackHeight
-    trashStackHeight                        ,
-
-
--- ** trashStackPush
-    trashStackPush                          ,
-
-
--- ** unicharBreakType
-    unicharBreakType                        ,
-
-
--- ** unicharCombiningClass
-    unicharCombiningClass                   ,
-
-
--- ** unicharCompose
-    unicharCompose                          ,
-
-
--- ** unicharDecompose
-    unicharDecompose                        ,
-
-
--- ** unicharDigitValue
-    unicharDigitValue                       ,
-
-
--- ** unicharGetMirrorChar
-    unicharGetMirrorChar                    ,
-
-
--- ** unicharGetScript
-    unicharGetScript                        ,
-
-
--- ** unicharIsalnum
-    unicharIsalnum                          ,
-
-
--- ** unicharIsalpha
-    unicharIsalpha                          ,
-
-
--- ** unicharIscntrl
-    unicharIscntrl                          ,
-
-
--- ** unicharIsdefined
-    unicharIsdefined                        ,
-
-
--- ** unicharIsdigit
-    unicharIsdigit                          ,
-
-
--- ** unicharIsgraph
-    unicharIsgraph                          ,
-
-
--- ** unicharIslower
-    unicharIslower                          ,
-
-
--- ** unicharIsmark
-    unicharIsmark                           ,
-
-
--- ** unicharIsprint
-    unicharIsprint                          ,
-
-
--- ** unicharIspunct
-    unicharIspunct                          ,
-
-
--- ** unicharIsspace
-    unicharIsspace                          ,
-
-
--- ** unicharIstitle
-    unicharIstitle                          ,
-
-
--- ** unicharIsupper
-    unicharIsupper                          ,
-
-
--- ** unicharIswide
-    unicharIswide                           ,
-
-
--- ** unicharIswideCjk
-    unicharIswideCjk                        ,
-
-
--- ** unicharIsxdigit
-    unicharIsxdigit                         ,
-
-
--- ** unicharIszerowidth
-    unicharIszerowidth                      ,
-
-
--- ** unicharToUtf8
-    unicharToUtf8                           ,
-
-
--- ** unicharTolower
-    unicharTolower                          ,
-
-
--- ** unicharTotitle
-    unicharTotitle                          ,
-
-
--- ** unicharToupper
-    unicharToupper                          ,
-
-
--- ** unicharType
-    unicharType                             ,
-
-
--- ** unicharValidate
-    unicharValidate                         ,
-
-
--- ** unicharXdigitValue
-    unicharXdigitValue                      ,
-
-
--- ** unicodeCanonicalDecomposition
-    unicodeCanonicalDecomposition           ,
-
-
--- ** unicodeCanonicalOrdering
-    unicodeCanonicalOrdering                ,
-
-
--- ** unicodeScriptFromIso15924
-    unicodeScriptFromIso15924               ,
-
-
--- ** unicodeScriptToIso15924
-    unicodeScriptToIso15924                 ,
-
-
--- ** unixErrorQuark
-    unixErrorQuark                          ,
-
-
--- ** unixFdAddFull
-    unixFdAddFull                           ,
-
-
--- ** unixFdSourceNew
-    unixFdSourceNew                         ,
-
-
--- ** unixOpenPipe
-    unixOpenPipe                            ,
-
-
--- ** unixSetFdNonblocking
-    unixSetFdNonblocking                    ,
-
-
--- ** unixSignalAdd
-    unixSignalAdd                           ,
-
-
--- ** unixSignalSourceNew
-    unixSignalSourceNew                     ,
-
-
--- ** unlink
-    unlink                                  ,
-
-
--- ** unsetenv
-    unsetenv                                ,
-
-
--- ** uriEscapeString
-    uriEscapeString                         ,
-
-
--- ** uriListExtractUris
-    uriListExtractUris                      ,
-
-
--- ** uriParseScheme
-    uriParseScheme                          ,
-
-
--- ** uriUnescapeSegment
-    uriUnescapeSegment                      ,
-
-
--- ** uriUnescapeString
-    uriUnescapeString                       ,
-
-
--- ** usleep
-    usleep                                  ,
-
-
--- ** utf8Casefold
-    utf8Casefold                            ,
-
-
--- ** utf8Collate
-    utf8Collate                             ,
-
-
--- ** utf8CollateKey
-    utf8CollateKey                          ,
-
-
--- ** utf8CollateKeyForFilename
-    utf8CollateKeyForFilename               ,
-
-
--- ** utf8FindNextChar
-    utf8FindNextChar                        ,
-
-
--- ** utf8FindPrevChar
-    utf8FindPrevChar                        ,
-
-
--- ** utf8GetChar
-    utf8GetChar                             ,
-
-
--- ** utf8GetCharValidated
-    utf8GetCharValidated                    ,
-
-
--- ** utf8Normalize
-    utf8Normalize                           ,
-
-
--- ** utf8OffsetToPointer
-    utf8OffsetToPointer                     ,
-
-
--- ** utf8PointerToOffset
-    utf8PointerToOffset                     ,
-
-
--- ** utf8PrevChar
-    utf8PrevChar                            ,
-
-
--- ** utf8Strchr
-    utf8Strchr                              ,
-
-
--- ** utf8Strdown
-    utf8Strdown                             ,
-
-
--- ** utf8Strlen
-    utf8Strlen                              ,
-
-
--- ** utf8Strncpy
-    utf8Strncpy                             ,
-
-
--- ** utf8Strrchr
-    utf8Strrchr                             ,
-
-
--- ** utf8Strreverse
-    utf8Strreverse                          ,
-
-
--- ** utf8Strup
-    utf8Strup                               ,
-
-
--- ** utf8Substring
-    utf8Substring                           ,
-
-
--- ** utf8Validate
-    utf8Validate                            ,
-
-
--- ** variantGetGtype
-    variantGetGtype                         ,
-
-
--- ** variantIsObjectPath
-    variantIsObjectPath                     ,
-
-
--- ** variantIsSignature
-    variantIsSignature                      ,
-
-
--- ** variantParse
-    variantParse                            ,
-
-
--- ** variantParseErrorPrintContext
-    variantParseErrorPrintContext           ,
-
-
--- ** variantParseErrorQuark
-    variantParseErrorQuark                  ,
-
-
--- ** variantParserGetErrorQuark
-    variantParserGetErrorQuark              ,
-
-
--- ** variantTypeChecked_
-    variantTypeChecked_                     ,
-
-
--- ** variantTypeStringIsValid
-    variantTypeStringIsValid                ,
-
-
--- ** variantTypeStringScan
-    variantTypeStringScan                   ,
-
-
--- ** warnMessage
-    warnMessage                             ,
-
-
-
-
-    ) where
-
-import Prelude ()
-import Data.GI.Base.ShortPrelude
-
-import qualified Data.Text as T
-import qualified Data.ByteString.Char8 as B
-import qualified Data.Map as Map
-
-import GI.GLib.Types
-import GI.GLib.Callbacks
-
--- 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 ()
-
-
--- 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_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_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'
-    checkUnexpectedReturnNULL "g_variant_type_checked_" result
-    result' <- (newBoxed VariantType) result
-    freeMem arg0'
-    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_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_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'
-    checkUnexpectedReturnNULL "g_variant_parse_error_print_context" result
-    result' <- cstringToText result
-    freeMem result
-    touchManagedPtr error_
-    freeMem source_str'
-    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
-        checkUnexpectedReturnNULL "g_variant_parse" result
-        result' <- wrapGVariantPtr result
-        whenJust type_ touchManagedPtr
-        freeMem text'
-        freeMem maybeLimit
-        freeMem maybeEndptr
-        return result'
-     ) (do
-        freeMem text'
-        freeMem maybeLimit
-        freeMem maybeEndptr
-     )
-
-
--- 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_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_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_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_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
-    checkUnexpectedReturnNULL "g_utf8_substring" result
-    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
-    checkUnexpectedReturnNULL "g_utf8_strup" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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
-    checkUnexpectedReturnNULL "g_utf8_strreverse" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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'
-    checkUnexpectedReturnNULL "g_utf8_strrchr" result
-    result' <- cstringToText result
-    freeMem result
-    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
-    checkUnexpectedReturnNULL "g_utf8_strncpy" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem dest'
-    freeMem src'
-    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_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
-    checkUnexpectedReturnNULL "g_utf8_strdown" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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'
-    checkUnexpectedReturnNULL "g_utf8_strchr" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem p'
-    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'
-    checkUnexpectedReturnNULL "g_utf8_prev_char" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem p'
-    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_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
-    checkUnexpectedReturnNULL "g_utf8_offset_to_pointer" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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'
-    checkUnexpectedReturnNULL "g_utf8_normalize" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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_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_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'
-    checkUnexpectedReturnNULL "g_utf8_find_prev_char" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    freeMem p'
-    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'
-    checkUnexpectedReturnNULL "g_utf8_find_next_char" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem p'
-    freeMem end'
-    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
-    checkUnexpectedReturnNULL "g_utf8_collate_key_for_filename" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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
-    checkUnexpectedReturnNULL "g_utf8_collate_key" result
-    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_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
-    checkUnexpectedReturnNULL "g_utf8_casefold" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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_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
-    checkUnexpectedReturnNULL "g_uri_unescape_string" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem escaped_string'
-    freeMem maybeIllegal_characters
-    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
-    checkUnexpectedReturnNULL "g_uri_unescape_segment" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem maybeEscaped_string
-    freeMem maybeEscaped_string_end
-    freeMem maybeIllegal_characters
-    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'
-    checkUnexpectedReturnNULL "g_uri_parse_scheme" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem uri'
-    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'
-    checkUnexpectedReturnNULL "g_uri_list_extract_uris" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    freeMem uri_list'
-    return result'
-
-
--- 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'
-    checkUnexpectedReturnNULL "g_uri_escape_string" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem unescaped'
-    freeMem maybeReserved_chars_allowed
-    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_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_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
-    checkUnexpectedReturnNULL "g_unix_signal_source_new" result
-    result' <- (wrapBoxed Source) result
-    return result'
-
-
--- 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_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_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_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'
-    checkUnexpectedReturnNULL "g_unix_fd_source_new" result
-    result' <- (wrapBoxed Source) result
-    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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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
-    checkUnexpectedReturnNULL "g_timeout_source_new_seconds" result
-    result' <- (wrapBoxed Source) result
-    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
-    checkUnexpectedReturnNULL "g_timeout_source_new" result
-    result' <- (wrapBoxed Source) result
-    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_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_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_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_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
-    checkUnexpectedReturnNULL "g_thread_self" result
-    result' <- (wrapBoxed Thread) result
-    return result'
-
-
--- 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 <- callocMem :: IO (Ptr (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_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'
-    checkUnexpectedReturnNULL "g_test_log_type_name" result
-    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_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'
-    checkUnexpectedReturnNULL "g_test_get_dir" result
-    result' <- cstringToText result
-    return result'
-
-
--- 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_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_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_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_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_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_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 <- callocMem :: IO (Ptr (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_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 <- callocMem :: IO (Ptr (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_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_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_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_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'
-    checkUnexpectedReturnNULL "g_strup" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    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_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'
-    checkUnexpectedReturnNULL "g_strstr_len" result
-    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
-    checkUnexpectedReturnNULL "g_strsignal" result
-    result' <- cstringToText result
-    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'
-    checkUnexpectedReturnNULL "g_strrstr_len" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem haystack'
-    freeMem needle'
-    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'
-    checkUnexpectedReturnNULL "g_strrstr" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem haystack'
-    freeMem needle'
-    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'
-    checkUnexpectedReturnNULL "g_strreverse" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    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
-    checkUnexpectedReturnNULL "g_strnfill" result
-    result' <- cstringToText result
-    freeMem result
-    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
-    checkUnexpectedReturnNULL "g_strndup" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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_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_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_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'
-    checkUnexpectedReturnNULL "g_strjoinv" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem maybeSeparator
-    freeMem str_array'
-    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'
-    checkUnexpectedReturnNULL "g_strip_context" result
-    result' <- cstringToText result
-    freeMem msgid'
-    freeMem msgval'
-    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
-    checkUnexpectedReturnNULL "g_string_sized_new" result
-    result' <- (wrapBoxed String) result
-    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
-    checkUnexpectedReturnNULL "g_string_new_len" result
-    result' <- (wrapBoxed String) result
-    freeMem init'
-    return result'
-
-
--- 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
-    checkUnexpectedReturnNULL "g_string_new" result
-    result' <- (wrapBoxed String) result
-    freeMem maybeInit
-    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_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'
-    checkUnexpectedReturnNULL "g_strescape" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem source'
-    freeMem exceptions'
-    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
-    checkUnexpectedReturnNULL "g_strerror" result
-    result' <- cstringToText result
-    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'
-    checkUnexpectedReturnNULL "g_strdup" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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'
-    checkUnexpectedReturnNULL "g_strdown" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    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
-    checkUnexpectedReturnNULL "g_strdelimit" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    freeMem maybeDelimiters
-    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'
-    checkUnexpectedReturnNULL "g_strcompress" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem source'
-    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_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'
-    checkUnexpectedReturnNULL "g_strchug" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    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'
-    checkUnexpectedReturnNULL "g_strchomp" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    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_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
-    checkUnexpectedReturnNULL "g_strcanon" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    freeMem valid_chars'
-    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
-    checkUnexpectedReturnNULL "g_str_tokenize_and_fold" result
-    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_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
-    checkUnexpectedReturnNULL "g_str_to_ascii" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    freeMem maybeFrom_locale
-    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_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_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_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_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_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_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'
-    checkUnexpectedReturnNULL "g_stpcpy" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem dest'
-    freeMem src'
-    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 <- callocMem :: IO (Ptr (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_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_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_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_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_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_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_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 <- callocMem :: IO (Ptr (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_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 <- callocMem :: IO (Ptr (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_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_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_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_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
--- 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_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_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_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_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_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_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'
-        checkUnexpectedReturnNULL "g_shell_unquote" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem quoted_string'
-        return result'
-     ) (do
-        freeMem quoted_string'
-     )
-
-
--- 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'
-    checkUnexpectedReturnNULL "g_shell_quote" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem unquoted_string'
-    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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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'
-    checkUnexpectedReturnNULL "g_regex_split_simple" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    freeMem pattern'
-    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_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_
-    checkUnexpectedReturnNULL "g_regex_escape_string" result
-    result' <- cstringToText result
-    freeMem result
-    (mapCArrayWithLength length_) freeMem string'
-    freeMem string'
-    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_
-    checkUnexpectedReturnNULL "g_regex_escape_nul" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem string'
-    return result'
-
-
--- 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_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_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_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_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_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_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_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_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
-    checkUnexpectedReturnNULL "g_quark_to_string" result
-    result' <- cstringToText result
-    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_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_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_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_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_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_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_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_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
--- 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_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'
-    checkUnexpectedReturnNULL "g_path_skip_root" result
-    result' <- cstringToText 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_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'
-    checkUnexpectedReturnNULL "g_path_get_dirname" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem file_name'
-    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'
-    checkUnexpectedReturnNULL "g_path_get_basename" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem file_name'
-    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_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_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_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_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_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_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_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_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_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
-    checkUnexpectedReturnNULL "g_mkdtemp_full" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem tmpl'
-    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'
-    checkUnexpectedReturnNULL "g_mkdtemp" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem tmpl'
-    return result'
-
-
--- 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_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 ()
-
-{-# DEPRECATED memSetVtable ["(Since version 2.46)","Use other memory profiling tools instead"]#-}
-memSetVtable ::
-    (MonadIO m) =>
-    MemVTable ->                            -- vtable
-    m ()
-memSetVtable vtable = liftIO $ do
-    let vtable' = unsafeManagedPtrGetPtr vtable
-    g_mem_set_vtable vtable'
-    touchManagedPtr vtable
-    return ()
-
-
--- 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 ()
-
-{-# DEPRECATED memProfile ["(Since version 2.46)","Use other memory profiling tools instead"]#-}
-memProfile ::
-    (MonadIO m) =>
-    m ()
-memProfile  = liftIO $ do
-    g_mem_profile
-    return ()
-
-
--- 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
-
-{-# DEPRECATED memIsSystemMalloc ["(Since version 2.46)","GLib always uses the system malloc, so this function always","returns %TRUE."]#-}
-memIsSystemMalloc ::
-    (MonadIO m) =>
-    m Bool
-memIsSystemMalloc  = liftIO $ do
-    result <- g_mem_is_system_malloc
-    let result' = (/= 0) result
-    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_
-    checkUnexpectedReturnNULL "g_markup_escape_text" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem text'
-    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_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_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
-    checkUnexpectedReturnNULL "g_main_current_source" result
-    result' <- (newBoxed Source) 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
-    checkUnexpectedReturnNULL "g_main_context_ref_thread_default" result
-    result' <- (wrapBoxed 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
-    checkUnexpectedReturnNULL "g_main_context_get_thread_default" result
-    result' <- (newBoxed MainContext) result
-    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
-    checkUnexpectedReturnNULL "g_main_context_default" result
-    result' <- (newBoxed MainContext) result
-    return result'
-
-
--- function g_log_set_handler_full
--- Args : [Arg {argName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_levels", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_func", argType = TInterface "GLib" "LogFunc", 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 = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, 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_levels", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "log_func", argType = TInterface "GLib" "LogFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_log_set_handler_full" g_log_set_handler_full :: 
-    CString ->                              -- log_domain : TBasicType TUTF8
-    CUInt ->                                -- log_levels : TInterface "GLib" "LogLevelFlags"
-    FunPtr LogFuncC ->                      -- log_func : TInterface "GLib" "LogFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    FunPtr DestroyNotifyC ->                -- destroy : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-logSetHandler ::
-    (MonadIO m) =>
-    Maybe (T.Text) ->                       -- log_domain
-    [LogLevelFlags] ->                      -- log_levels
-    LogFunc ->                              -- log_func
-    m Word32
-logSetHandler log_domain log_levels log_func = 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_levels' = gflagsToWord log_levels
-    log_func' <- mkLogFunc (logFuncWrapper Nothing log_func)
-    let user_data = castFunPtrToPtr log_func'
-    let destroy = safeFreeFunPtrPtr
-    result <- g_log_set_handler_full maybeLog_domain log_levels' log_func' user_data destroy
-    freeMem maybeLog_domain
-    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_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_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_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_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
-        checkUnexpectedReturnNULL "g_locale_to_utf8" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem opsysstring'
-        return result'
-     ) (do
-        freeMem opsysstring'
-     )
-
-
--- 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
-        checkUnexpectedReturnNULL "g_locale_from_utf8" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem utf8string'
-        return result'
-     ) (do
-        freeMem utf8string'
-     )
-
-
--- 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
-    checkUnexpectedReturnNULL "g_listenv" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    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_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'
-    checkUnexpectedReturnNULL "g_io_create_watch" result
-    result' <- (wrapBoxed Source) result
-    touchManagedPtr channel
-    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_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_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_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
-    checkUnexpectedReturnNULL "g_intern_string" result
-    result' <- cstringToText result
-    freeMem maybeString
-    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
-    checkUnexpectedReturnNULL "g_intern_static_string" result
-    result' <- cstringToText result
-    freeMem maybeString
-    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_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_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_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_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
-    checkUnexpectedReturnNULL "g_idle_source_new" result
-    result' <- (wrapBoxed Source) result
-    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_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_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_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'
-    checkUnexpectedReturnNULL "g_hostname_to_unicode" result
-    result' <- cstringToText result
-    freeMem 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'
-    checkUnexpectedReturnNULL "g_hostname_to_ascii" result
-    result' <- cstringToText result
-    freeMem 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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'
-    checkUnexpectedReturnNULL "g_getenv" result
-    result' <- cstringToText result
-    freeMem variable'
-    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'
-    checkUnexpectedReturnNULL "g_get_user_special_dir" result
-    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
-    checkUnexpectedReturnNULL "g_get_user_runtime_dir" result
-    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
-    checkUnexpectedReturnNULL "g_get_user_name" result
-    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
-    checkUnexpectedReturnNULL "g_get_user_data_dir" result
-    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
-    checkUnexpectedReturnNULL "g_get_user_config_dir" result
-    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
-    checkUnexpectedReturnNULL "g_get_user_cache_dir" result
-    result' <- cstringToText 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
-    checkUnexpectedReturnNULL "g_get_tmp_dir" result
-    result' <- cstringToText 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
-    checkUnexpectedReturnNULL "g_get_system_data_dirs" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    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
-    checkUnexpectedReturnNULL "g_get_system_config_dirs" result
-    result' <- unpackZeroTerminatedUTF8CArray 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_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
-    checkUnexpectedReturnNULL "g_get_real_name" result
-    result' <- cstringToText result
-    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
-    checkUnexpectedReturnNULL "g_get_prgname" result
-    result' <- cstringToText result
-    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_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_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'
-    checkUnexpectedReturnNULL "g_get_locale_variants" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    freeMem locale'
-    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
-    checkUnexpectedReturnNULL "g_get_language_names" result
-    result' <- unpackZeroTerminatedUTF8CArray 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
-    checkUnexpectedReturnNULL "g_get_host_name" result
-    result' <- cstringToText result
-    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
-    checkUnexpectedReturnNULL "g_get_home_dir" result
-    result' <- cstringToText 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_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
-    checkUnexpectedReturnNULL "g_get_environ" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem 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_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
-    checkUnexpectedReturnNULL "g_get_current_dir" result
-    result' <- cstringToText result
-    freeMem result
-    return result'
-
-
--- 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
-    checkUnexpectedReturnNULL "g_get_codeset" result
-    result' <- cstringToText result
-    freeMem 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_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
-    checkUnexpectedReturnNULL "g_get_application_name" result
-    result' <- cstringToText 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_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'
-    checkUnexpectedReturnNULL "g_format_size_full" result
-    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
-    checkUnexpectedReturnNULL "g_format_size_for_display" result
-    result' <- cstringToText result
-    freeMem result
-    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
-    checkUnexpectedReturnNULL "g_format_size" result
-    result' <- cstringToText result
-    freeMem result
-    return result'
-
-
--- 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'
-    checkUnexpectedReturnNULL "g_find_program_in_path" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem program'
-    return result'
-
-
--- 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
-        checkUnexpectedReturnNULL "g_filename_to_utf8" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem opsysstring'
-        return result'
-     ) (do
-        freeMem opsysstring'
-     )
-
-
--- 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
-        checkUnexpectedReturnNULL "g_filename_to_uri" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem filename'
-        freeMem maybeHostname
-        return result'
-     ) (do
-        freeMem filename'
-        freeMem maybeHostname
-     )
-
-
--- 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
-        checkUnexpectedReturnNULL "g_filename_from_utf8" result
-        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_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
-        checkUnexpectedReturnNULL "g_filename_from_uri" result
-        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_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'
-    checkUnexpectedReturnNULL "g_filename_display_name" result
-    result' <- cstringToText result
-    freeMem 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'
-    checkUnexpectedReturnNULL "g_filename_display_basename" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem filename'
-    return result'
-
-
--- 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_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_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'
-        checkUnexpectedReturnNULL "g_file_read_link" result
-        result' <- cstringToText result
-        freeMem result
-        freeMem filename'
-        return result'
-     ) (do
-        freeMem filename'
-     )
-
-
--- 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_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_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_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_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'
-    checkUnexpectedReturnNULL "g_environ_unsetenv" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    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'
-    checkUnexpectedReturnNULL "g_environ_setenv" result
-    result' <- unpackZeroTerminatedUTF8CArray result
-    mapZeroTerminatedCArray freeMem result
-    freeMem result
-    freeMem variable'
-    freeMem value'
-    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'
-    checkUnexpectedReturnNULL "g_environ_getenv" result
-    result' <- cstringToText result
-    mapZeroTerminatedCArray freeMem maybeEnvp
-    freeMem maybeEnvp
-    freeMem variable'
-    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'
-    checkUnexpectedReturnNULL "g_dpgettext2" result
-    result' <- cstringToText result
-    freeMem maybeDomain
-    freeMem context'
-    freeMem msgid'
-    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
-    checkUnexpectedReturnNULL "g_dpgettext" result
-    result' <- cstringToText result
-    freeMem maybeDomain
-    freeMem msgctxtid'
-    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_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_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
-    checkUnexpectedReturnNULL "g_dngettext" result
-    result' <- cstringToText result
-    freeMem maybeDomain
-    freeMem msgid'
-    freeMem msgid_plural'
-    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_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_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
-        checkUnexpectedReturnNULL "g_dir_make_tmp" result
-        result' <- cstringToString result
-        freeMem result
-        freeMem maybeTmpl
-        return result'
-     ) (do
-        freeMem maybeTmpl
-     )
-
-
--- 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'
-    checkUnexpectedReturnNULL "g_dgettext" result
-    result' <- cstringToText result
-    freeMem maybeDomain
-    freeMem msgid'
-    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
-    checkUnexpectedReturnNULL "g_dcgettext" result
-    result' <- cstringToText result
-    freeMem maybeDomain
-    freeMem msgid'
-    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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 <- callocMem :: IO (Ptr (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_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_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_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_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_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 <- callocMem :: IO (Ptr (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_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 <- callocMem :: IO (Ptr (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 <- callocMem :: IO (Ptr (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_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_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_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
-        checkUnexpectedReturnNULL "g_convert_with_iconv" result
-        result' <- cstringToText result
-        freeMem result
-        touchManagedPtr converter
-        freeMem str'
-        return result'
-     ) (do
-        freeMem str'
-     )
-
-
--- 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
-        checkUnexpectedReturnNULL "g_convert_with_fallback" result
-        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_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
--- 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
-        checkUnexpectedReturnNULL "g_convert" result
-        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_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_
-    checkUnexpectedReturnNULL "g_compute_hmac_for_string" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem key'
-    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_
-    checkUnexpectedReturnNULL "g_compute_hmac_for_data" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem key'
-    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_
-    checkUnexpectedReturnNULL "g_compute_checksum_for_string" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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_
-    checkUnexpectedReturnNULL "g_compute_checksum_for_data" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem data_'
-    return result'
-
-
--- 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_'
-    checkUnexpectedReturnNULL "g_compute_checksum_for_bytes" result
-    result' <- cstringToText result
-    freeMem result
-    touchManagedPtr data_
-    return result'
-
-
--- 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_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_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
-    checkUnexpectedReturnNULL "g_child_watch_source_new" result
-    result' <- (wrapBoxed Source) result
-    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_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 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
-    checkUnexpectedReturnNULL "glib_check_version" result
-    result' <- cstringToText result
-    return result'
-
-
--- 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 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_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
-    checkUnexpectedReturnNULL "g_byte_array_new_take" result
-    result' <- unpackGByteArray result
-    unrefGByteArray 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
-    checkUnexpectedReturnNULL "g_byte_array_new" result
-    result' <- unpackGByteArray result
-    unrefGByteArray result
-    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'
-    checkUnexpectedReturnNULL "g_byte_array_free_to_bytes" result
-    result' <- (wrapBoxed Bytes) result
-    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_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'
-    checkUnexpectedReturnNULL "g_build_pathv" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem separator'
-    mapZeroTerminatedCArray freeMem args'
-    freeMem args'
-    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'
-    checkUnexpectedReturnNULL "g_build_filenamev" result
-    result' <- cstringToText result
-    freeMem result
-    mapZeroTerminatedCArray freeMem args'
-    freeMem args'
-    return result'
-
-
--- 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_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_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_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_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_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_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_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'
-    checkUnexpectedReturnNULL "g_basename" result
-    result' <- cstringToText result
-    freeMem file_name'
-    return result'
-
-
--- 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
-    checkUnexpectedReturnNULL "g_base64_encode" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem data_'
-    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_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
-    checkUnexpectedReturnNULL "g_base64_decode" result
-    result' <- (unpackByteStringWithLength out_len') result
-    freeMem result
-    freeMem text'
-    freeMem out_len
-    return result'
-
-
--- 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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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_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 <- callocMem :: IO (Ptr (FunPtr VoidFuncC))
-    func' <- mkVoidFunc (voidFuncWrapper (Just ptrfunc) func)
-    poke ptrfunc func'
-    g_atexit func'
-    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_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_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
--- 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_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_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_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_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_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
-    checkUnexpectedReturnNULL "g_ascii_strup" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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_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_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_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_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
-    checkUnexpectedReturnNULL "g_ascii_strdown" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    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_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'
-    checkUnexpectedReturnNULL "g_ascii_formatd" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem buffer'
-    freeMem format'
-    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'
-    checkUnexpectedReturnNULL "g_ascii_dtostr" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem buffer'
-    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_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
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+-}
+
+module GI.GLib.Functions
+    ( 
+
+ -- * Methods
+-- ** access
+    access                                  ,
+
+
+-- ** asciiDigitValue
+    asciiDigitValue                         ,
+
+
+-- ** asciiDtostr
+    asciiDtostr                             ,
+
+
+-- ** asciiFormatd
+    asciiFormatd                            ,
+
+
+-- ** asciiStrcasecmp
+    asciiStrcasecmp                         ,
+
+
+-- ** asciiStrdown
+    asciiStrdown                            ,
+
+
+-- ** asciiStrncasecmp
+    asciiStrncasecmp                        ,
+
+
+-- ** asciiStrtod
+    asciiStrtod                             ,
+
+
+-- ** asciiStrtoll
+    asciiStrtoll                            ,
+
+
+-- ** asciiStrtoull
+    asciiStrtoull                           ,
+
+
+-- ** asciiStrup
+    asciiStrup                              ,
+
+
+-- ** asciiTolower
+    asciiTolower                            ,
+
+
+-- ** asciiToupper
+    asciiToupper                            ,
+
+
+-- ** asciiXdigitValue
+    asciiXdigitValue                        ,
+
+
+-- ** assertWarning
+    assertWarning                           ,
+
+
+-- ** assertionMessage
+    assertionMessage                        ,
+
+
+-- ** assertionMessageCmpstr
+    assertionMessageCmpstr                  ,
+
+
+-- ** assertionMessageError
+    assertionMessageError                   ,
+
+
+-- ** assertionMessageExpr
+    assertionMessageExpr                    ,
+
+
+-- ** atexit
+    atexit                                  ,
+
+
+-- ** atomicIntAdd
+    atomicIntAdd                            ,
+
+
+-- ** atomicIntAnd
+    atomicIntAnd                            ,
+
+
+-- ** atomicIntCompareAndExchange
+    atomicIntCompareAndExchange             ,
+
+
+-- ** atomicIntDecAndTest
+    atomicIntDecAndTest                     ,
+
+
+-- ** atomicIntExchangeAndAdd
+    atomicIntExchangeAndAdd                 ,
+
+
+-- ** atomicIntGet
+    atomicIntGet                            ,
+
+
+-- ** atomicIntInc
+    atomicIntInc                            ,
+
+
+-- ** atomicIntOr
+    atomicIntOr                             ,
+
+
+-- ** atomicIntSet
+    atomicIntSet                            ,
+
+
+-- ** atomicIntXor
+    atomicIntXor                            ,
+
+
+-- ** atomicPointerAdd
+    atomicPointerAdd                        ,
+
+
+-- ** atomicPointerAnd
+    atomicPointerAnd                        ,
+
+
+-- ** atomicPointerCompareAndExchange
+    atomicPointerCompareAndExchange         ,
+
+
+-- ** atomicPointerOr
+    atomicPointerOr                         ,
+
+
+-- ** atomicPointerSet
+    atomicPointerSet                        ,
+
+
+-- ** atomicPointerXor
+    atomicPointerXor                        ,
+
+
+-- ** base64Decode
+    base64Decode                            ,
+
+
+-- ** base64DecodeInplace
+    base64DecodeInplace                     ,
+
+
+-- ** base64Encode
+    base64Encode                            ,
+
+
+-- ** basename
+    basename                                ,
+
+
+-- ** bitLock
+    bitLock                                 ,
+
+
+-- ** bitNthLsf
+    bitNthLsf                               ,
+
+
+-- ** bitNthMsf
+    bitNthMsf                               ,
+
+
+-- ** bitStorage
+    bitStorage                              ,
+
+
+-- ** bitTrylock
+    bitTrylock                              ,
+
+
+-- ** bitUnlock
+    bitUnlock                               ,
+
+
+-- ** buildFilenamev
+    buildFilenamev                          ,
+
+
+-- ** buildPathv
+    buildPathv                              ,
+
+
+-- ** chdir
+    chdir                                   ,
+
+
+-- ** checkVersion
+    checkVersion                            ,
+
+
+-- ** childWatchAdd
+    childWatchAdd                           ,
+
+
+-- ** childWatchSourceNew
+    childWatchSourceNew                     ,
+
+
+-- ** clearError
+    clearError                              ,
+
+
+-- ** close
+    close                                   ,
+
+
+-- ** computeChecksumForBytes
+    computeChecksumForBytes                 ,
+
+
+-- ** computeChecksumForData
+    computeChecksumForData                  ,
+
+
+-- ** computeChecksumForString
+    computeChecksumForString                ,
+
+
+-- ** computeHmacForData
+    computeHmacForData                      ,
+
+
+-- ** computeHmacForString
+    computeHmacForString                    ,
+
+
+-- ** convert
+    convert                                 ,
+
+
+-- ** convertErrorQuark
+    convertErrorQuark                       ,
+
+
+-- ** convertWithFallback
+    convertWithFallback                     ,
+
+
+-- ** convertWithIconv
+    convertWithIconv                        ,
+
+
+-- ** datalistClear
+    datalistClear                           ,
+
+
+-- ** datalistGetFlags
+    datalistGetFlags                        ,
+
+
+-- ** datalistIdReplaceData
+    datalistIdReplaceData                   ,
+
+
+-- ** datalistIdSetDataFull
+    datalistIdSetDataFull                   ,
+
+
+-- ** datalistInit
+    datalistInit                            ,
+
+
+-- ** datalistSetFlags
+    datalistSetFlags                        ,
+
+
+-- ** datalistUnsetFlags
+    datalistUnsetFlags                      ,
+
+
+-- ** datasetDestroy
+    datasetDestroy                          ,
+
+
+-- ** datasetIdSetDataFull
+    datasetIdSetDataFull                    ,
+
+
+-- ** dcgettext
+    dcgettext                               ,
+
+
+-- ** dgettext
+    dgettext                                ,
+
+
+-- ** directEqual
+    directEqual                             ,
+
+
+-- ** directHash
+    directHash                              ,
+
+
+-- ** dngettext
+    dngettext                               ,
+
+
+-- ** doubleEqual
+    doubleEqual                             ,
+
+
+-- ** doubleHash
+    doubleHash                              ,
+
+
+-- ** dpgettext
+    dpgettext                               ,
+
+
+-- ** dpgettext2
+    dpgettext2                              ,
+
+
+-- ** environGetenv
+    environGetenv                           ,
+
+
+-- ** environSetenv
+    environSetenv                           ,
+
+
+-- ** environUnsetenv
+    environUnsetenv                         ,
+
+
+-- ** fileErrorFromErrno
+    fileErrorFromErrno                      ,
+
+
+-- ** fileErrorQuark
+    fileErrorQuark                          ,
+
+
+-- ** fileGetContents
+    fileGetContents                         ,
+
+
+-- ** fileOpenTmp
+    fileOpenTmp                             ,
+
+
+-- ** fileReadLink
+    fileReadLink                            ,
+
+
+-- ** fileSetContents
+    fileSetContents                         ,
+
+
+-- ** fileTest
+    fileTest                                ,
+
+
+-- ** filenameDisplayBasename
+    filenameDisplayBasename                 ,
+
+
+-- ** filenameDisplayName
+    filenameDisplayName                     ,
+
+
+-- ** filenameFromUri
+    filenameFromUri                         ,
+
+
+-- ** filenameFromUtf8
+    filenameFromUtf8                        ,
+
+
+-- ** filenameToUri
+    filenameToUri                           ,
+
+
+-- ** filenameToUtf8
+    filenameToUtf8                          ,
+
+
+-- ** findProgramInPath
+    findProgramInPath                       ,
+
+
+-- ** formatSize
+    formatSize                              ,
+
+
+-- ** formatSizeForDisplay
+    formatSizeForDisplay                    ,
+
+
+-- ** formatSizeFull
+    formatSizeFull                          ,
+
+
+-- ** free
+    free                                    ,
+
+
+-- ** getApplicationName
+    getApplicationName                      ,
+
+
+-- ** getCharset
+    getCharset                              ,
+
+
+-- ** getCodeset
+    getCodeset                              ,
+
+
+-- ** getCurrentDir
+    getCurrentDir                           ,
+
+
+-- ** getCurrentTime
+    getCurrentTime                          ,
+
+
+-- ** getEnviron
+    getEnviron                              ,
+
+
+-- ** getFilenameCharsets
+    getFilenameCharsets                     ,
+
+
+-- ** getHomeDir
+    getHomeDir                              ,
+
+
+-- ** getHostName
+    getHostName                             ,
+
+
+-- ** getLanguageNames
+    getLanguageNames                        ,
+
+
+-- ** getLocaleVariants
+    getLocaleVariants                       ,
+
+
+-- ** getMonotonicTime
+    getMonotonicTime                        ,
+
+
+-- ** getNumProcessors
+    getNumProcessors                        ,
+
+
+-- ** getPrgname
+    getPrgname                              ,
+
+
+-- ** getRealName
+    getRealName                             ,
+
+
+-- ** getRealTime
+    getRealTime                             ,
+
+
+-- ** getSystemConfigDirs
+    getSystemConfigDirs                     ,
+
+
+-- ** getSystemDataDirs
+    getSystemDataDirs                       ,
+
+
+-- ** getTmpDir
+    getTmpDir                               ,
+
+
+-- ** getUserCacheDir
+    getUserCacheDir                         ,
+
+
+-- ** getUserConfigDir
+    getUserConfigDir                        ,
+
+
+-- ** getUserDataDir
+    getUserDataDir                          ,
+
+
+-- ** getUserName
+    getUserName                             ,
+
+
+-- ** getUserRuntimeDir
+    getUserRuntimeDir                       ,
+
+
+-- ** getUserSpecialDir
+    getUserSpecialDir                       ,
+
+
+-- ** getenv
+    getenv                                  ,
+
+
+-- ** hostnameIsAsciiEncoded
+    hostnameIsAsciiEncoded                  ,
+
+
+-- ** hostnameIsIpAddress
+    hostnameIsIpAddress                     ,
+
+
+-- ** hostnameIsNonAscii
+    hostnameIsNonAscii                      ,
+
+
+-- ** hostnameToAscii
+    hostnameToAscii                         ,
+
+
+-- ** hostnameToUnicode
+    hostnameToUnicode                       ,
+
+
+-- ** iconv
+    iconv                                   ,
+
+
+-- ** idleAdd
+    idleAdd                                 ,
+
+
+-- ** idleRemoveByData
+    idleRemoveByData                        ,
+
+
+-- ** idleSourceNew
+    idleSourceNew                           ,
+
+
+-- ** int64Equal
+    int64Equal                              ,
+
+
+-- ** int64Hash
+    int64Hash                               ,
+
+
+-- ** intEqual
+    intEqual                                ,
+
+
+-- ** intHash
+    intHash                                 ,
+
+
+-- ** internStaticString
+    internStaticString                      ,
+
+
+-- ** internString
+    internString                            ,
+
+
+-- ** ioAddWatch
+    ioAddWatch                              ,
+
+
+-- ** ioCreateWatch
+    ioCreateWatch                           ,
+
+
+-- ** listenv
+    listenv                                 ,
+
+
+-- ** localeFromUtf8
+    localeFromUtf8                          ,
+
+
+-- ** localeToUtf8
+    localeToUtf8                            ,
+
+
+-- ** logDefaultHandler
+    logDefaultHandler                       ,
+
+
+-- ** logRemoveHandler
+    logRemoveHandler                        ,
+
+
+-- ** logSetAlwaysFatal
+    logSetAlwaysFatal                       ,
+
+
+-- ** logSetFatalMask
+    logSetFatalMask                         ,
+
+
+-- ** logSetHandler
+    logSetHandler                           ,
+
+
+-- ** mainCurrentSource
+    mainCurrentSource                       ,
+
+
+-- ** mainDepth
+    mainDepth                               ,
+
+
+-- ** markupErrorQuark
+    markupErrorQuark                        ,
+
+
+-- ** markupEscapeText
+    markupEscapeText                        ,
+
+
+-- ** memIsSystemMalloc
+    memIsSystemMalloc                       ,
+
+
+-- ** memProfile
+    memProfile                              ,
+
+
+-- ** memSetVtable
+    memSetVtable                            ,
+
+
+-- ** mkdirWithParents
+    mkdirWithParents                        ,
+
+
+-- ** mkdtemp
+    mkdtemp                                 ,
+
+
+-- ** mkdtempFull
+    mkdtempFull                             ,
+
+
+-- ** mkstemp
+    mkstemp                                 ,
+
+
+-- ** mkstempFull
+    mkstempFull                             ,
+
+
+-- ** nullifyPointer
+    nullifyPointer                          ,
+
+
+-- ** onErrorQuery
+    onErrorQuery                            ,
+
+
+-- ** onErrorStackTrace
+    onErrorStackTrace                       ,
+
+
+-- ** optionErrorQuark
+    optionErrorQuark                        ,
+
+
+-- ** parseDebugString
+    parseDebugString                        ,
+
+
+-- ** pathGetBasename
+    pathGetBasename                         ,
+
+
+-- ** pathGetDirname
+    pathGetDirname                          ,
+
+
+-- ** pathIsAbsolute
+    pathIsAbsolute                          ,
+
+
+-- ** pathSkipRoot
+    pathSkipRoot                            ,
+
+
+-- ** patternMatch
+    patternMatch                            ,
+
+
+-- ** patternMatchSimple
+    patternMatchSimple                      ,
+
+
+-- ** patternMatchString
+    patternMatchString                      ,
+
+
+-- ** pointerBitLock
+    pointerBitLock                          ,
+
+
+-- ** pointerBitTrylock
+    pointerBitTrylock                       ,
+
+
+-- ** pointerBitUnlock
+    pointerBitUnlock                        ,
+
+
+-- ** poll
+    poll                                    ,
+
+
+-- ** propagateError
+    propagateError                          ,
+
+
+-- ** quarkFromStaticString
+    quarkFromStaticString                   ,
+
+
+-- ** quarkFromString
+    quarkFromString                         ,
+
+
+-- ** quarkToString
+    quarkToString                           ,
+
+
+-- ** quarkTryString
+    quarkTryString                          ,
+
+
+-- ** randomDouble
+    randomDouble                            ,
+
+
+-- ** randomDoubleRange
+    randomDoubleRange                       ,
+
+
+-- ** randomInt
+    randomInt                               ,
+
+
+-- ** randomIntRange
+    randomIntRange                          ,
+
+
+-- ** randomSetSeed
+    randomSetSeed                           ,
+
+
+-- ** reloadUserSpecialDirsCache
+    reloadUserSpecialDirsCache              ,
+
+
+-- ** returnIfFailWarning
+    returnIfFailWarning                     ,
+
+
+-- ** rmdir
+    rmdir                                   ,
+
+
+-- ** setApplicationName
+    setApplicationName                      ,
+
+
+-- ** setErrorLiteral
+    setErrorLiteral                         ,
+
+
+-- ** setPrgname
+    setPrgname                              ,
+
+
+-- ** setenv
+    setenv                                  ,
+
+
+-- ** shellErrorQuark
+    shellErrorQuark                         ,
+
+
+-- ** shellParseArgv
+    shellParseArgv                          ,
+
+
+-- ** shellQuote
+    shellQuote                              ,
+
+
+-- ** shellUnquote
+    shellUnquote                            ,
+
+
+-- ** sliceFree1
+    sliceFree1                              ,
+
+
+-- ** sliceFreeChainWithOffset
+    sliceFreeChainWithOffset                ,
+
+
+-- ** sliceGetConfig
+    sliceGetConfig                          ,
+
+
+-- ** sliceGetConfigState
+    sliceGetConfigState                     ,
+
+
+-- ** sliceSetConfig
+    sliceSetConfig                          ,
+
+
+-- ** spacedPrimesClosest
+    spacedPrimesClosest                     ,
+
+
+-- ** spawnAsync
+    spawnAsync                              ,
+
+
+-- ** spawnAsyncWithPipes
+    spawnAsyncWithPipes                     ,
+
+
+-- ** spawnCheckExitStatus
+    spawnCheckExitStatus                    ,
+
+
+-- ** spawnClosePid
+    spawnClosePid                           ,
+
+
+-- ** spawnCommandLineAsync
+    spawnCommandLineAsync                   ,
+
+
+-- ** spawnCommandLineSync
+    spawnCommandLineSync                    ,
+
+
+-- ** spawnErrorQuark
+    spawnErrorQuark                         ,
+
+
+-- ** spawnExitErrorQuark
+    spawnExitErrorQuark                     ,
+
+
+-- ** spawnSync
+    spawnSync                               ,
+
+
+-- ** stpcpy
+    stpcpy                                  ,
+
+
+-- ** strEqual
+    strEqual                                ,
+
+
+-- ** strHasPrefix
+    strHasPrefix                            ,
+
+
+-- ** strHasSuffix
+    strHasSuffix                            ,
+
+
+-- ** strHash
+    strHash                                 ,
+
+
+-- ** strIsAscii
+    strIsAscii                              ,
+
+
+-- ** strMatchString
+    strMatchString                          ,
+
+
+-- ** strToAscii
+    strToAscii                              ,
+
+
+-- ** strTokenizeAndFold
+    strTokenizeAndFold                      ,
+
+
+-- ** strcanon
+    strcanon                                ,
+
+
+-- ** strcasecmp
+    strcasecmp                              ,
+
+
+-- ** strchomp
+    strchomp                                ,
+
+
+-- ** strchug
+    strchug                                 ,
+
+
+-- ** strcmp0
+    strcmp0                                 ,
+
+
+-- ** strcompress
+    strcompress                             ,
+
+
+-- ** strdelimit
+    strdelimit                              ,
+
+
+-- ** strdown
+    strdown                                 ,
+
+
+-- ** strdup
+    strdup                                  ,
+
+
+-- ** strerror
+    strerror                                ,
+
+
+-- ** strescape
+    strescape                               ,
+
+
+-- ** strfreev
+    strfreev                                ,
+
+
+-- ** stringNew
+    stringNew                               ,
+
+
+-- ** stringNewLen
+    stringNewLen                            ,
+
+
+-- ** stringSizedNew
+    stringSizedNew                          ,
+
+
+-- ** stripContext
+    stripContext                            ,
+
+
+-- ** strjoinv
+    strjoinv                                ,
+
+
+-- ** strlcat
+    strlcat                                 ,
+
+
+-- ** strlcpy
+    strlcpy                                 ,
+
+
+-- ** strncasecmp
+    strncasecmp                             ,
+
+
+-- ** strndup
+    strndup                                 ,
+
+
+-- ** strnfill
+    strnfill                                ,
+
+
+-- ** strreverse
+    strreverse                              ,
+
+
+-- ** strrstr
+    strrstr                                 ,
+
+
+-- ** strrstrLen
+    strrstrLen                              ,
+
+
+-- ** strsignal
+    strsignal                               ,
+
+
+-- ** strstrLen
+    strstrLen                               ,
+
+
+-- ** strtod
+    strtod                                  ,
+
+
+-- ** strup
+    strup                                   ,
+
+
+-- ** strvContains
+    strvContains                            ,
+
+
+-- ** strvGetType
+    strvGetType                             ,
+
+
+-- ** strvLength
+    strvLength                              ,
+
+
+-- ** testAddDataFunc
+    testAddDataFunc                         ,
+
+
+-- ** testAddFunc
+    testAddFunc                             ,
+
+
+-- ** testAssertExpectedMessagesInternal
+    testAssertExpectedMessagesInternal      ,
+
+
+-- ** testBug
+    testBug                                 ,
+
+
+-- ** testBugBase
+    testBugBase                             ,
+
+
+-- ** testExpectMessage
+    testExpectMessage                       ,
+
+
+-- ** testFail
+    testFail                                ,
+
+
+-- ** testFailed
+    testFailed                              ,
+
+
+-- ** testGetDir
+    testGetDir                              ,
+
+
+-- ** testIncomplete
+    testIncomplete                          ,
+
+
+-- ** testLogTypeName
+    testLogTypeName                         ,
+
+
+-- ** testQueueDestroy
+    testQueueDestroy                        ,
+
+
+-- ** testQueueFree
+    testQueueFree                           ,
+
+
+-- ** testRandDouble
+    testRandDouble                          ,
+
+
+-- ** testRandDoubleRange
+    testRandDoubleRange                     ,
+
+
+-- ** testRandInt
+    testRandInt                             ,
+
+
+-- ** testRandIntRange
+    testRandIntRange                        ,
+
+
+-- ** testRun
+    testRun                                 ,
+
+
+-- ** testRunSuite
+    testRunSuite                            ,
+
+
+-- ** testSetNonfatalAssertions
+    testSetNonfatalAssertions               ,
+
+
+-- ** testSkip
+    testSkip                                ,
+
+
+-- ** testSubprocess
+    testSubprocess                          ,
+
+
+-- ** testTimerElapsed
+    testTimerElapsed                        ,
+
+
+-- ** testTimerLast
+    testTimerLast                           ,
+
+
+-- ** testTimerStart
+    testTimerStart                          ,
+
+
+-- ** testTrapAssertions
+    testTrapAssertions                      ,
+
+
+-- ** testTrapFork
+    testTrapFork                            ,
+
+
+-- ** testTrapHasPassed
+    testTrapHasPassed                       ,
+
+
+-- ** testTrapReachedTimeout
+    testTrapReachedTimeout                  ,
+
+
+-- ** testTrapSubprocess
+    testTrapSubprocess                      ,
+
+
+-- ** timeoutAdd
+    timeoutAdd                              ,
+
+
+-- ** timeoutAddSeconds
+    timeoutAddSeconds                       ,
+
+
+-- ** timeoutSourceNew
+    timeoutSourceNew                        ,
+
+
+-- ** timeoutSourceNewSeconds
+    timeoutSourceNewSeconds                 ,
+
+
+-- ** unicharBreakType
+    unicharBreakType                        ,
+
+
+-- ** unicharCombiningClass
+    unicharCombiningClass                   ,
+
+
+-- ** unicharCompose
+    unicharCompose                          ,
+
+
+-- ** unicharDecompose
+    unicharDecompose                        ,
+
+
+-- ** unicharDigitValue
+    unicharDigitValue                       ,
+
+
+-- ** unicharGetMirrorChar
+    unicharGetMirrorChar                    ,
+
+
+-- ** unicharGetScript
+    unicharGetScript                        ,
+
+
+-- ** unicharIsalnum
+    unicharIsalnum                          ,
+
+
+-- ** unicharIsalpha
+    unicharIsalpha                          ,
+
+
+-- ** unicharIscntrl
+    unicharIscntrl                          ,
+
+
+-- ** unicharIsdefined
+    unicharIsdefined                        ,
+
+
+-- ** unicharIsdigit
+    unicharIsdigit                          ,
+
+
+-- ** unicharIsgraph
+    unicharIsgraph                          ,
+
+
+-- ** unicharIslower
+    unicharIslower                          ,
+
+
+-- ** unicharIsmark
+    unicharIsmark                           ,
+
+
+-- ** unicharIsprint
+    unicharIsprint                          ,
+
+
+-- ** unicharIspunct
+    unicharIspunct                          ,
+
+
+-- ** unicharIsspace
+    unicharIsspace                          ,
+
+
+-- ** unicharIstitle
+    unicharIstitle                          ,
+
+
+-- ** unicharIsupper
+    unicharIsupper                          ,
+
+
+-- ** unicharIswide
+    unicharIswide                           ,
+
+
+-- ** unicharIswideCjk
+    unicharIswideCjk                        ,
+
+
+-- ** unicharIsxdigit
+    unicharIsxdigit                         ,
+
+
+-- ** unicharIszerowidth
+    unicharIszerowidth                      ,
+
+
+-- ** unicharToUtf8
+    unicharToUtf8                           ,
+
+
+-- ** unicharTolower
+    unicharTolower                          ,
+
+
+-- ** unicharTotitle
+    unicharTotitle                          ,
+
+
+-- ** unicharToupper
+    unicharToupper                          ,
+
+
+-- ** unicharType
+    unicharType                             ,
+
+
+-- ** unicharValidate
+    unicharValidate                         ,
+
+
+-- ** unicharXdigitValue
+    unicharXdigitValue                      ,
+
+
+-- ** unicodeCanonicalDecomposition
+    unicodeCanonicalDecomposition           ,
+
+
+-- ** unicodeCanonicalOrdering
+    unicodeCanonicalOrdering                ,
+
+
+-- ** unicodeScriptFromIso15924
+    unicodeScriptFromIso15924               ,
+
+
+-- ** unicodeScriptToIso15924
+    unicodeScriptToIso15924                 ,
+
+
+-- ** unixErrorQuark
+    unixErrorQuark                          ,
+
+
+-- ** unixFdAddFull
+    unixFdAddFull                           ,
+
+
+-- ** unixFdSourceNew
+    unixFdSourceNew                         ,
+
+
+-- ** unixOpenPipe
+    unixOpenPipe                            ,
+
+
+-- ** unixSetFdNonblocking
+    unixSetFdNonblocking                    ,
+
+
+-- ** unixSignalAdd
+    unixSignalAdd                           ,
+
+
+-- ** unixSignalSourceNew
+    unixSignalSourceNew                     ,
+
+
+-- ** unlink
+    unlink                                  ,
+
+
+-- ** unsetenv
+    unsetenv                                ,
+
+
+-- ** uriEscapeString
+    uriEscapeString                         ,
+
+
+-- ** uriListExtractUris
+    uriListExtractUris                      ,
+
+
+-- ** uriParseScheme
+    uriParseScheme                          ,
+
+
+-- ** uriUnescapeSegment
+    uriUnescapeSegment                      ,
+
+
+-- ** uriUnescapeString
+    uriUnescapeString                       ,
+
+
+-- ** usleep
+    usleep                                  ,
+
+
+-- ** utf8Casefold
+    utf8Casefold                            ,
+
+
+-- ** utf8Collate
+    utf8Collate                             ,
+
+
+-- ** utf8CollateKey
+    utf8CollateKey                          ,
+
+
+-- ** utf8CollateKeyForFilename
+    utf8CollateKeyForFilename               ,
+
+
+-- ** utf8FindNextChar
+    utf8FindNextChar                        ,
+
+
+-- ** utf8FindPrevChar
+    utf8FindPrevChar                        ,
+
+
+-- ** utf8GetChar
+    utf8GetChar                             ,
+
+
+-- ** utf8GetCharValidated
+    utf8GetCharValidated                    ,
+
+
+-- ** utf8Normalize
+    utf8Normalize                           ,
+
+
+-- ** utf8OffsetToPointer
+    utf8OffsetToPointer                     ,
+
+
+-- ** utf8PointerToOffset
+    utf8PointerToOffset                     ,
+
+
+-- ** utf8PrevChar
+    utf8PrevChar                            ,
+
+
+-- ** utf8Strchr
+    utf8Strchr                              ,
+
+
+-- ** utf8Strdown
+    utf8Strdown                             ,
+
+
+-- ** utf8Strlen
+    utf8Strlen                              ,
+
+
+-- ** utf8Strncpy
+    utf8Strncpy                             ,
+
+
+-- ** utf8Strrchr
+    utf8Strrchr                             ,
+
+
+-- ** utf8Strreverse
+    utf8Strreverse                          ,
+
+
+-- ** utf8Strup
+    utf8Strup                               ,
+
+
+-- ** utf8Substring
+    utf8Substring                           ,
+
+
+-- ** utf8Validate
+    utf8Validate                            ,
+
+
+-- ** variantGetGtype
+    variantGetGtype                         ,
+
+
+-- ** warnMessage
+    warnMessage                             ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.GLib.Types
+import GI.GLib.Callbacks
+
+-- function g_warn_message
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "warnexpr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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 ()
+
+
+-- function g_variant_get_gtype
+-- Args : []
+-- Lengths : []
+-- 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                                 -- result
+variantGetGtype  = liftIO $ do
+    result <- g_variant_get_gtype
+    let result' = GType result
+    return result'
+
+
+-- function g_utf8_validate
+-- Args : [Arg {argCName = "str", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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)                      -- result
+utf8Validate str = liftIO $ do
+    let maxLen = fromIntegral $ B.length str
+    str' <- packByteString str
+    end <- allocMem :: IO (Ptr CString)
+    result <- g_utf8_validate str' maxLen end
+    let result' = (/= 0) result
+    end' <- peek end
+    end'' <- cstringToText end'
+    freeMem str'
+    freeMem end
+    return (result', end'')
+
+
+-- function g_utf8_substring
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- startPos
+    -> Int64                                -- endPos
+    -> m T.Text                             -- result
+utf8Substring str startPos endPos = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_substring str' startPos endPos
+    checkUnexpectedReturnNULL "g_utf8_substring" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_strup
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8Strup str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_strup str' len
+    checkUnexpectedReturnNULL "g_utf8_strup" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_strreverse
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8Strreverse str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_strreverse str' len
+    checkUnexpectedReturnNULL "g_utf8_strreverse" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_strrchr
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8Strrchr p len c = liftIO $ do
+    p' <- textToCString p
+    let c' = (fromIntegral . ord) c
+    result <- g_utf8_strrchr p' len c'
+    checkUnexpectedReturnNULL "g_utf8_strrchr" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_strncpy
+-- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8Strncpy dest src n = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_utf8_strncpy dest' src' n
+    checkUnexpectedReturnNULL "g_utf8_strncpy" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem dest'
+    freeMem src'
+    return result'
+
+
+-- function g_utf8_strlen
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+utf8Strlen p max = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_strlen p' max
+    freeMem p'
+    return result
+
+
+-- function g_utf8_strdown
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8Strdown str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_strdown str' len
+    checkUnexpectedReturnNULL "g_utf8_strdown" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_strchr
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8Strchr p len c = liftIO $ do
+    p' <- textToCString p
+    let c' = (fromIntegral . ord) c
+    result <- g_utf8_strchr p' len c'
+    checkUnexpectedReturnNULL "g_utf8_strchr" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_prev_char
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8PrevChar p = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_prev_char p'
+    checkUnexpectedReturnNULL "g_utf8_prev_char" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_pointer_to_offset
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+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_offset_to_pointer
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8OffsetToPointer str offset = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_offset_to_pointer str' offset
+    checkUnexpectedReturnNULL "g_utf8_offset_to_pointer" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_normalize
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface "GLib" "NormalizeMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8Normalize str len mode = liftIO $ do
+    str' <- textToCString str
+    let mode' = (fromIntegral . fromEnum) mode
+    result <- g_utf8_normalize str' len mode'
+    checkUnexpectedReturnNULL "g_utf8_normalize" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_get_char_validated
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- maxLen
+    -> m Char                               -- result
+utf8GetCharValidated p maxLen = liftIO $ do
+    p' <- textToCString p
+    result <- g_utf8_get_char_validated p' maxLen
+    let result' = (chr . fromIntegral) result
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_get_char
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_find_prev_char
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8FindPrevChar str p = liftIO $ do
+    str' <- textToCString str
+    p' <- textToCString p
+    result <- g_utf8_find_prev_char str' p'
+    checkUnexpectedReturnNULL "g_utf8_find_prev_char" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    freeMem p'
+    return result'
+
+
+-- function g_utf8_find_next_char
+-- Args : [Arg {argCName = "p", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8FindNextChar p end = liftIO $ do
+    p' <- textToCString p
+    end' <- textToCString end
+    result <- g_utf8_find_next_char p' end'
+    checkUnexpectedReturnNULL "g_utf8_find_next_char" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem p'
+    freeMem end'
+    return result'
+
+
+-- function g_utf8_collate_key_for_filename
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8CollateKeyForFilename str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_collate_key_for_filename str' len
+    checkUnexpectedReturnNULL "g_utf8_collate_key_for_filename" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_collate_key
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8CollateKey str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_collate_key str' len
+    checkUnexpectedReturnNULL "g_utf8_collate_key" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_utf8_collate
+-- Args : [Arg {argCName = "str1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+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_casefold
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+utf8Casefold str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_utf8_casefold str' len
+    checkUnexpectedReturnNULL "g_utf8_casefold" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_usleep
+-- Args : [Arg {argCName = "microseconds", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+usleep microseconds = liftIO $ do
+    g_usleep microseconds
+    return ()
+
+
+-- function g_uri_unescape_string
+-- Args : [Arg {argCName = "escaped_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "illegal_characters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- escapedString
+    -> Maybe (T.Text)                       -- illegalCharacters
+    -> m T.Text                             -- result
+uriUnescapeString escapedString illegalCharacters = liftIO $ do
+    escapedString' <- textToCString escapedString
+    maybeIllegalCharacters <- case illegalCharacters of
+        Nothing -> return nullPtr
+        Just jIllegalCharacters -> do
+            jIllegalCharacters' <- textToCString jIllegalCharacters
+            return jIllegalCharacters'
+    result <- g_uri_unescape_string escapedString' maybeIllegalCharacters
+    checkUnexpectedReturnNULL "g_uri_unescape_string" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem escapedString'
+    freeMem maybeIllegalCharacters
+    return result'
+
+
+-- function g_uri_unescape_segment
+-- Args : [Arg {argCName = "escaped_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "escaped_string_end", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "illegal_characters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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)                          -- escapedString
+    -> Maybe (T.Text)                       -- escapedStringEnd
+    -> Maybe (T.Text)                       -- illegalCharacters
+    -> m T.Text                             -- result
+uriUnescapeSegment escapedString escapedStringEnd illegalCharacters = liftIO $ do
+    maybeEscapedString <- case escapedString of
+        Nothing -> return nullPtr
+        Just jEscapedString -> do
+            jEscapedString' <- textToCString jEscapedString
+            return jEscapedString'
+    maybeEscapedStringEnd <- case escapedStringEnd of
+        Nothing -> return nullPtr
+        Just jEscapedStringEnd -> do
+            jEscapedStringEnd' <- textToCString jEscapedStringEnd
+            return jEscapedStringEnd'
+    maybeIllegalCharacters <- case illegalCharacters of
+        Nothing -> return nullPtr
+        Just jIllegalCharacters -> do
+            jIllegalCharacters' <- textToCString jIllegalCharacters
+            return jIllegalCharacters'
+    result <- g_uri_unescape_segment maybeEscapedString maybeEscapedStringEnd maybeIllegalCharacters
+    checkUnexpectedReturnNULL "g_uri_unescape_segment" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem maybeEscapedString
+    freeMem maybeEscapedStringEnd
+    freeMem maybeIllegalCharacters
+    return result'
+
+
+-- function g_uri_parse_scheme
+-- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+uriParseScheme uri = liftIO $ do
+    uri' <- textToCString uri
+    result <- g_uri_parse_scheme uri'
+    checkUnexpectedReturnNULL "g_uri_parse_scheme" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem uri'
+    return result'
+
+
+-- function g_uri_list_extract_uris
+-- Args : [Arg {argCName = "uri_list", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- uriList
+    -> m [T.Text]                           -- result
+uriListExtractUris uriList = liftIO $ do
+    uriList' <- textToCString uriList
+    result <- g_uri_list_extract_uris uriList'
+    checkUnexpectedReturnNULL "g_uri_list_extract_uris" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem uriList'
+    return result'
+
+
+-- function g_uri_escape_string
+-- Args : [Arg {argCName = "unescaped", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reserved_chars_allowed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allow_utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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)                       -- reservedCharsAllowed
+    -> Bool                                 -- allowUtf8
+    -> m T.Text                             -- result
+uriEscapeString unescaped reservedCharsAllowed allowUtf8 = liftIO $ do
+    unescaped' <- textToCString unescaped
+    maybeReservedCharsAllowed <- case reservedCharsAllowed of
+        Nothing -> return nullPtr
+        Just jReservedCharsAllowed -> do
+            jReservedCharsAllowed' <- textToCString jReservedCharsAllowed
+            return jReservedCharsAllowed'
+    let allowUtf8' = (fromIntegral . fromEnum) allowUtf8
+    result <- g_uri_escape_string unescaped' maybeReservedCharsAllowed allowUtf8'
+    checkUnexpectedReturnNULL "g_uri_escape_string" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem unescaped'
+    freeMem maybeReservedCharsAllowed
+    return result'
+
+
+-- function g_unsetenv
+-- Args : [Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+unsetenv variable = liftIO $ do
+    variable' <- textToCString variable
+    g_unsetenv variable'
+    freeMem variable'
+    return ()
+
+
+-- function g_unlink
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+unlink filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_unlink filename'
+    freeMem filename'
+    return result
+
+
+-- function g_unix_signal_source_new
+-- Args : [Arg {argCName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+unixSignalSourceNew signum = liftIO $ do
+    result <- g_unix_signal_source_new signum
+    checkUnexpectedReturnNULL "g_unix_signal_source_new" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_unix_signal_add_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+unixSignalAdd priority signum handler = liftIO $ do
+    handler' <- mkSourceFunc (sourceFuncWrapper Nothing handler)
+    let userData = castFunPtrToPtr handler'
+    let notify = safeFreeFunPtrPtr
+    result <- g_unix_signal_add_full priority signum handler' userData notify
+    return result
+
+
+-- function g_unix_set_fd_nonblocking
+-- Args : [Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nonblock", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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_open_pipe
+-- Args : [Arg {argCName = "fds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+unixOpenPipe fds flags = liftIO $ do
+    onException (do
+        _ <- propagateGError $ g_unix_open_pipe fds flags
+        return ()
+     ) (do
+        return ()
+     )
+
+
+-- function g_unix_fd_source_new
+-- Args : [Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+unixFdSourceNew fd condition = liftIO $ do
+    let condition' = gflagsToWord condition
+    result <- g_unix_fd_source_new fd condition'
+    checkUnexpectedReturnNULL "g_unix_fd_source_new" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_unix_fd_add_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "UnixFDSourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+unixFdAddFull priority fd condition function = liftIO $ do
+    let condition' = gflagsToWord condition
+    function' <- mkUnixFDSourceFunc (unixFDSourceFuncWrapper Nothing function)
+    let userData = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- g_unix_fd_add_full priority fd condition' function' userData notify
+    return result
+
+
+-- function g_unix_error_quark
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+unixErrorQuark  = liftIO $ do
+    result <- g_unix_error_quark
+    return result
+
+
+-- function g_unicode_script_to_iso15924
+-- Args : [Arg {argCName = "script", argType = TInterface "GLib" "UnicodeScript", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+unicodeScriptToIso15924 script = liftIO $ do
+    let script' = (fromIntegral . fromEnum) script
+    result <- g_unicode_script_to_iso15924 script'
+    return result
+
+
+-- function g_unicode_script_from_iso15924
+-- Args : [Arg {argCName = "iso15924", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                      -- result
+unicodeScriptFromIso15924 iso15924 = liftIO $ do
+    result <- g_unicode_script_from_iso15924 iso15924
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+
+-- function g_unicode_canonical_ordering
+-- Args : [Arg {argCName = "string", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+unicodeCanonicalOrdering string len = liftIO $ do
+    let string' = (fromIntegral . ord) string
+    g_unicode_canonical_ordering string' len
+    return ()
+
+
+-- function g_unicode_canonical_decomposition
+-- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- resultLen
+    -> m Char                               -- result
+unicodeCanonicalDecomposition ch resultLen = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    result <- g_unicode_canonical_decomposition ch' resultLen
+    let result' = (chr . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_xdigit_value
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+unicharXdigitValue c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_xdigit_value c'
+    return result
+
+
+-- function g_unichar_validate
+-- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharValidate ch = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    result <- g_unichar_validate ch'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_type
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                        -- result
+unicharType c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_type c'
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_toupper
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharToupper c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_toupper c'
+    let result' = (chr . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_totitle
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharTotitle c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_totitle c'
+    let result' = (chr . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_tolower
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharTolower c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_tolower c'
+    let result' = (chr . fromIntegral) result
+    return result'
+
+
+-- function g_unichar_to_utf8
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "outbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+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_iszerowidth
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIszerowidth c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iszerowidth c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isxdigit
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIsxdigit c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isxdigit c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_iswide_cjk
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIswideCjk c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iswide_cjk c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_iswide
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIswide c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iswide c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isupper
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIsupper c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isupper c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_istitle
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIstitle c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_istitle c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isspace
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIsspace c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isspace c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_ispunct
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIspunct c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_ispunct c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isprint
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIsprint c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isprint c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_ismark
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIsmark c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_ismark c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_islower
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIslower c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_islower c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isgraph
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIsgraph c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isgraph c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isdigit
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIsdigit c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isdigit c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isdefined
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIsdefined c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isdefined c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_iscntrl
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIscntrl c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_iscntrl c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isalpha
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIsalpha c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isalpha c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_isalnum
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+unicharIsalnum c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_isalnum c'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_get_script
+-- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                      -- result
+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_get_mirror_char
+-- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mirrored_ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                 -- mirroredCh
+    -> m Bool                               -- result
+unicharGetMirrorChar ch mirroredCh = liftIO $ do
+    let ch' = (fromIntegral . ord) ch
+    let mirroredCh' = (fromIntegral . ord) mirroredCh
+    result <- g_unichar_get_mirror_char ch' mirroredCh'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_unichar_digit_value
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+unicharDigitValue c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_digit_value c'
+    return result
+
+
+-- function g_unichar_decompose
+-- Args : [Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "a", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_compose
+-- Args : [Arg {argCName = "a", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ch", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_combining_class
+-- Args : [Arg {argCName = "uc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+unicharCombiningClass uc = liftIO $ do
+    let uc' = (fromIntegral . ord) uc
+    result <- g_unichar_combining_class uc'
+    return result
+
+
+-- function g_unichar_break_type
+-- Args : [Arg {argCName = "c", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                   -- result
+unicharBreakType c = liftIO $ do
+    let c' = (fromIntegral . ord) c
+    result <- g_unichar_break_type c'
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+
+-- function g_timeout_source_new_seconds
+-- Args : [Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+timeoutSourceNewSeconds interval = liftIO $ do
+    result <- g_timeout_source_new_seconds interval
+    checkUnexpectedReturnNULL "g_timeout_source_new_seconds" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_timeout_source_new
+-- Args : [Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+timeoutSourceNew interval = liftIO $ do
+    result <- g_timeout_source_new interval
+    checkUnexpectedReturnNULL "g_timeout_source_new" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_timeout_add_seconds_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_add_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_test_trap_subprocess
+-- Args : [Arg {argCName = "test_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "usec_timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_flags", argType = TInterface "GLib" "TestSubprocessFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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)                          -- testPath
+    -> Word64                               -- usecTimeout
+    -> [TestSubprocessFlags]                -- testFlags
+    -> m ()                                 -- result
+testTrapSubprocess testPath usecTimeout testFlags = liftIO $ do
+    maybeTestPath <- case testPath of
+        Nothing -> return nullPtr
+        Just jTestPath -> do
+            jTestPath' <- textToCString jTestPath
+            return jTestPath'
+    let testFlags' = gflagsToWord testFlags
+    g_test_trap_subprocess maybeTestPath usecTimeout testFlags'
+    freeMem maybeTestPath
+    return ()
+
+
+-- function g_test_trap_reached_timeout
+-- Args : []
+-- Lengths : []
+-- 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                                  -- result
+testTrapReachedTimeout  = liftIO $ do
+    result <- g_test_trap_reached_timeout
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_test_trap_has_passed
+-- Args : []
+-- Lengths : []
+-- 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                                  -- result
+testTrapHasPassed  = liftIO $ do
+    result <- g_test_trap_has_passed
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_test_trap_fork
+-- Args : [Arg {argCName = "usec_timeout", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_trap_flags", argType = TInterface "GLib" "TestTrapFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- usecTimeout
+    -> [TestTrapFlags]                      -- testTrapFlags
+    -> m Bool                               -- result
+testTrapFork usecTimeout testTrapFlags = liftIO $ do
+    let testTrapFlags' = gflagsToWord testTrapFlags
+    result <- g_test_trap_fork usecTimeout testTrapFlags'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_test_trap_assertions
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "assertion_flags", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- assertionFlags
+    -> T.Text                               -- pattern
+    -> m ()                                 -- result
+testTrapAssertions domain file line func assertionFlags pattern = liftIO $ do
+    domain' <- textToCString domain
+    file' <- textToCString file
+    func' <- textToCString func
+    pattern' <- textToCString pattern
+    g_test_trap_assertions domain' file' line func' assertionFlags pattern'
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem pattern'
+    return ()
+
+
+-- function g_test_timer_start
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_timer_start" g_test_timer_start :: 
+    IO ()
+
+
+testTimerStart ::
+    (MonadIO m) =>
+    m ()                                    -- result
+testTimerStart  = liftIO $ do
+    g_test_timer_start
+    return ()
+
+
+-- function g_test_timer_last
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+testTimerLast  = liftIO $ do
+    result <- g_test_timer_last
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_test_timer_elapsed
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+testTimerElapsed  = liftIO $ do
+    result <- g_test_timer_elapsed
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_test_subprocess
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_subprocess" g_test_subprocess :: 
+    IO CInt
+
+
+testSubprocess ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+testSubprocess  = liftIO $ do
+    result <- g_test_subprocess
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_test_skip
+-- Args : [Arg {argCName = "msg", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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_set_nonfatal_assertions
+-- Args : []
+-- Lengths : []
+-- 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 ()                                    -- result
+testSetNonfatalAssertions  = liftIO $ do
+    g_test_set_nonfatal_assertions
+    return ()
+
+
+-- function g_test_run_suite
+-- Args : [Arg {argCName = "suite", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+testRunSuite suite = liftIO $ do
+    let suite' = unsafeManagedPtrGetPtr suite
+    result <- g_test_run_suite suite'
+    touchManagedPtr suite
+    return result
+
+
+-- function g_test_run
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_run" g_test_run :: 
+    IO Int32
+
+
+testRun ::
+    (MonadIO m) =>
+    m Int32                                 -- result
+testRun  = liftIO $ do
+    result <- g_test_run
+    return result
+
+
+-- function g_test_rand_int_range
+-- Args : [Arg {argCName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+testRandIntRange begin end = liftIO $ do
+    result <- g_test_rand_int_range begin end
+    return result
+
+
+-- function g_test_rand_int
+-- Args : []
+-- Lengths : []
+-- 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                                 -- result
+testRandInt  = liftIO $ do
+    result <- g_test_rand_int
+    return result
+
+
+-- function g_test_rand_double_range
+-- Args : [Arg {argCName = "range_start", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "range_end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- rangeStart
+    -> Double                               -- rangeEnd
+    -> m Double                             -- result
+testRandDoubleRange rangeStart rangeEnd = liftIO $ do
+    let rangeStart' = realToFrac rangeStart
+    let rangeEnd' = realToFrac rangeEnd
+    result <- g_test_rand_double_range rangeStart' rangeEnd'
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_test_rand_double
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+testRandDouble  = liftIO $ do
+    result <- g_test_rand_double
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_test_queue_free
+-- Args : [Arg {argCName = "gfree_pointer", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                  -- gfreePointer
+    -> m ()                                 -- result
+testQueueFree gfreePointer = liftIO $ do
+    g_test_queue_free gfreePointer
+    return ()
+
+
+-- function g_test_queue_destroy
+-- Args : [Arg {argCName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                           -- destroyFunc
+    -> Ptr ()                               -- destroyData
+    -> m ()                                 -- result
+testQueueDestroy destroyFunc destroyData = liftIO $ do
+    ptrdestroyFunc <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    destroyFunc' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroyFunc) destroyFunc)
+    poke ptrdestroyFunc destroyFunc'
+    g_test_queue_destroy destroyFunc' destroyData
+    return ()
+
+
+-- function g_test_log_type_name
+-- Args : [Arg {argCName = "log_type", argType = TInterface "GLib" "TestLogType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- logType
+    -> m T.Text                             -- result
+testLogTypeName logType = liftIO $ do
+    let logType' = (fromIntegral . fromEnum) logType
+    result <- g_test_log_type_name logType'
+    checkUnexpectedReturnNULL "g_test_log_type_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_test_incomplete
+-- Args : [Arg {argCName = "msg", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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_get_dir
+-- Args : [Arg {argCName = "file_type", argType = TInterface "GLib" "TestFileType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                            -- fileType
+    -> m T.Text                             -- result
+testGetDir fileType = liftIO $ do
+    let fileType' = (fromIntegral . fromEnum) fileType
+    result <- g_test_get_dir fileType'
+    checkUnexpectedReturnNULL "g_test_get_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_test_failed
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_failed" g_test_failed :: 
+    IO CInt
+
+
+testFailed ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+testFailed  = liftIO $ do
+    result <- g_test_failed
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_test_fail
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_test_fail" g_test_fail :: 
+    IO ()
+
+
+testFail ::
+    (MonadIO m) =>
+    m ()                                    -- result
+testFail  = liftIO $ do
+    g_test_fail
+    return ()
+
+
+-- function g_test_expect_message
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_level", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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)                          -- logDomain
+    -> [LogLevelFlags]                      -- logLevel
+    -> T.Text                               -- pattern
+    -> m ()                                 -- result
+testExpectMessage logDomain logLevel pattern = liftIO $ do
+    maybeLogDomain <- case logDomain of
+        Nothing -> return nullPtr
+        Just jLogDomain -> do
+            jLogDomain' <- textToCString jLogDomain
+            return jLogDomain'
+    let logLevel' = gflagsToWord logLevel
+    pattern' <- textToCString pattern
+    g_test_expect_message maybeLogDomain logLevel' pattern'
+    freeMem maybeLogDomain
+    freeMem pattern'
+    return ()
+
+
+-- function g_test_bug_base
+-- Args : [Arg {argCName = "uri_pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- uriPattern
+    -> m ()                                 -- result
+testBugBase uriPattern = liftIO $ do
+    uriPattern' <- textToCString uriPattern
+    g_test_bug_base uriPattern'
+    freeMem uriPattern'
+    return ()
+
+
+-- function g_test_bug
+-- Args : [Arg {argCName = "bug_uri_snippet", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- bugUriSnippet
+    -> m ()                                 -- result
+testBug bugUriSnippet = liftIO $ do
+    bugUriSnippet' <- textToCString bugUriSnippet
+    g_test_bug bugUriSnippet'
+    freeMem bugUriSnippet'
+    return ()
+
+
+-- function g_test_assert_expected_messages_internal
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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_add_func
+-- Args : [Arg {argCName = "testpath", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_func", argType = TInterface "GLib" "TestFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- testFunc
+    -> m ()                                 -- result
+testAddFunc testpath testFunc = liftIO $ do
+    testpath' <- textToCString testpath
+    ptrtestFunc <- callocMem :: IO (Ptr (FunPtr TestFuncC))
+    testFunc' <- mkTestFunc (testFuncWrapper (Just ptrtestFunc) testFunc)
+    poke ptrtestFunc testFunc'
+    g_test_add_func testpath' testFunc'
+    freeMem testpath'
+    return ()
+
+
+-- function g_test_add_data_func
+-- Args : [Arg {argCName = "testpath", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_func", argType = TInterface "GLib" "TestDataFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                               -- testData
+    -> TestDataFunc                         -- testFunc
+    -> m ()                                 -- result
+testAddDataFunc testpath testData testFunc = liftIO $ do
+    testpath' <- textToCString testpath
+    ptrtestFunc <- callocMem :: IO (Ptr (FunPtr TestDataFuncC))
+    testFunc' <- mkTestDataFunc (testDataFuncWrapper (Just ptrtestFunc) testFunc)
+    poke ptrtestFunc testFunc'
+    g_test_add_data_func testpath' testData testFunc'
+    freeMem testpath'
+    return ()
+
+
+-- function g_strv_length
+-- Args : [Arg {argCName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- strArray
+    -> m Word32                             -- result
+strvLength strArray = liftIO $ do
+    strArray' <- textToCString strArray
+    result <- g_strv_length strArray'
+    freeMem strArray'
+    return result
+
+
+-- function g_strv_get_type
+-- Args : []
+-- Lengths : []
+-- 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                                 -- result
+strvGetType  = liftIO $ do
+    result <- g_strv_get_type
+    let result' = GType result
+    return result'
+
+
+-- function g_strv_contains
+-- Args : [Arg {argCName = "strv", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_strup
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strup string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strup string'
+    checkUnexpectedReturnNULL "g_strup" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+
+-- function g_strtod
+-- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_strstr_len
+-- Args : [Arg {argCName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "haystack_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- haystackLen
+    -> T.Text                               -- needle
+    -> m T.Text                             -- result
+strstrLen haystack haystackLen needle = liftIO $ do
+    haystack' <- textToCString haystack
+    needle' <- textToCString needle
+    result <- g_strstr_len haystack' haystackLen needle'
+    checkUnexpectedReturnNULL "g_strstr_len" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem haystack'
+    freeMem needle'
+    return result'
+
+
+-- function g_strsignal
+-- Args : [Arg {argCName = "signum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strsignal signum = liftIO $ do
+    result <- g_strsignal signum
+    checkUnexpectedReturnNULL "g_strsignal" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_strrstr_len
+-- Args : [Arg {argCName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "haystack_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- haystackLen
+    -> T.Text                               -- needle
+    -> m T.Text                             -- result
+strrstrLen haystack haystackLen needle = liftIO $ do
+    haystack' <- textToCString haystack
+    needle' <- textToCString needle
+    result <- g_strrstr_len haystack' haystackLen needle'
+    checkUnexpectedReturnNULL "g_strrstr_len" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem haystack'
+    freeMem needle'
+    return result'
+
+
+-- function g_strrstr
+-- Args : [Arg {argCName = "haystack", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "needle", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strrstr haystack needle = liftIO $ do
+    haystack' <- textToCString haystack
+    needle' <- textToCString needle
+    result <- g_strrstr haystack' needle'
+    checkUnexpectedReturnNULL "g_strrstr" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem haystack'
+    freeMem needle'
+    return result'
+
+
+-- function g_strreverse
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strreverse string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strreverse string'
+    checkUnexpectedReturnNULL "g_strreverse" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+
+-- function g_strnfill
+-- Args : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fill_char", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                 -- fillChar
+    -> m T.Text                             -- result
+strnfill length_ fillChar = liftIO $ do
+    result <- g_strnfill length_ fillChar
+    checkUnexpectedReturnNULL "g_strnfill" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_strndup
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strndup str n = liftIO $ do
+    str' <- textToCString str
+    result <- g_strndup str' n
+    checkUnexpectedReturnNULL "g_strndup" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_strncasecmp
+-- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+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_strlcpy
+-- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- destSize
+    -> m Word64                             -- result
+strlcpy dest src destSize = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_strlcpy dest' src' destSize
+    freeMem dest'
+    freeMem src'
+    return result
+
+
+-- function g_strlcat
+-- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- destSize
+    -> m Word64                             -- result
+strlcat dest src destSize = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_strlcat dest' src' destSize
+    freeMem dest'
+    freeMem src'
+    return result
+
+
+-- function g_strjoinv
+-- Args : [Arg {argCName = "separator", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- strArray
+    -> m T.Text                             -- result
+strjoinv separator strArray = liftIO $ do
+    maybeSeparator <- case separator of
+        Nothing -> return nullPtr
+        Just jSeparator -> do
+            jSeparator' <- textToCString jSeparator
+            return jSeparator'
+    strArray' <- textToCString strArray
+    result <- g_strjoinv maybeSeparator strArray'
+    checkUnexpectedReturnNULL "g_strjoinv" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem maybeSeparator
+    freeMem strArray'
+    return result'
+
+
+-- function g_strip_context
+-- Args : [Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgval", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+stripContext msgid msgval = liftIO $ do
+    msgid' <- textToCString msgid
+    msgval' <- textToCString msgval
+    result <- g_strip_context msgid' msgval'
+    checkUnexpectedReturnNULL "g_strip_context" result
+    result' <- cstringToText result
+    freeMem msgid'
+    freeMem msgval'
+    return result'
+
+
+-- function g_string_sized_new
+-- Args : [Arg {argCName = "dfl_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- dflSize
+    -> m String                             -- result
+stringSizedNew dflSize = liftIO $ do
+    result <- g_string_sized_new dflSize
+    checkUnexpectedReturnNULL "g_string_sized_new" result
+    result' <- (wrapBoxed String) result
+    return result'
+
+
+-- function g_string_new_len
+-- Args : [Arg {argCName = "init", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+stringNewLen init len = liftIO $ do
+    init' <- textToCString init
+    result <- g_string_new_len init' len
+    checkUnexpectedReturnNULL "g_string_new_len" result
+    result' <- (wrapBoxed String) result
+    freeMem init'
+    return result'
+
+
+-- function g_string_new
+-- Args : [Arg {argCName = "init", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+stringNew init = liftIO $ do
+    maybeInit <- case init of
+        Nothing -> return nullPtr
+        Just jInit -> do
+            jInit' <- textToCString jInit
+            return jInit'
+    result <- g_string_new maybeInit
+    checkUnexpectedReturnNULL "g_string_new" result
+    result' <- (wrapBoxed String) result
+    freeMem maybeInit
+    return result'
+
+
+-- function g_strfreev
+-- Args : [Arg {argCName = "str_array", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- strArray
+    -> m ()                                 -- result
+strfreev strArray = liftIO $ do
+    strArray' <- textToCString strArray
+    g_strfreev strArray'
+    freeMem strArray'
+    return ()
+
+
+-- function g_strescape
+-- Args : [Arg {argCName = "source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exceptions", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strescape source exceptions = liftIO $ do
+    source' <- textToCString source
+    exceptions' <- textToCString exceptions
+    result <- g_strescape source' exceptions'
+    checkUnexpectedReturnNULL "g_strescape" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem source'
+    freeMem exceptions'
+    return result'
+
+
+-- function g_strerror
+-- Args : [Arg {argCName = "errnum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strerror errnum = liftIO $ do
+    result <- g_strerror errnum
+    checkUnexpectedReturnNULL "g_strerror" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_strdup
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strdup str = liftIO $ do
+    str' <- textToCString str
+    result <- g_strdup str'
+    checkUnexpectedReturnNULL "g_strdup" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_strdown
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strdown string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strdown string'
+    checkUnexpectedReturnNULL "g_strdown" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+
+-- function g_strdelimit
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "delimiters", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_delimiter", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                 -- newDelimiter
+    -> m T.Text                             -- result
+strdelimit string delimiters newDelimiter = 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 newDelimiter
+    checkUnexpectedReturnNULL "g_strdelimit" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    freeMem maybeDelimiters
+    return result'
+
+
+-- function g_strcompress
+-- Args : [Arg {argCName = "source", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strcompress source = liftIO $ do
+    source' <- textToCString source
+    result <- g_strcompress source'
+    checkUnexpectedReturnNULL "g_strcompress" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem source'
+    return result'
+
+
+-- function g_strcmp0
+-- Args : [Arg {argCName = "str1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+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_strchug
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strchug string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strchug string'
+    checkUnexpectedReturnNULL "g_strchug" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+
+-- function g_strchomp
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strchomp string = liftIO $ do
+    string' <- textToCString string
+    result <- g_strchomp string'
+    checkUnexpectedReturnNULL "g_strchomp" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+
+-- function g_strcasecmp
+-- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+strcasecmp s1 s2 = liftIO $ do
+    s1' <- textToCString s1
+    s2' <- textToCString s2
+    result <- g_strcasecmp s1' s2'
+    freeMem s1'
+    freeMem s2'
+    return result
+
+
+-- function g_strcanon
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "valid_chars", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "substitutor", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- validChars
+    -> Int8                                 -- substitutor
+    -> m T.Text                             -- result
+strcanon string validChars substitutor = liftIO $ do
+    string' <- textToCString string
+    validChars' <- textToCString validChars
+    result <- g_strcanon string' validChars' substitutor
+    checkUnexpectedReturnNULL "g_strcanon" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    freeMem validChars'
+    return result'
+
+
+-- function g_str_tokenize_and_fold
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "translit_locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ascii_alternates", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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)                       -- translitLocale
+    -> m ([T.Text],[T.Text])                -- result
+strTokenizeAndFold string translitLocale = liftIO $ do
+    string' <- textToCString string
+    maybeTranslitLocale <- case translitLocale of
+        Nothing -> return nullPtr
+        Just jTranslitLocale -> do
+            jTranslitLocale' <- textToCString jTranslitLocale
+            return jTranslitLocale'
+    asciiAlternates <- allocMem :: IO (Ptr (Ptr CString))
+    result <- g_str_tokenize_and_fold string' maybeTranslitLocale asciiAlternates
+    checkUnexpectedReturnNULL "g_str_tokenize_and_fold" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    asciiAlternates' <- peek asciiAlternates
+    asciiAlternates'' <- unpackZeroTerminatedUTF8CArray asciiAlternates'
+    mapZeroTerminatedCArray freeMem asciiAlternates'
+    freeMem asciiAlternates'
+    freeMem string'
+    freeMem maybeTranslitLocale
+    freeMem asciiAlternates
+    return (result', asciiAlternates'')
+
+
+-- function g_str_to_ascii
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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)                       -- fromLocale
+    -> m T.Text                             -- result
+strToAscii str fromLocale = liftIO $ do
+    str' <- textToCString str
+    maybeFromLocale <- case fromLocale of
+        Nothing -> return nullPtr
+        Just jFromLocale -> do
+            jFromLocale' <- textToCString jFromLocale
+            return jFromLocale'
+    result <- g_str_to_ascii str' maybeFromLocale
+    checkUnexpectedReturnNULL "g_str_to_ascii" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    freeMem maybeFromLocale
+    return result'
+
+
+-- function g_str_match_string
+-- Args : [Arg {argCName = "search_term", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "potential_hit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accept_alternates", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- searchTerm
+    -> T.Text                               -- potentialHit
+    -> Bool                                 -- acceptAlternates
+    -> m Bool                               -- result
+strMatchString searchTerm potentialHit acceptAlternates = liftIO $ do
+    searchTerm' <- textToCString searchTerm
+    potentialHit' <- textToCString potentialHit
+    let acceptAlternates' = (fromIntegral . fromEnum) acceptAlternates
+    result <- g_str_match_string searchTerm' potentialHit' acceptAlternates'
+    let result' = (/= 0) result
+    freeMem searchTerm'
+    freeMem potentialHit'
+    return result'
+
+
+-- function g_str_is_ascii
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+strIsAscii str = liftIO $ do
+    str' <- textToCString str
+    result <- g_str_is_ascii str'
+    let result' = (/= 0) result
+    freeMem str'
+    return result'
+
+
+-- function g_str_hash
+-- Args : [Arg {argCName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+strHash v = liftIO $ do
+    result <- g_str_hash v
+    return result
+
+
+-- function g_str_has_suffix
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "suffix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_has_prefix
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "prefix", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_equal
+-- Args : [Arg {argCName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+strEqual v1 v2 = liftIO $ do
+    result <- g_str_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_stpcpy
+-- Args : [Arg {argCName = "dest", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+stpcpy dest src = liftIO $ do
+    dest' <- textToCString dest
+    src' <- textToCString src
+    result <- g_stpcpy dest' src'
+    checkUnexpectedReturnNULL "g_stpcpy" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem dest'
+    freeMem src'
+    return result'
+
+
+-- function g_spawn_sync
+-- Args : [Arg {argCName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "standard_output", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_error", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "exit_status", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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)                          -- workingDirectory
+    -> [T.Text]                             -- argv
+    -> Maybe ([T.Text])                     -- envp
+    -> [SpawnFlags]                         -- flags
+    -> Maybe (SpawnChildSetupFunc)          -- childSetup
+    -> m (ByteString,ByteString,Int32)      -- result
+spawnSync workingDirectory argv envp flags childSetup = liftIO $ do
+    maybeWorkingDirectory <- case workingDirectory of
+        Nothing -> return nullPtr
+        Just jWorkingDirectory -> do
+            jWorkingDirectory' <- textToCString jWorkingDirectory
+            return jWorkingDirectory'
+    argv' <- packZeroTerminatedUTF8CArray argv
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    let flags' = gflagsToWord flags
+    ptrchildSetup <- callocMem :: IO (Ptr (FunPtr SpawnChildSetupFuncC))
+    maybeChildSetup <- case childSetup of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChildSetup -> do
+            jChildSetup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchildSetup) jChildSetup)
+            poke ptrchildSetup jChildSetup'
+            return jChildSetup'
+    standardOutput <- allocMem :: IO (Ptr (Ptr Word8))
+    standardError <- allocMem :: IO (Ptr (Ptr Word8))
+    exitStatus <- allocMem :: IO (Ptr Int32)
+    let userData = nullPtr
+    onException (do
+        _ <- propagateGError $ g_spawn_sync maybeWorkingDirectory argv' maybeEnvp flags' maybeChildSetup userData standardOutput standardError exitStatus
+        standardOutput' <- peek standardOutput
+        standardOutput'' <- unpackZeroTerminatedByteString standardOutput'
+        freeMem standardOutput'
+        standardError' <- peek standardError
+        standardError'' <- unpackZeroTerminatedByteString standardError'
+        freeMem standardError'
+        exitStatus' <- peek exitStatus
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem standardOutput
+        freeMem standardError
+        freeMem exitStatus
+        return (standardOutput'', standardError'', exitStatus')
+     ) (do
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem standardOutput
+        freeMem standardError
+        freeMem exitStatus
+     )
+
+
+-- function g_spawn_exit_error_quark
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+spawnExitErrorQuark  = liftIO $ do
+    result <- g_spawn_exit_error_quark
+    return result
+
+
+-- function g_spawn_error_quark
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+spawnErrorQuark  = liftIO $ do
+    result <- g_spawn_error_quark
+    return result
+
+
+-- function g_spawn_command_line_sync
+-- Args : [Arg {argCName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "standard_output", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_error", argType = TCArray True (-1) (-1) (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "exit_status", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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                                  -- commandLine
+    -> m (ByteString,ByteString,Int32)      -- result
+spawnCommandLineSync commandLine = liftIO $ do
+    commandLine' <- textToCString commandLine
+    standardOutput <- allocMem :: IO (Ptr (Ptr Word8))
+    standardError <- allocMem :: IO (Ptr (Ptr Word8))
+    exitStatus <- allocMem :: IO (Ptr Int32)
+    onException (do
+        _ <- propagateGError $ g_spawn_command_line_sync commandLine' standardOutput standardError exitStatus
+        standardOutput' <- peek standardOutput
+        standardOutput'' <- unpackZeroTerminatedByteString standardOutput'
+        freeMem standardOutput'
+        standardError' <- peek standardError
+        standardError'' <- unpackZeroTerminatedByteString standardError'
+        freeMem standardError'
+        exitStatus' <- peek exitStatus
+        freeMem commandLine'
+        freeMem standardOutput
+        freeMem standardError
+        freeMem exitStatus
+        return (standardOutput'', standardError'', exitStatus')
+     ) (do
+        freeMem commandLine'
+        freeMem standardOutput
+        freeMem standardError
+        freeMem exitStatus
+     )
+
+
+-- function g_spawn_command_line_async
+-- Args : [Arg {argCName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- commandLine
+    -> m ()                                 -- result
+spawnCommandLineAsync commandLine = liftIO $ do
+    commandLine' <- textToCString commandLine
+    onException (do
+        _ <- propagateGError $ g_spawn_command_line_async commandLine'
+        freeMem commandLine'
+        return ()
+     ) (do
+        freeMem commandLine'
+     )
+
+
+-- function g_spawn_close_pid
+-- Args : [Arg {argCName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+spawnClosePid pid = liftIO $ do
+    g_spawn_close_pid pid
+    return ()
+
+
+-- function g_spawn_check_exit_status
+-- Args : [Arg {argCName = "exit_status", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                   -- exitStatus
+    -> m ()                                 -- result
+spawnCheckExitStatus exitStatus = liftIO $ do
+    onException (do
+        _ <- propagateGError $ g_spawn_check_exit_status exitStatus
+        return ()
+     ) (do
+        return ()
+     )
+
+
+-- function g_spawn_async_with_pipes
+-- Args : [Arg {argCName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_pid", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_input", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_output", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "standard_error", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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)                          -- workingDirectory
+    -> [T.Text]                             -- argv
+    -> Maybe ([T.Text])                     -- envp
+    -> [SpawnFlags]                         -- flags
+    -> Maybe (SpawnChildSetupFunc)          -- childSetup
+    -> m (Int32,Int32,Int32,Int32)          -- result
+spawnAsyncWithPipes workingDirectory argv envp flags childSetup = liftIO $ do
+    maybeWorkingDirectory <- case workingDirectory of
+        Nothing -> return nullPtr
+        Just jWorkingDirectory -> do
+            jWorkingDirectory' <- textToCString jWorkingDirectory
+            return jWorkingDirectory'
+    argv' <- packZeroTerminatedUTF8CArray argv
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    let flags' = gflagsToWord flags
+    ptrchildSetup <- callocMem :: IO (Ptr (FunPtr SpawnChildSetupFuncC))
+    maybeChildSetup <- case childSetup of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChildSetup -> do
+            jChildSetup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchildSetup) jChildSetup)
+            poke ptrchildSetup jChildSetup'
+            return jChildSetup'
+    childPid <- allocMem :: IO (Ptr Int32)
+    standardInput <- allocMem :: IO (Ptr Int32)
+    standardOutput <- allocMem :: IO (Ptr Int32)
+    standardError <- allocMem :: IO (Ptr Int32)
+    let userData = nullPtr
+    onException (do
+        _ <- propagateGError $ g_spawn_async_with_pipes maybeWorkingDirectory argv' maybeEnvp flags' maybeChildSetup userData childPid standardInput standardOutput standardError
+        childPid' <- peek childPid
+        standardInput' <- peek standardInput
+        standardOutput' <- peek standardOutput
+        standardError' <- peek standardError
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem childPid
+        freeMem standardInput
+        freeMem standardOutput
+        freeMem standardError
+        return (childPid', standardInput', standardOutput', standardError')
+     ) (do
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem childPid
+        freeMem standardInput
+        freeMem standardOutput
+        freeMem standardError
+     )
+
+
+-- function g_spawn_async
+-- Args : [Arg {argCName = "working_directory", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "SpawnFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_setup", argType = TInterface "GLib" "SpawnChildSetupFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = 5, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_pid", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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)                          -- workingDirectory
+    -> [T.Text]                             -- argv
+    -> Maybe ([T.Text])                     -- envp
+    -> [SpawnFlags]                         -- flags
+    -> Maybe (SpawnChildSetupFunc)          -- childSetup
+    -> m (Int32)                            -- result
+spawnAsync workingDirectory argv envp flags childSetup = liftIO $ do
+    maybeWorkingDirectory <- case workingDirectory of
+        Nothing -> return nullPtr
+        Just jWorkingDirectory -> do
+            jWorkingDirectory' <- textToCString jWorkingDirectory
+            return jWorkingDirectory'
+    argv' <- packZeroTerminatedUTF8CArray argv
+    maybeEnvp <- case envp of
+        Nothing -> return nullPtr
+        Just jEnvp -> do
+            jEnvp' <- packZeroTerminatedUTF8CArray jEnvp
+            return jEnvp'
+    let flags' = gflagsToWord flags
+    ptrchildSetup <- callocMem :: IO (Ptr (FunPtr SpawnChildSetupFuncC))
+    maybeChildSetup <- case childSetup of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChildSetup -> do
+            jChildSetup' <- mkSpawnChildSetupFunc (spawnChildSetupFuncWrapper (Just ptrchildSetup) jChildSetup)
+            poke ptrchildSetup jChildSetup'
+            return jChildSetup'
+    childPid <- allocMem :: IO (Ptr Int32)
+    let userData = nullPtr
+    onException (do
+        _ <- propagateGError $ g_spawn_async maybeWorkingDirectory argv' maybeEnvp flags' maybeChildSetup userData childPid
+        childPid' <- peek childPid
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem childPid
+        return childPid'
+     ) (do
+        freeMem maybeWorkingDirectory
+        mapZeroTerminatedCArray freeMem argv'
+        freeMem argv'
+        mapZeroTerminatedCArray freeMem maybeEnvp
+        freeMem maybeEnvp
+        freeMem childPid
+     )
+
+
+-- function g_spaced_primes_closest
+-- Args : [Arg {argCName = "num", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+spacedPrimesClosest num = liftIO $ do
+    result <- g_spaced_primes_closest num
+    return result
+
+
+-- function g_slice_set_config
+-- Args : [Arg {argCName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+sliceSetConfig ckey value = liftIO $ do
+    let ckey' = (fromIntegral . fromEnum) ckey
+    g_slice_set_config ckey' value
+    return ()
+
+
+-- function g_slice_get_config_state
+-- Args : [Arg {argCName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "address", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- nValues
+    -> m Int64                              -- result
+sliceGetConfigState ckey address nValues = liftIO $ do
+    let ckey' = (fromIntegral . fromEnum) ckey
+    result <- g_slice_get_config_state ckey' address nValues
+    return result
+
+
+-- function g_slice_get_config
+-- Args : [Arg {argCName = "ckey", argType = TInterface "GLib" "SliceConfig", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+sliceGetConfig ckey = liftIO $ do
+    let ckey' = (fromIntegral . fromEnum) ckey
+    result <- g_slice_get_config ckey'
+    return result
+
+
+-- function g_slice_free_chain_with_offset
+-- Args : [Arg {argCName = "block_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mem_chain", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "next_offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- blockSize
+    -> Ptr ()                               -- memChain
+    -> Word64                               -- nextOffset
+    -> m ()                                 -- result
+sliceFreeChainWithOffset blockSize memChain nextOffset = liftIO $ do
+    g_slice_free_chain_with_offset blockSize memChain nextOffset
+    return ()
+
+
+-- function g_slice_free1
+-- Args : [Arg {argCName = "block_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mem_block", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- blockSize
+    -> Ptr ()                               -- memBlock
+    -> m ()                                 -- result
+sliceFree1 blockSize memBlock = liftIO $ do
+    g_slice_free1 blockSize memBlock
+    return ()
+
+
+-- function g_shell_unquote
+-- Args : [Arg {argCName = "quoted_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- quotedString
+    -> m T.Text                             -- result
+shellUnquote quotedString = liftIO $ do
+    quotedString' <- textToCString quotedString
+    onException (do
+        result <- propagateGError $ g_shell_unquote quotedString'
+        checkUnexpectedReturnNULL "g_shell_unquote" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem quotedString'
+        return result'
+     ) (do
+        freeMem quotedString'
+     )
+
+
+-- function g_shell_quote
+-- Args : [Arg {argCName = "unquoted_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- unquotedString
+    -> m T.Text                             -- result
+shellQuote unquotedString = liftIO $ do
+    unquotedString' <- textToCString unquotedString
+    result <- g_shell_quote unquotedString'
+    checkUnexpectedReturnNULL "g_shell_quote" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem unquotedString'
+    return result'
+
+
+-- function g_shell_parse_argv
+-- Args : [Arg {argCName = "command_line", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argcp", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "argvp", argType = TCArray True (-1) 1 (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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                                  -- commandLine
+    -> m (Int32,[T.Text])                   -- result
+shellParseArgv commandLine = liftIO $ do
+    commandLine' <- textToCString commandLine
+    argcp <- allocMem :: IO (Ptr Int32)
+    argvp <- allocMem :: IO (Ptr (Ptr CString))
+    onException (do
+        _ <- propagateGError $ g_shell_parse_argv commandLine' argcp argvp
+        argcp' <- peek argcp
+        argvp' <- peek argvp
+        argvp'' <- unpackZeroTerminatedUTF8CArray argvp'
+        mapZeroTerminatedCArray freeMem argvp'
+        freeMem argvp'
+        freeMem commandLine'
+        freeMem argcp
+        freeMem argvp
+        return (argcp', argvp'')
+     ) (do
+        freeMem commandLine'
+        freeMem argcp
+        freeMem argvp
+     )
+
+
+-- function g_shell_error_quark
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+shellErrorQuark  = liftIO $ do
+    result <- g_shell_error_quark
+    return result
+
+
+-- function g_setenv
+-- Args : [Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_set_prgname
+-- Args : [Arg {argCName = "prgname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+setPrgname prgname = liftIO $ do
+    prgname' <- textToCString prgname
+    g_set_prgname prgname'
+    freeMem prgname'
+    return ()
+
+
+-- function g_set_error_literal
+-- Args : [Arg {argCName = "err", argType = TError, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "domain", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "code", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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_application_name
+-- Args : [Arg {argCName = "application_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- applicationName
+    -> m ()                                 -- result
+setApplicationName applicationName = liftIO $ do
+    applicationName' <- textToCString applicationName
+    g_set_application_name applicationName'
+    freeMem applicationName'
+    return ()
+
+
+-- function g_rmdir
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+rmdir filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_rmdir filename'
+    freeMem filename'
+    return result
+
+
+-- function g_return_if_fail_warning
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pretty_function", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expression", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- logDomain
+    -> T.Text                               -- prettyFunction
+    -> T.Text                               -- expression
+    -> m ()                                 -- result
+returnIfFailWarning logDomain prettyFunction expression = liftIO $ do
+    logDomain' <- textToCString logDomain
+    prettyFunction' <- textToCString prettyFunction
+    expression' <- textToCString expression
+    g_return_if_fail_warning logDomain' prettyFunction' expression'
+    freeMem logDomain'
+    freeMem prettyFunction'
+    freeMem expression'
+    return ()
+
+
+-- function g_reload_user_special_dirs_cache
+-- Args : []
+-- Lengths : []
+-- 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 ()                                    -- result
+reloadUserSpecialDirsCache  = liftIO $ do
+    g_reload_user_special_dirs_cache
+    return ()
+
+
+-- function g_random_set_seed
+-- Args : [Arg {argCName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+randomSetSeed seed = liftIO $ do
+    g_random_set_seed seed
+    return ()
+
+
+-- function g_random_int_range
+-- Args : [Arg {argCName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+randomIntRange begin end = liftIO $ do
+    result <- g_random_int_range begin end
+    return result
+
+
+-- function g_random_int
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_int" g_random_int :: 
+    IO Word32
+
+
+randomInt ::
+    (MonadIO m) =>
+    m Word32                                -- result
+randomInt  = liftIO $ do
+    result <- g_random_int
+    return result
+
+
+-- function g_random_double_range
+-- Args : [Arg {argCName = "begin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_double
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TDouble
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_random_double" g_random_double :: 
+    IO CDouble
+
+
+randomDouble ::
+    (MonadIO m) =>
+    m Double                                -- result
+randomDouble  = liftIO $ do
+    result <- g_random_double
+    let result' = realToFrac result
+    return result'
+
+
+-- function g_quark_try_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_quark_to_string
+-- Args : [Arg {argCName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+quarkToString quark = liftIO $ do
+    result <- g_quark_to_string quark
+    checkUnexpectedReturnNULL "g_quark_to_string" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_quark_from_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_from_static_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_propagate_error
+-- Args : [Arg {argCName = "dest", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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_poll
+-- Args : [Arg {argCName = "fds", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nfds", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+poll fds nfds timeout = liftIO $ do
+    let fds' = unsafeManagedPtrGetPtr fds
+    result <- g_poll fds' nfds timeout
+    touchManagedPtr fds
+    return result
+
+
+-- function g_pointer_bit_unlock
+-- Args : [Arg {argCName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- lockBit
+    -> m ()                                 -- result
+pointerBitUnlock address lockBit = liftIO $ do
+    g_pointer_bit_unlock address lockBit
+    return ()
+
+
+-- function g_pointer_bit_trylock
+-- Args : [Arg {argCName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- lockBit
+    -> m Bool                               -- result
+pointerBitTrylock address lockBit = liftIO $ do
+    result <- g_pointer_bit_trylock address lockBit
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_pointer_bit_lock
+-- Args : [Arg {argCName = "address", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- lockBit
+    -> m ()                                 -- result
+pointerBitLock address lockBit = liftIO $ do
+    g_pointer_bit_lock address lockBit
+    return ()
+
+
+-- function g_pattern_match_string
+-- Args : [Arg {argCName = "pspec", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_pattern_match_simple
+-- Args : [Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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
+-- Args : [Arg {argCName = "pspec", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_reversed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- stringLength
+    -> T.Text                               -- string
+    -> Maybe (T.Text)                       -- stringReversed
+    -> m Bool                               -- result
+patternMatch pspec stringLength string stringReversed = liftIO $ do
+    let pspec' = unsafeManagedPtrGetPtr pspec
+    string' <- textToCString string
+    maybeStringReversed <- case stringReversed of
+        Nothing -> return nullPtr
+        Just jStringReversed -> do
+            jStringReversed' <- textToCString jStringReversed
+            return jStringReversed'
+    result <- g_pattern_match pspec' stringLength string' maybeStringReversed
+    let result' = (/= 0) result
+    touchManagedPtr pspec
+    freeMem string'
+    freeMem maybeStringReversed
+    return result'
+
+
+-- function g_path_skip_root
+-- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- fileName
+    -> m T.Text                             -- result
+pathSkipRoot fileName = liftIO $ do
+    fileName' <- textToCString fileName
+    result <- g_path_skip_root fileName'
+    checkUnexpectedReturnNULL "g_path_skip_root" result
+    result' <- cstringToText result
+    freeMem fileName'
+    return result'
+
+
+-- function g_path_is_absolute
+-- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- fileName
+    -> m Bool                               -- result
+pathIsAbsolute fileName = liftIO $ do
+    fileName' <- textToCString fileName
+    result <- g_path_is_absolute fileName'
+    let result' = (/= 0) result
+    freeMem fileName'
+    return result'
+
+
+-- function g_path_get_dirname
+-- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- fileName
+    -> m T.Text                             -- result
+pathGetDirname fileName = liftIO $ do
+    fileName' <- textToCString fileName
+    result <- g_path_get_dirname fileName'
+    checkUnexpectedReturnNULL "g_path_get_dirname" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem fileName'
+    return result'
+
+
+-- function g_path_get_basename
+-- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- fileName
+    -> m T.Text                             -- result
+pathGetBasename fileName = liftIO $ do
+    fileName' <- textToCString fileName
+    result <- g_path_get_basename fileName'
+    checkUnexpectedReturnNULL "g_path_get_basename" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem fileName'
+    return result'
+
+
+-- function g_parse_debug_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keys", argType = TCArray False (-1) 2 (TInterface "GLib" "DebugKey"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nkeys", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "nkeys", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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                             -- result
+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_option_error_quark
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+optionErrorQuark  = liftIO $ do
+    result <- g_option_error_quark
+    return result
+
+
+-- function g_on_error_stack_trace
+-- Args : [Arg {argCName = "prg_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- prgName
+    -> m ()                                 -- result
+onErrorStackTrace prgName = liftIO $ do
+    prgName' <- textToCString prgName
+    g_on_error_stack_trace prgName'
+    freeMem prgName'
+    return ()
+
+
+-- function g_on_error_query
+-- Args : [Arg {argCName = "prg_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- prgName
+    -> m ()                                 -- result
+onErrorQuery prgName = liftIO $ do
+    prgName' <- textToCString prgName
+    g_on_error_query prgName'
+    freeMem prgName'
+    return ()
+
+
+-- function g_nullify_pointer
+-- Args : [Arg {argCName = "nullify_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                  -- nullifyLocation
+    -> m ()                                 -- result
+nullifyPointer nullifyLocation = liftIO $ do
+    g_nullify_pointer nullifyLocation
+    return ()
+
+
+-- function g_mkstemp_full
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+mkstempFull tmpl flags mode = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkstemp_full tmpl' flags mode
+    freeMem tmpl'
+    return result
+
+
+-- function g_mkstemp
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+mkstemp tmpl = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkstemp tmpl'
+    freeMem tmpl'
+    return result
+
+
+-- function g_mkdtemp_full
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+mkdtempFull tmpl mode = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkdtemp_full tmpl' mode
+    checkUnexpectedReturnNULL "g_mkdtemp_full" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem tmpl'
+    return result'
+
+
+-- function g_mkdtemp
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+mkdtemp tmpl = liftIO $ do
+    tmpl' <- stringToCString tmpl
+    result <- g_mkdtemp tmpl'
+    checkUnexpectedReturnNULL "g_mkdtemp" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem tmpl'
+    return result'
+
+
+-- function g_mkdir_with_parents
+-- Args : [Arg {argCName = "pathname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+mkdirWithParents pathname mode = liftIO $ do
+    pathname' <- textToCString pathname
+    result <- g_mkdir_with_parents pathname' mode
+    freeMem pathname'
+    return result
+
+
+-- function g_mem_set_vtable
+-- Args : [Arg {argCName = "vtable", argType = TInterface "GLib" "MemVTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()
+
+{-# DEPRECATED memSetVtable ["(Since version 2.46)","Use other memory profiling tools instead"]#-}
+memSetVtable ::
+    (MonadIO m) =>
+    MemVTable                               -- vtable
+    -> m ()                                 -- result
+memSetVtable vtable = liftIO $ do
+    let vtable' = unsafeManagedPtrGetPtr vtable
+    g_mem_set_vtable vtable'
+    touchManagedPtr vtable
+    return ()
+
+
+-- function g_mem_profile
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mem_profile" g_mem_profile :: 
+    IO ()
+
+{-# DEPRECATED memProfile ["(Since version 2.46)","Use other memory profiling tools instead"]#-}
+memProfile ::
+    (MonadIO m) =>
+    m ()                                    -- result
+memProfile  = liftIO $ do
+    g_mem_profile
+    return ()
+
+
+-- function g_mem_is_system_malloc
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_mem_is_system_malloc" g_mem_is_system_malloc :: 
+    IO CInt
+
+{-# DEPRECATED memIsSystemMalloc ["(Since version 2.46)","GLib always uses the system malloc, so this function always","returns %TRUE."]#-}
+memIsSystemMalloc ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+memIsSystemMalloc  = liftIO $ do
+    result <- g_mem_is_system_malloc
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_markup_escape_text
+-- Args : [Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+markupEscapeText text length_ = liftIO $ do
+    text' <- textToCString text
+    result <- g_markup_escape_text text' length_
+    checkUnexpectedReturnNULL "g_markup_escape_text" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem text'
+    return result'
+
+
+-- function g_markup_error_quark
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+markupErrorQuark  = liftIO $ do
+    result <- g_markup_error_quark
+    return result
+
+
+-- function g_main_depth
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_main_depth" g_main_depth :: 
+    IO Int32
+
+
+mainDepth ::
+    (MonadIO m) =>
+    m Int32                                 -- result
+mainDepth  = liftIO $ do
+    result <- g_main_depth
+    return result
+
+
+-- function g_main_current_source
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+mainCurrentSource  = liftIO $ do
+    result <- g_main_current_source
+    checkUnexpectedReturnNULL "g_main_current_source" result
+    result' <- (newBoxed Source) result
+    return result'
+
+
+-- function g_log_set_handler_full
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_levels", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_func", argType = TInterface "GLib" "LogFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_log_set_handler_full" g_log_set_handler_full :: 
+    CString ->                              -- log_domain : TBasicType TUTF8
+    CUInt ->                                -- log_levels : TInterface "GLib" "LogLevelFlags"
+    FunPtr LogFuncC ->                      -- log_func : TInterface "GLib" "LogFunc"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    FunPtr DestroyNotifyC ->                -- destroy : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+logSetHandler ::
+    (MonadIO m) =>
+    Maybe (T.Text)                          -- logDomain
+    -> [LogLevelFlags]                      -- logLevels
+    -> LogFunc                              -- logFunc
+    -> m Word32                             -- result
+logSetHandler logDomain logLevels logFunc = liftIO $ do
+    maybeLogDomain <- case logDomain of
+        Nothing -> return nullPtr
+        Just jLogDomain -> do
+            jLogDomain' <- textToCString jLogDomain
+            return jLogDomain'
+    let logLevels' = gflagsToWord logLevels
+    logFunc' <- mkLogFunc (logFuncWrapper Nothing logFunc)
+    let userData = castFunPtrToPtr logFunc'
+    let destroy = safeFreeFunPtrPtr
+    result <- g_log_set_handler_full maybeLogDomain logLevels' logFunc' userData destroy
+    freeMem maybeLogDomain
+    return result
+
+
+-- function g_log_set_fatal_mask
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fatal_mask", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- logDomain
+    -> [LogLevelFlags]                      -- fatalMask
+    -> m [LogLevelFlags]                    -- result
+logSetFatalMask logDomain fatalMask = liftIO $ do
+    logDomain' <- textToCString logDomain
+    let fatalMask' = gflagsToWord fatalMask
+    result <- g_log_set_fatal_mask logDomain' fatalMask'
+    let result' = wordToGFlags result
+    freeMem logDomain'
+    return result'
+
+
+-- function g_log_set_always_fatal
+-- Args : [Arg {argCName = "fatal_mask", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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]                         -- fatalMask
+    -> m [LogLevelFlags]                    -- result
+logSetAlwaysFatal fatalMask = liftIO $ do
+    let fatalMask' = gflagsToWord fatalMask
+    result <- g_log_set_always_fatal fatalMask'
+    let result' = wordToGFlags result
+    return result'
+
+
+-- function g_log_remove_handler
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- logDomain
+    -> Word32                               -- handlerId
+    -> m ()                                 -- result
+logRemoveHandler logDomain handlerId = liftIO $ do
+    logDomain' <- textToCString logDomain
+    g_log_remove_handler logDomain' handlerId
+    freeMem logDomain'
+    return ()
+
+
+-- function g_log_default_handler
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "log_level", argType = TInterface "GLib" "LogLevelFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unused_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- logDomain
+    -> [LogLevelFlags]                      -- logLevel
+    -> T.Text                               -- message
+    -> Ptr ()                               -- unusedData
+    -> m ()                                 -- result
+logDefaultHandler logDomain logLevel message unusedData = liftIO $ do
+    logDomain' <- textToCString logDomain
+    let logLevel' = gflagsToWord logLevel
+    message' <- textToCString message
+    g_log_default_handler logDomain' logLevel' message' unusedData
+    freeMem logDomain'
+    freeMem message'
+    return ()
+
+
+-- function g_locale_to_utf8
+-- Args : [Arg {argCName = "opsysstring", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- bytesRead
+    -> Word64                               -- bytesWritten
+    -> m T.Text                             -- result
+localeToUtf8 opsysstring len bytesRead bytesWritten = liftIO $ do
+    opsysstring' <- textToCString opsysstring
+    onException (do
+        result <- propagateGError $ g_locale_to_utf8 opsysstring' len bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_locale_to_utf8" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem opsysstring'
+        return result'
+     ) (do
+        freeMem opsysstring'
+     )
+
+
+-- function g_locale_from_utf8
+-- Args : [Arg {argCName = "utf8string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- bytesRead
+    -> Word64                               -- bytesWritten
+    -> m T.Text                             -- result
+localeFromUtf8 utf8string len bytesRead bytesWritten = liftIO $ do
+    utf8string' <- textToCString utf8string
+    onException (do
+        result <- propagateGError $ g_locale_from_utf8 utf8string' len bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_locale_from_utf8" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem utf8string'
+        return result'
+     ) (do
+        freeMem utf8string'
+     )
+
+
+-- function g_listenv
+-- Args : []
+-- Lengths : []
+-- 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]                              -- result
+listenv  = liftIO $ do
+    result <- g_listenv
+    checkUnexpectedReturnNULL "g_listenv" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    return result'
+
+
+-- function g_io_create_watch
+-- Args : [Arg {argCName = "channel", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+ioCreateWatch channel condition = liftIO $ do
+    let channel' = unsafeManagedPtrGetPtr channel
+    let condition' = gflagsToWord condition
+    result <- g_io_create_watch channel' condition'
+    checkUnexpectedReturnNULL "g_io_create_watch" result
+    result' <- (wrapBoxed Source) result
+    touchManagedPtr channel
+    return result'
+
+
+-- function g_io_add_watch_full
+-- Args : [Arg {argCName = "channel", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "condition", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "IOFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 4, argDestroy = 5, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+ioAddWatch channel priority condition func = liftIO $ do
+    let channel' = unsafeManagedPtrGetPtr channel
+    let condition' = gflagsToWord condition
+    func' <- mkIOFunc (iOFuncWrapper Nothing func)
+    let userData = castFunPtrToPtr func'
+    let notify = safeFreeFunPtrPtr
+    result <- g_io_add_watch_full channel' priority condition' func' userData notify
+    touchManagedPtr channel
+    return result
+
+
+-- function g_intern_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+internString string = liftIO $ do
+    maybeString <- case string of
+        Nothing -> return nullPtr
+        Just jString -> do
+            jString' <- textToCString jString
+            return jString'
+    result <- g_intern_string maybeString
+    checkUnexpectedReturnNULL "g_intern_string" result
+    result' <- cstringToText result
+    freeMem maybeString
+    return result'
+
+
+-- function g_intern_static_string
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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
+    checkUnexpectedReturnNULL "g_intern_static_string" result
+    result' <- cstringToText result
+    freeMem maybeString
+    return result'
+
+
+-- function g_int_hash
+-- Args : [Arg {argCName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+intHash v = liftIO $ do
+    result <- g_int_hash v
+    return result
+
+
+-- function g_int_equal
+-- Args : [Arg {argCName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+intEqual v1 v2 = liftIO $ do
+    result <- g_int_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_int64_hash
+-- Args : [Arg {argCName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+int64Hash v = liftIO $ do
+    result <- g_int64_hash v
+    return result
+
+
+-- function g_int64_equal
+-- Args : [Arg {argCName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+int64Equal v1 v2 = liftIO $ do
+    result <- g_int64_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_idle_source_new
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+idleSourceNew  = liftIO $ do
+    result <- g_idle_source_new
+    checkUnexpectedReturnNULL "g_idle_source_new" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_idle_remove_by_data
+-- Args : [Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+idleRemoveByData data_ = liftIO $ do
+    result <- g_idle_remove_by_data data_
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_idle_add_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_iconv
+-- Args : [Arg {argCName = "converter", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "inbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "inbytes_left", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "outbuf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "outbytes_left", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- inbytesLeft
+    -> T.Text                               -- outbuf
+    -> Word64                               -- outbytesLeft
+    -> m Word64                             -- result
+iconv converter inbuf inbytesLeft outbuf outbytesLeft = liftIO $ do
+    let converter' = unsafeManagedPtrGetPtr converter
+    inbuf' <- textToCString inbuf
+    outbuf' <- textToCString outbuf
+    result <- g_iconv converter' inbuf' inbytesLeft outbuf' outbytesLeft
+    touchManagedPtr converter
+    freeMem inbuf'
+    freeMem outbuf'
+    return result
+
+
+-- function g_hostname_to_unicode
+-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+hostnameToUnicode hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_to_unicode hostname'
+    checkUnexpectedReturnNULL "g_hostname_to_unicode" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem hostname'
+    return result'
+
+
+-- function g_hostname_to_ascii
+-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+hostnameToAscii hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_to_ascii hostname'
+    checkUnexpectedReturnNULL "g_hostname_to_ascii" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem hostname'
+    return result'
+
+
+-- function g_hostname_is_non_ascii
+-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_is_ip_address
+-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_ascii_encoded
+-- Args : [Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+hostnameIsAsciiEncoded hostname = liftIO $ do
+    hostname' <- textToCString hostname
+    result <- g_hostname_is_ascii_encoded hostname'
+    let result' = (/= 0) result
+    freeMem hostname'
+    return result'
+
+
+-- function g_getenv
+-- Args : [Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+getenv variable = liftIO $ do
+    variable' <- textToCString variable
+    result <- g_getenv variable'
+    checkUnexpectedReturnNULL "g_getenv" result
+    result' <- cstringToText result
+    freeMem variable'
+    return result'
+
+
+-- function g_get_user_special_dir
+-- Args : [Arg {argCName = "directory", argType = TInterface "GLib" "UserDirectory", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+getUserSpecialDir directory = liftIO $ do
+    let directory' = (fromIntegral . fromEnum) directory
+    result <- g_get_user_special_dir directory'
+    checkUnexpectedReturnNULL "g_get_user_special_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_user_runtime_dir
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getUserRuntimeDir  = liftIO $ do
+    result <- g_get_user_runtime_dir
+    checkUnexpectedReturnNULL "g_get_user_runtime_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_user_name
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getUserName  = liftIO $ do
+    result <- g_get_user_name
+    checkUnexpectedReturnNULL "g_get_user_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_user_data_dir
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getUserDataDir  = liftIO $ do
+    result <- g_get_user_data_dir
+    checkUnexpectedReturnNULL "g_get_user_data_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_user_config_dir
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getUserConfigDir  = liftIO $ do
+    result <- g_get_user_config_dir
+    checkUnexpectedReturnNULL "g_get_user_config_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_user_cache_dir
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getUserCacheDir  = liftIO $ do
+    result <- g_get_user_cache_dir
+    checkUnexpectedReturnNULL "g_get_user_cache_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_tmp_dir
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getTmpDir  = liftIO $ do
+    result <- g_get_tmp_dir
+    checkUnexpectedReturnNULL "g_get_tmp_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_system_data_dirs
+-- Args : []
+-- Lengths : []
+-- 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]                              -- result
+getSystemDataDirs  = liftIO $ do
+    result <- g_get_system_data_dirs
+    checkUnexpectedReturnNULL "g_get_system_data_dirs" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    return result'
+
+
+-- function g_get_system_config_dirs
+-- Args : []
+-- Lengths : []
+-- 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]                              -- result
+getSystemConfigDirs  = liftIO $ do
+    result <- g_get_system_config_dirs
+    checkUnexpectedReturnNULL "g_get_system_config_dirs" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    return result'
+
+
+-- function g_get_real_time
+-- Args : []
+-- Lengths : []
+-- 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                                 -- result
+getRealTime  = liftIO $ do
+    result <- g_get_real_time
+    return result
+
+
+-- function g_get_real_name
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getRealName  = liftIO $ do
+    result <- g_get_real_name
+    checkUnexpectedReturnNULL "g_get_real_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_prgname
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getPrgname  = liftIO $ do
+    result <- g_get_prgname
+    checkUnexpectedReturnNULL "g_get_prgname" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_num_processors
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getNumProcessors  = liftIO $ do
+    result <- g_get_num_processors
+    return result
+
+
+-- function g_get_monotonic_time
+-- Args : []
+-- Lengths : []
+-- 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                                 -- result
+getMonotonicTime  = liftIO $ do
+    result <- g_get_monotonic_time
+    return result
+
+
+-- function g_get_locale_variants
+-- Args : [Arg {argCName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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]                           -- result
+getLocaleVariants locale = liftIO $ do
+    locale' <- textToCString locale
+    result <- g_get_locale_variants locale'
+    checkUnexpectedReturnNULL "g_get_locale_variants" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem locale'
+    return result'
+
+
+-- function g_get_language_names
+-- Args : []
+-- Lengths : []
+-- 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]                              -- result
+getLanguageNames  = liftIO $ do
+    result <- g_get_language_names
+    checkUnexpectedReturnNULL "g_get_language_names" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    return result'
+
+
+-- function g_get_host_name
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getHostName  = liftIO $ do
+    result <- g_get_host_name
+    checkUnexpectedReturnNULL "g_get_host_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_home_dir
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getHomeDir  = liftIO $ do
+    result <- g_get_home_dir
+    checkUnexpectedReturnNULL "g_get_home_dir" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_get_filename_charsets
+-- Args : [Arg {argCName = "charsets", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+getFilenameCharsets charsets = liftIO $ do
+    charsets' <- textToCString charsets
+    result <- g_get_filename_charsets charsets'
+    let result' = (/= 0) result
+    freeMem charsets'
+    return result'
+
+
+-- function g_get_environ
+-- Args : []
+-- Lengths : []
+-- 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]                              -- result
+getEnviron  = liftIO $ do
+    result <- g_get_environ
+    checkUnexpectedReturnNULL "g_get_environ" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    return result'
+
+
+-- function g_get_current_time
+-- Args : [Arg {argCName = "result", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+getCurrentTime result_ = liftIO $ do
+    let result_' = unsafeManagedPtrGetPtr result_
+    g_get_current_time result_'
+    touchManagedPtr result_
+    return ()
+
+
+-- function g_get_current_dir
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getCurrentDir  = liftIO $ do
+    result <- g_get_current_dir
+    checkUnexpectedReturnNULL "g_get_current_dir" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_get_codeset
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getCodeset  = liftIO $ do
+    result <- g_get_codeset
+    checkUnexpectedReturnNULL "g_get_codeset" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_get_charset
+-- Args : [Arg {argCName = "charset", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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)                         -- result
+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_application_name
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+getApplicationName  = liftIO $ do
+    result <- g_get_application_name
+    checkUnexpectedReturnNULL "g_get_application_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_free
+-- Args : [Arg {argCName = "mem", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+free mem = liftIO $ do
+    maybeMem <- case mem of
+        Nothing -> return nullPtr
+        Just jMem -> do
+            return jMem
+    g_free maybeMem
+    return ()
+
+
+-- function g_format_size_full
+-- Args : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "FormatSizeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+formatSizeFull size flags = liftIO $ do
+    let flags' = gflagsToWord flags
+    result <- g_format_size_full size flags'
+    checkUnexpectedReturnNULL "g_format_size_full" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_format_size_for_display
+-- Args : [Arg {argCName = "size", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+formatSizeForDisplay size = liftIO $ do
+    result <- g_format_size_for_display size
+    checkUnexpectedReturnNULL "g_format_size_for_display" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_format_size
+-- Args : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+formatSize size = liftIO $ do
+    result <- g_format_size size
+    checkUnexpectedReturnNULL "g_format_size" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function g_find_program_in_path
+-- Args : [Arg {argCName = "program", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+findProgramInPath program = liftIO $ do
+    program' <- textToCString program
+    result <- g_find_program_in_path program'
+    checkUnexpectedReturnNULL "g_find_program_in_path" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem program'
+    return result'
+
+
+-- function g_filename_to_utf8
+-- Args : [Arg {argCName = "opsysstring", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- bytesRead
+    -> Word64                               -- bytesWritten
+    -> m T.Text                             -- result
+filenameToUtf8 opsysstring len bytesRead bytesWritten = liftIO $ do
+    opsysstring' <- textToCString opsysstring
+    onException (do
+        result <- propagateGError $ g_filename_to_utf8 opsysstring' len bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_filename_to_utf8" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem opsysstring'
+        return result'
+     ) (do
+        freeMem opsysstring'
+     )
+
+
+-- function g_filename_to_uri
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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
+        checkUnexpectedReturnNULL "g_filename_to_uri" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem filename'
+        freeMem maybeHostname
+        return result'
+     ) (do
+        freeMem filename'
+        freeMem maybeHostname
+     )
+
+
+-- function g_filename_from_utf8
+-- Args : [Arg {argCName = "utf8string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- 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)                -- result
+filenameFromUtf8 utf8string len = liftIO $ do
+    utf8string' <- textToCString utf8string
+    bytesRead <- allocMem :: IO (Ptr Word64)
+    bytesWritten <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_filename_from_utf8 utf8string' len bytesRead bytesWritten
+        bytesWritten' <- peek bytesWritten
+        checkUnexpectedReturnNULL "g_filename_from_utf8" result
+        result' <- (unpackByteStringWithLength bytesWritten') result
+        freeMem result
+        bytesRead' <- peek bytesRead
+        freeMem utf8string'
+        freeMem bytesRead
+        freeMem bytesWritten
+        return (result', bytesRead')
+     ) (do
+        freeMem utf8string'
+        freeMem bytesRead
+        freeMem bytesWritten
+     )
+
+
+-- function g_filename_from_uri
+-- Args : [Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hostname", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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)                    -- result
+filenameFromUri uri = liftIO $ do
+    uri' <- textToCString uri
+    hostname <- allocMem :: IO (Ptr CString)
+    onException (do
+        result <- propagateGError $ g_filename_from_uri uri' hostname
+        checkUnexpectedReturnNULL "g_filename_from_uri" result
+        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_display_name
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+filenameDisplayName filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_filename_display_name filename'
+    checkUnexpectedReturnNULL "g_filename_display_name" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem filename'
+    return result'
+
+
+-- function g_filename_display_basename
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+filenameDisplayBasename filename = liftIO $ do
+    filename' <- textToCString filename
+    result <- g_filename_display_basename filename'
+    checkUnexpectedReturnNULL "g_filename_display_basename" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem filename'
+    return result'
+
+
+-- function g_file_test
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test", argType = TInterface "GLib" "FileTest", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_file_set_contents
+-- Args : [Arg {argCName = "filename", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "contents", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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 ()                                 -- result
+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_read_link
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+fileReadLink filename = liftIO $ do
+    filename' <- textToCString filename
+    onException (do
+        result <- propagateGError $ g_file_read_link filename'
+        checkUnexpectedReturnNULL "g_file_read_link" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem filename'
+        return result'
+     ) (do
+        freeMem filename'
+     )
+
+
+-- function g_file_open_tmp
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name_used", argType = TBasicType TFileName, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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])                     -- result
+fileOpenTmp tmpl = liftIO $ do
+    maybeTmpl <- case tmpl of
+        Nothing -> return nullPtr
+        Just jTmpl -> do
+            jTmpl' <- stringToCString jTmpl
+            return jTmpl'
+    nameUsed <- allocMem :: IO (Ptr CString)
+    onException (do
+        result <- propagateGError $ g_file_open_tmp maybeTmpl nameUsed
+        nameUsed' <- peek nameUsed
+        nameUsed'' <- cstringToString nameUsed'
+        freeMem nameUsed'
+        freeMem maybeTmpl
+        freeMem nameUsed
+        return (result, nameUsed'')
+     ) (do
+        freeMem maybeTmpl
+        freeMem nameUsed
+     )
+
+
+-- function g_file_get_contents
+-- Args : [Arg {argCName = "filename", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "contents", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- 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)                       -- result
+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_error_quark
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+fileErrorQuark  = liftIO $ do
+    result <- g_file_error_quark
+    return result
+
+
+-- function g_file_error_from_errno
+-- Args : [Arg {argCName = "err_no", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                   -- errNo
+    -> m FileError                          -- result
+fileErrorFromErrno errNo = liftIO $ do
+    result <- g_file_error_from_errno errNo
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+
+-- function g_environ_unsetenv
+-- Args : [Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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]                           -- result
+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'
+    checkUnexpectedReturnNULL "g_environ_unsetenv" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem variable'
+    return result'
+
+
+-- function g_environ_setenv
+-- Args : [Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "overwrite", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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]                           -- result
+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'
+    checkUnexpectedReturnNULL "g_environ_setenv" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem variable'
+    freeMem value'
+    return result'
+
+
+-- function g_environ_getenv
+-- Args : [Arg {argCName = "envp", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "variable", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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'
+    checkUnexpectedReturnNULL "g_environ_getenv" result
+    result' <- cstringToText result
+    mapZeroTerminatedCArray freeMem maybeEnvp
+    freeMem maybeEnvp
+    freeMem variable'
+    return result'
+
+
+-- function g_dpgettext2
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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'
+    checkUnexpectedReturnNULL "g_dpgettext2" result
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem context'
+    freeMem msgid'
+    return result'
+
+
+-- function g_dpgettext
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgctxtid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgidoffset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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
+    checkUnexpectedReturnNULL "g_dpgettext" result
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgctxtid'
+    return result'
+
+
+-- function g_double_hash
+-- Args : [Arg {argCName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+doubleHash v = liftIO $ do
+    result <- g_double_hash v
+    return result
+
+
+-- function g_double_equal
+-- Args : [Arg {argCName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+doubleEqual v1 v2 = liftIO $ do
+    result <- g_double_equal v1 v2
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_dngettext
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid_plural", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- msgidPlural
+    -> Word64                               -- n
+    -> m T.Text                             -- result
+dngettext domain msgid msgidPlural n = liftIO $ do
+    maybeDomain <- case domain of
+        Nothing -> return nullPtr
+        Just jDomain -> do
+            jDomain' <- textToCString jDomain
+            return jDomain'
+    msgid' <- textToCString msgid
+    msgidPlural' <- textToCString msgidPlural
+    result <- g_dngettext maybeDomain msgid' msgidPlural' n
+    checkUnexpectedReturnNULL "g_dngettext" result
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgid'
+    freeMem msgidPlural'
+    return result'
+
+
+-- function g_direct_hash
+-- Args : [Arg {argCName = "v", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_direct_equal
+-- Args : [Arg {argCName = "v1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_dgettext
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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'
+    checkUnexpectedReturnNULL "g_dgettext" result
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgid'
+    return result'
+
+
+-- function g_dcgettext
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msgid", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "category", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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
+    checkUnexpectedReturnNULL "g_dcgettext" result
+    result' <- cstringToText result
+    freeMem maybeDomain
+    freeMem msgid'
+    return result'
+
+
+-- function g_dataset_id_set_data_full
+-- Args : [Arg {argCName = "dataset_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                  -- datasetLocation
+    -> Word32                               -- keyId
+    -> Ptr ()                               -- data_
+    -> DestroyNotify                        -- destroyFunc
+    -> m ()                                 -- result
+datasetIdSetDataFull datasetLocation keyId data_ destroyFunc = liftIO $ do
+    ptrdestroyFunc <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    destroyFunc' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroyFunc) destroyFunc)
+    poke ptrdestroyFunc destroyFunc'
+    g_dataset_id_set_data_full datasetLocation keyId data_ destroyFunc'
+    return ()
+
+
+-- function g_dataset_destroy
+-- Args : [Arg {argCName = "dataset_location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                  -- datasetLocation
+    -> m ()                                 -- result
+datasetDestroy datasetLocation = liftIO $ do
+    g_dataset_destroy datasetLocation
+    return ()
+
+
+-- function g_datalist_unset_flags
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+datalistUnsetFlags datalist flags = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_unset_flags datalist' flags
+    touchManagedPtr datalist
+    return ()
+
+
+-- function g_datalist_set_flags
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+datalistSetFlags datalist flags = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_set_flags datalist' flags
+    touchManagedPtr datalist
+    return ()
+
+
+-- function g_datalist_init
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+datalistInit datalist = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_init datalist'
+    touchManagedPtr datalist
+    return ()
+
+
+-- function g_datalist_id_set_data_full
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- keyId
+    -> Maybe (Ptr ())                       -- data_
+    -> DestroyNotify                        -- destroyFunc
+    -> m ()                                 -- result
+datalistIdSetDataFull datalist keyId data_ destroyFunc = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    maybeData_ <- case data_ of
+        Nothing -> return nullPtr
+        Just jData_ -> do
+            return jData_
+    ptrdestroyFunc <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    destroyFunc' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroyFunc) destroyFunc)
+    poke ptrdestroyFunc destroyFunc'
+    g_datalist_id_set_data_full datalist' keyId maybeData_ destroyFunc'
+    touchManagedPtr datalist
+    return ()
+
+
+-- function g_datalist_id_replace_data
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "old_destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- keyId
+    -> Maybe (Ptr ())                       -- oldval
+    -> Maybe (Ptr ())                       -- newval
+    -> Maybe (DestroyNotify)                -- destroy
+    -> Maybe (DestroyNotify)                -- oldDestroy
+    -> m Bool                               -- result
+datalistIdReplaceData datalist keyId oldval newval destroy oldDestroy = 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 <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    maybeDestroy <- case destroy of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jDestroy -> do
+            jDestroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroy) jDestroy)
+            poke ptrdestroy jDestroy'
+            return jDestroy'
+    ptroldDestroy <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    maybeOldDestroy <- case oldDestroy of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jOldDestroy -> do
+            jOldDestroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptroldDestroy) jOldDestroy)
+            poke ptroldDestroy jOldDestroy'
+            return jOldDestroy'
+    result <- g_datalist_id_replace_data datalist' keyId maybeOldval maybeNewval maybeDestroy maybeOldDestroy
+    let result' = (/= 0) result
+    touchManagedPtr datalist
+    return result'
+
+
+-- function g_datalist_get_flags
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+datalistGetFlags datalist = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    result <- g_datalist_get_flags datalist'
+    touchManagedPtr datalist
+    return result
+
+
+-- function g_datalist_clear
+-- Args : [Arg {argCName = "datalist", argType = TInterface "GLib" "Data", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+datalistClear datalist = liftIO $ do
+    let datalist' = unsafeManagedPtrGetPtr datalist
+    g_datalist_clear datalist'
+    touchManagedPtr datalist
+    return ()
+
+
+-- function g_convert_with_iconv
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "converter", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- bytesRead
+    -> Word64                               -- bytesWritten
+    -> m T.Text                             -- result
+convertWithIconv str len converter bytesRead bytesWritten = liftIO $ do
+    str' <- textToCString str
+    let converter' = unsafeManagedPtrGetPtr converter
+    onException (do
+        result <- propagateGError $ g_convert_with_iconv str' len converter' bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_convert_with_iconv" result
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr converter
+        freeMem str'
+        return result'
+     ) (do
+        freeMem str'
+     )
+
+
+-- function g_convert_with_fallback
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fallback", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- toCodeset
+    -> T.Text                               -- fromCodeset
+    -> T.Text                               -- fallback
+    -> Word64                               -- bytesRead
+    -> Word64                               -- bytesWritten
+    -> m T.Text                             -- result
+convertWithFallback str len toCodeset fromCodeset fallback bytesRead bytesWritten = liftIO $ do
+    str' <- textToCString str
+    toCodeset' <- textToCString toCodeset
+    fromCodeset' <- textToCString fromCodeset
+    fallback' <- textToCString fallback
+    onException (do
+        result <- propagateGError $ g_convert_with_fallback str' len toCodeset' fromCodeset' fallback' bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_convert_with_fallback" result
+        result' <- cstringToText result
+        freeMem result
+        freeMem str'
+        freeMem toCodeset'
+        freeMem fromCodeset'
+        freeMem fallback'
+        return result'
+     ) (do
+        freeMem str'
+        freeMem toCodeset'
+        freeMem fromCodeset'
+        freeMem fallback'
+     )
+
+
+-- function g_convert_error_quark
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+convertErrorQuark  = liftIO $ do
+    result <- g_convert_error_quark
+    return result
+
+
+-- function g_convert
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "to_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "from_codeset", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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                               -- toCodeset
+    -> T.Text                               -- fromCodeset
+    -> m (T.Text,Word64,Word64)             -- result
+convert str len toCodeset fromCodeset = liftIO $ do
+    str' <- textToCString str
+    toCodeset' <- textToCString toCodeset
+    fromCodeset' <- textToCString fromCodeset
+    bytesRead <- allocMem :: IO (Ptr Word64)
+    bytesWritten <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_convert str' len toCodeset' fromCodeset' bytesRead bytesWritten
+        checkUnexpectedReturnNULL "g_convert" result
+        result' <- cstringToText result
+        freeMem result
+        bytesRead' <- peek bytesRead
+        bytesWritten' <- peek bytesWritten
+        freeMem str'
+        freeMem toCodeset'
+        freeMem fromCodeset'
+        freeMem bytesRead
+        freeMem bytesWritten
+        return (result', bytesRead', bytesWritten')
+     ) (do
+        freeMem str'
+        freeMem toCodeset'
+        freeMem fromCodeset'
+        freeMem bytesRead
+        freeMem bytesWritten
+     )
+
+
+-- function g_compute_hmac_for_string
+-- Args : [Arg {argCName = "digest_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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                            -- digestType
+    -> ByteString                           -- key
+    -> T.Text                               -- str
+    -> Int64                                -- length_
+    -> m T.Text                             -- result
+computeHmacForString digestType key str length_ = liftIO $ do
+    let keyLen = fromIntegral $ B.length key
+    let digestType' = (fromIntegral . fromEnum) digestType
+    key' <- packByteString key
+    str' <- textToCString str
+    result <- g_compute_hmac_for_string digestType' key' keyLen str' length_
+    checkUnexpectedReturnNULL "g_compute_hmac_for_string" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem key'
+    freeMem str'
+    return result'
+
+
+-- function g_compute_hmac_for_data
+-- Args : [Arg {argCName = "digest_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "key_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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                            -- digestType
+    -> ByteString                           -- key
+    -> Word8                                -- data_
+    -> Word64                               -- length_
+    -> m T.Text                             -- result
+computeHmacForData digestType key data_ length_ = liftIO $ do
+    let keyLen = fromIntegral $ B.length key
+    let digestType' = (fromIntegral . fromEnum) digestType
+    key' <- packByteString key
+    result <- g_compute_hmac_for_data digestType' key' keyLen data_ length_
+    checkUnexpectedReturnNULL "g_compute_hmac_for_data" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem key'
+    return result'
+
+
+-- function g_compute_checksum_for_string
+-- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                            -- checksumType
+    -> T.Text                               -- str
+    -> Int64                                -- length_
+    -> m T.Text                             -- result
+computeChecksumForString checksumType str length_ = liftIO $ do
+    let checksumType' = (fromIntegral . fromEnum) checksumType
+    str' <- textToCString str
+    result <- g_compute_checksum_for_string checksumType' str' length_
+    checkUnexpectedReturnNULL "g_compute_checksum_for_string" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_compute_checksum_for_data
+-- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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                            -- checksumType
+    -> ByteString                           -- data_
+    -> m T.Text                             -- result
+computeChecksumForData checksumType data_ = liftIO $ do
+    let length_ = fromIntegral $ B.length data_
+    let checksumType' = (fromIntegral . fromEnum) checksumType
+    data_' <- packByteString data_
+    result <- g_compute_checksum_for_data checksumType' data_' length_
+    checkUnexpectedReturnNULL "g_compute_checksum_for_data" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem data_'
+    return result'
+
+
+-- function g_compute_checksum_for_bytes
+-- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                            -- checksumType
+    -> Bytes                                -- data_
+    -> m T.Text                             -- result
+computeChecksumForBytes checksumType data_ = liftIO $ do
+    let checksumType' = (fromIntegral . fromEnum) checksumType
+    let data_' = unsafeManagedPtrGetPtr data_
+    result <- g_compute_checksum_for_bytes checksumType' data_'
+    checkUnexpectedReturnNULL "g_compute_checksum_for_bytes" result
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr data_
+    return result'
+
+
+-- function g_close
+-- Args : [Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+close fd = liftIO $ do
+    onException (do
+        _ <- propagateGError $ g_close fd
+        return ()
+     ) (do
+        return ()
+     )
+
+
+-- function g_clear_error
+-- Args : []
+-- Lengths : []
+-- 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 ()                                    -- result
+clearError  = liftIO $ do
+    onException (do
+        propagateGError $ g_clear_error
+        return ()
+     ) (do
+        return ()
+     )
+
+
+-- function g_child_watch_source_new
+-- Args : [Arg {argCName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+childWatchSourceNew pid = liftIO $ do
+    result <- g_child_watch_source_new pid
+    checkUnexpectedReturnNULL "g_child_watch_source_new" result
+    result' <- (wrapBoxed Source) result
+    return result'
+
+
+-- function g_child_watch_add_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pid", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "ChildWatchFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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 glib_check_version
+-- Args : [Arg {argCName = "required_major", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "required_minor", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "required_micro", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- requiredMajor
+    -> Word32                               -- requiredMinor
+    -> Word32                               -- requiredMicro
+    -> m T.Text                             -- result
+checkVersion requiredMajor requiredMinor requiredMicro = liftIO $ do
+    result <- glib_check_version requiredMajor requiredMinor requiredMicro
+    checkUnexpectedReturnNULL "glib_check_version" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_chdir
+-- Args : [Arg {argCName = "path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+chdir path = liftIO $ do
+    path' <- textToCString path
+    result <- g_chdir path'
+    freeMem path'
+    return result
+
+
+-- function g_build_pathv
+-- Args : [Arg {argCName = "separator", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "args", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+buildPathv separator args = liftIO $ do
+    separator' <- textToCString separator
+    args' <- packZeroTerminatedUTF8CArray args
+    result <- g_build_pathv separator' args'
+    checkUnexpectedReturnNULL "g_build_pathv" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem separator'
+    mapZeroTerminatedCArray freeMem args'
+    freeMem args'
+    return result'
+
+
+-- function g_build_filenamev
+-- Args : [Arg {argCName = "args", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+buildFilenamev args = liftIO $ do
+    args' <- packZeroTerminatedUTF8CArray args
+    result <- g_build_filenamev args'
+    checkUnexpectedReturnNULL "g_build_filenamev" result
+    result' <- cstringToText result
+    freeMem result
+    mapZeroTerminatedCArray freeMem args'
+    freeMem args'
+    return result'
+
+
+-- function g_bit_unlock
+-- Args : [Arg {argCName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- lockBit
+    -> m ()                                 -- result
+bitUnlock address lockBit = liftIO $ do
+    g_bit_unlock address lockBit
+    return ()
+
+
+-- function g_bit_trylock
+-- Args : [Arg {argCName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- lockBit
+    -> m Bool                               -- result
+bitTrylock address lockBit = liftIO $ do
+    result <- g_bit_trylock address lockBit
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_bit_storage
+-- Args : [Arg {argCName = "number", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+bitStorage number = liftIO $ do
+    result <- g_bit_storage number
+    return result
+
+
+-- function g_bit_nth_msf
+-- Args : [Arg {argCName = "mask", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nth_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- nthBit
+    -> m Int32                              -- result
+bitNthMsf mask nthBit = liftIO $ do
+    result <- g_bit_nth_msf mask nthBit
+    return result
+
+
+-- function g_bit_nth_lsf
+-- Args : [Arg {argCName = "mask", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nth_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- nthBit
+    -> m Int32                              -- result
+bitNthLsf mask nthBit = liftIO $ do
+    result <- g_bit_nth_lsf mask nthBit
+    return result
+
+
+-- function g_bit_lock
+-- Args : [Arg {argCName = "address", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lock_bit", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- lockBit
+    -> m ()                                 -- result
+bitLock address lockBit = liftIO $ do
+    g_bit_lock address lockBit
+    return ()
+
+
+-- function g_basename
+-- Args : [Arg {argCName = "file_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- fileName
+    -> m T.Text                             -- result
+basename fileName = liftIO $ do
+    fileName' <- textToCString fileName
+    result <- g_basename fileName'
+    checkUnexpectedReturnNULL "g_basename" result
+    result' <- cstringToText result
+    freeMem fileName'
+    return result'
+
+
+-- function g_base64_encode
+-- Args : [Arg {argCName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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                             -- result
+base64Encode data_ = liftIO $ do
+    let len = fromIntegral $ B.length data_
+    data_' <- packByteString data_
+    result <- g_base64_encode data_' len
+    checkUnexpectedReturnNULL "g_base64_encode" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem data_'
+    return result'
+
+
+-- function g_base64_decode_inplace
+-- Args : [Arg {argCName = "text", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- 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)                 -- result
+base64DecodeInplace text = liftIO $ do
+    let outLen = fromIntegral $ B.length text
+    text' <- packByteString text
+    text'' <- allocMem :: IO (Ptr (Ptr Word8))
+    poke text'' text'
+    outLen' <- allocMem :: IO (Ptr Word64)
+    poke outLen' outLen
+    result <- g_base64_decode_inplace text'' outLen'
+    outLen'' <- peek outLen'
+    text''' <- peek text''
+    text'''' <- (unpackByteStringWithLength outLen'') text'''
+    freeMem text'''
+    freeMem text''
+    freeMem outLen'
+    return (result, text'''')
+
+
+-- function g_base64_decode
+-- Args : [Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "out_len", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- 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                         -- result
+base64Decode text = liftIO $ do
+    text' <- textToCString text
+    outLen <- allocMem :: IO (Ptr Word64)
+    result <- g_base64_decode text' outLen
+    outLen' <- peek outLen
+    checkUnexpectedReturnNULL "g_base64_decode" result
+    result' <- (unpackByteStringWithLength outLen') result
+    freeMem result
+    freeMem text'
+    freeMem outLen
+    return result'
+
+
+-- function g_atomic_pointer_xor
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+atomicPointerXor atomic val = liftIO $ do
+    result <- g_atomic_pointer_xor atomic val
+    return result
+
+
+-- function g_atomic_pointer_set
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+atomicPointerSet atomic newval = liftIO $ do
+    g_atomic_pointer_set atomic newval
+    return ()
+
+
+-- function g_atomic_pointer_or
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+atomicPointerOr atomic val = liftIO $ do
+    result <- g_atomic_pointer_or atomic val
+    return result
+
+
+-- function g_atomic_pointer_compare_and_exchange
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_and
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+atomicPointerAnd atomic val = liftIO $ do
+    result <- g_atomic_pointer_and atomic val
+    return result
+
+
+-- function g_atomic_pointer_add
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+atomicPointerAdd atomic val = liftIO $ do
+    result <- g_atomic_pointer_add atomic val
+    return result
+
+
+-- function g_atomic_int_xor
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+atomicIntXor atomic val = liftIO $ do
+    result <- g_atomic_int_xor atomic val
+    return result
+
+
+-- function g_atomic_int_set
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+atomicIntSet atomic newval = liftIO $ do
+    g_atomic_int_set atomic newval
+    return ()
+
+
+-- function g_atomic_int_or
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+atomicIntOr atomic val = liftIO $ do
+    result <- g_atomic_int_or atomic val
+    return result
+
+
+-- function g_atomic_int_inc
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+atomicIntInc atomic = liftIO $ do
+    g_atomic_int_inc atomic
+    return ()
+
+
+-- function g_atomic_int_get
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+atomicIntGet atomic = liftIO $ do
+    result <- g_atomic_int_get atomic
+    return result
+
+
+-- function g_atomic_int_exchange_and_add
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+atomicIntExchangeAndAdd atomic val = liftIO $ do
+    result <- g_atomic_int_exchange_and_add atomic val
+    return result
+
+
+-- function g_atomic_int_dec_and_test
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+atomicIntDecAndTest atomic = liftIO $ do
+    result <- g_atomic_int_dec_and_test atomic
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_atomic_int_compare_and_exchange
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "oldval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "newval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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_and
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+atomicIntAnd atomic val = liftIO $ do
+    result <- g_atomic_int_and atomic val
+    return result
+
+
+-- function g_atomic_int_add
+-- Args : [Arg {argCName = "atomic", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+atomicIntAdd atomic val = liftIO $ do
+    result <- g_atomic_int_add atomic val
+    return result
+
+
+-- function g_atexit
+-- Args : [Arg {argCName = "func", argType = TInterface "GLib" "VoidFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+atexit func = liftIO $ do
+    ptrfunc <- callocMem :: IO (Ptr (FunPtr VoidFuncC))
+    func' <- mkVoidFunc (voidFuncWrapper (Just ptrfunc) func)
+    poke ptrfunc func'
+    g_atexit func'
+    return ()
+
+
+-- function g_assertion_message_expr
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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_assertion_message_error
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error", argType = TError, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error_domain", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "error_code", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- errorDomain
+    -> Int32                                -- errorCode
+    -> m ()                                 -- result
+assertionMessageError domain file line func expr error_ errorDomain errorCode = 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_' errorDomain errorCode
+    touchManagedPtr error_
+    freeMem domain'
+    freeMem file'
+    freeMem func'
+    freeMem expr'
+    return ()
+
+
+-- function g_assertion_message_cmpstr
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "arg1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cmp", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "arg2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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
+-- Args : [Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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_assert_warning
+-- Args : [Arg {argCName = "log_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pretty_function", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expression", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- logDomain
+    -> T.Text                               -- file
+    -> Int32                                -- line
+    -> T.Text                               -- prettyFunction
+    -> T.Text                               -- expression
+    -> m ()                                 -- result
+assertWarning logDomain file line prettyFunction expression = liftIO $ do
+    logDomain' <- textToCString logDomain
+    file' <- textToCString file
+    prettyFunction' <- textToCString prettyFunction
+    expression' <- textToCString expression
+    g_assert_warning logDomain' file' line prettyFunction' expression'
+    freeMem logDomain'
+    freeMem file'
+    freeMem prettyFunction'
+    freeMem expression'
+    return ()
+
+
+-- function g_ascii_xdigit_value
+-- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+asciiXdigitValue c = liftIO $ do
+    result <- g_ascii_xdigit_value c
+    return result
+
+
+-- function g_ascii_toupper
+-- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+asciiToupper c = liftIO $ do
+    result <- g_ascii_toupper c
+    return result
+
+
+-- function g_ascii_tolower
+-- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+asciiTolower c = liftIO $ do
+    result <- g_ascii_tolower c
+    return result
+
+
+-- function g_ascii_strup
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+asciiStrup str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_ascii_strup str' len
+    checkUnexpectedReturnNULL "g_ascii_strup" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_ascii_strtoull
+-- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "base", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_strtoll
+-- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "base", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+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_strtod
+-- Args : [Arg {argCName = "nptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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_strncasecmp
+-- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+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_strdown
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+asciiStrdown str len = liftIO $ do
+    str' <- textToCString str
+    result <- g_ascii_strdown str' len
+    checkUnexpectedReturnNULL "g_ascii_strdown" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function g_ascii_strcasecmp
+-- Args : [Arg {argCName = "s1", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "s2", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+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_formatd
+-- Args : [Arg {argCName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- bufLen
+    -> T.Text                               -- format
+    -> Double                               -- d
+    -> m T.Text                             -- result
+asciiFormatd buffer bufLen format d = liftIO $ do
+    buffer' <- textToCString buffer
+    format' <- textToCString format
+    let d' = realToFrac d
+    result <- g_ascii_formatd buffer' bufLen format' d'
+    checkUnexpectedReturnNULL "g_ascii_formatd" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem buffer'
+    freeMem format'
+    return result'
+
+
+-- function g_ascii_dtostr
+-- Args : [Arg {argCName = "buffer", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf_len", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "d", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- bufLen
+    -> Double                               -- d
+    -> m T.Text                             -- result
+asciiDtostr buffer bufLen d = liftIO $ do
+    buffer' <- textToCString buffer
+    let d' = realToFrac d
+    result <- g_ascii_dtostr buffer' bufLen d'
+    checkUnexpectedReturnNULL "g_ascii_dtostr" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem buffer'
+    return result'
+
+
+-- function g_ascii_digit_value
+-- Args : [Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+asciiDigitValue c = liftIO $ do
+    result <- g_ascii_digit_value c
+    return result
+
+
+-- function g_access
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
 access filename mode = liftIO $ do
     filename' <- textToCString filename
     result <- g_access filename' mode
diff --git a/GI/GLib/Structs.hs b/GI/GLib/Structs.hs
--- a/GI/GLib/Structs.hs
+++ b/GI/GLib/Structs.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
diff --git a/GI/GLib/Structs/AsyncQueue.hs b/GI/GLib/Structs/AsyncQueue.hs
--- a/GI/GLib/Structs/AsyncQueue.hs
+++ b/GI/GLib/Structs/AsyncQueue.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -19,54 +20,67 @@
 
  -- * Methods
 -- ** asyncQueueLength
+    AsyncQueueLengthMethodInfo              ,
     asyncQueueLength                        ,
 
 
 -- ** asyncQueueLengthUnlocked
+    AsyncQueueLengthUnlockedMethodInfo      ,
     asyncQueueLengthUnlocked                ,
 
 
 -- ** asyncQueueLock
+    AsyncQueueLockMethodInfo                ,
     asyncQueueLock                          ,
 
 
 -- ** asyncQueuePush
+    AsyncQueuePushMethodInfo                ,
     asyncQueuePush                          ,
 
 
 -- ** asyncQueuePushFront
+    AsyncQueuePushFrontMethodInfo           ,
     asyncQueuePushFront                     ,
 
 
 -- ** asyncQueuePushFrontUnlocked
+    AsyncQueuePushFrontUnlockedMethodInfo   ,
     asyncQueuePushFrontUnlocked             ,
 
 
 -- ** asyncQueuePushUnlocked
+    AsyncQueuePushUnlockedMethodInfo        ,
     asyncQueuePushUnlocked                  ,
 
 
 -- ** asyncQueueRefUnlocked
+    AsyncQueueRefUnlockedMethodInfo         ,
     asyncQueueRefUnlocked                   ,
 
 
 -- ** asyncQueueRemove
+    AsyncQueueRemoveMethodInfo              ,
     asyncQueueRemove                        ,
 
 
 -- ** asyncQueueRemoveUnlocked
+    AsyncQueueRemoveUnlockedMethodInfo      ,
     asyncQueueRemoveUnlocked                ,
 
 
 -- ** asyncQueueUnlock
+    AsyncQueueUnlockMethodInfo              ,
     asyncQueueUnlock                        ,
 
 
 -- ** asyncQueueUnref
+    AsyncQueueUnrefMethodInfo               ,
     asyncQueueUnref                         ,
 
 
 -- ** asyncQueueUnrefAndUnlock
+    AsyncQueueUnrefAndUnlockMethodInfo      ,
     asyncQueueUnrefAndUnlock                ,
 
 
@@ -90,9 +104,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -104,19 +117,22 @@
 
 asyncQueueLength ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    m Int32
+    AsyncQueue                              -- _obj
+    -> m Int32                              -- result
 asyncQueueLength _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_async_queue_length _obj'
     touchManagedPtr _obj
     return result
 
+data AsyncQueueLengthMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo AsyncQueueLengthMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueueLength
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -128,19 +144,22 @@
 
 asyncQueueLengthUnlocked ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    m Int32
+    AsyncQueue                              -- _obj
+    -> m Int32                              -- result
 asyncQueueLengthUnlocked _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_async_queue_length_unlocked _obj'
     touchManagedPtr _obj
     return result
 
+data AsyncQueueLengthUnlockedMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo AsyncQueueLengthUnlockedMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueueLengthUnlocked
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -152,19 +171,22 @@
 
 asyncQueueLock ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    m ()
+    AsyncQueue                              -- _obj
+    -> m ()                                 -- result
 asyncQueueLock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_async_queue_lock _obj'
     touchManagedPtr _obj
     return ()
 
+data AsyncQueueLockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo AsyncQueueLockMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueueLock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -177,20 +199,23 @@
 
 asyncQueuePush ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    Ptr () ->                               -- data
-    m ()
+    AsyncQueue                              -- _obj
+    -> Ptr ()                               -- data_
+    -> m ()                                 -- result
 asyncQueuePush _obj data_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_async_queue_push _obj' data_
     touchManagedPtr _obj
     return ()
 
+data AsyncQueuePushMethodInfo
+instance (signature ~ (Ptr () -> m ()), MonadIO m) => MethodInfo AsyncQueuePushMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueuePush
+
 -- method AsyncQueue::push_front
 -- 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 = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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 = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -203,20 +228,23 @@
 
 asyncQueuePushFront ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    Ptr () ->                               -- item
-    m ()
+    AsyncQueue                              -- _obj
+    -> Ptr ()                               -- item
+    -> m ()                                 -- result
 asyncQueuePushFront _obj item = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_async_queue_push_front _obj' item
     touchManagedPtr _obj
     return ()
 
+data AsyncQueuePushFrontMethodInfo
+instance (signature ~ (Ptr () -> m ()), MonadIO m) => MethodInfo AsyncQueuePushFrontMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueuePushFront
+
 -- method AsyncQueue::push_front_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 = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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 = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -229,20 +257,23 @@
 
 asyncQueuePushFrontUnlocked ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    Ptr () ->                               -- item
-    m ()
+    AsyncQueue                              -- _obj
+    -> Ptr ()                               -- item
+    -> m ()                                 -- result
 asyncQueuePushFrontUnlocked _obj item = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_async_queue_push_front_unlocked _obj' item
     touchManagedPtr _obj
     return ()
 
+data AsyncQueuePushFrontUnlockedMethodInfo
+instance (signature ~ (Ptr () -> m ()), MonadIO m) => MethodInfo AsyncQueuePushFrontUnlockedMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueuePushFrontUnlocked
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -255,20 +286,23 @@
 
 asyncQueuePushUnlocked ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    Ptr () ->                               -- data
-    m ()
+    AsyncQueue                              -- _obj
+    -> Ptr ()                               -- data_
+    -> m ()                                 -- result
 asyncQueuePushUnlocked _obj data_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_async_queue_push_unlocked _obj' data_
     touchManagedPtr _obj
     return ()
 
+data AsyncQueuePushUnlockedMethodInfo
+instance (signature ~ (Ptr () -> m ()), MonadIO m) => MethodInfo AsyncQueuePushUnlockedMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueuePushUnlocked
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -280,19 +314,22 @@
 {-# 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 ()
+    AsyncQueue                              -- _obj
+    -> m ()                                 -- result
 asyncQueueRefUnlocked _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_async_queue_ref_unlocked _obj'
     touchManagedPtr _obj
     return ()
 
+data AsyncQueueRefUnlockedMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo AsyncQueueRefUnlockedMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueueRefUnlocked
+
 -- method AsyncQueue::remove
 -- 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 = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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 = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -305,9 +342,9 @@
 
 asyncQueueRemove ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    Ptr () ->                               -- item
-    m Bool
+    AsyncQueue                              -- _obj
+    -> Ptr ()                               -- item
+    -> m Bool                               -- result
 asyncQueueRemove _obj item = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_async_queue_remove _obj' item
@@ -315,11 +352,14 @@
     touchManagedPtr _obj
     return result'
 
+data AsyncQueueRemoveMethodInfo
+instance (signature ~ (Ptr () -> m Bool), MonadIO m) => MethodInfo AsyncQueueRemoveMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueueRemove
+
 -- method AsyncQueue::remove_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 = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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 = "item", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -332,9 +372,9 @@
 
 asyncQueueRemoveUnlocked ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    Ptr () ->                               -- item
-    m Bool
+    AsyncQueue                              -- _obj
+    -> Ptr ()                               -- item
+    -> m Bool                               -- result
 asyncQueueRemoveUnlocked _obj item = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_async_queue_remove_unlocked _obj' item
@@ -342,11 +382,14 @@
     touchManagedPtr _obj
     return result'
 
+data AsyncQueueRemoveUnlockedMethodInfo
+instance (signature ~ (Ptr () -> m Bool), MonadIO m) => MethodInfo AsyncQueueRemoveUnlockedMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueueRemoveUnlocked
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -358,19 +401,22 @@
 
 asyncQueueUnlock ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    m ()
+    AsyncQueue                              -- _obj
+    -> m ()                                 -- result
 asyncQueueUnlock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_async_queue_unlock _obj'
     touchManagedPtr _obj
     return ()
 
+data AsyncQueueUnlockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo AsyncQueueUnlockMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueueUnlock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -382,19 +428,22 @@
 
 asyncQueueUnref ::
     (MonadIO m) =>
-    AsyncQueue ->                           -- _obj
-    m ()
+    AsyncQueue                              -- _obj
+    -> m ()                                 -- result
 asyncQueueUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_async_queue_unref _obj'
     touchManagedPtr _obj
     return ()
 
+data AsyncQueueUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo AsyncQueueUnrefMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueueUnref
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "AsyncQueue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -406,12 +455,40 @@
 {-# 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 ()
+    AsyncQueue                              -- _obj
+    -> m ()                                 -- result
 asyncQueueUnrefAndUnlock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_async_queue_unref_and_unlock _obj'
     touchManagedPtr _obj
     return ()
+
+data AsyncQueueUnrefAndUnlockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo AsyncQueueUnrefAndUnlockMethodInfo AsyncQueue signature where
+    overloadedMethod _ = asyncQueueUnrefAndUnlock
+
+type family ResolveAsyncQueueMethod (t :: Symbol) (o :: *) :: * where
+    ResolveAsyncQueueMethod "length" o = AsyncQueueLengthMethodInfo
+    ResolveAsyncQueueMethod "lengthUnlocked" o = AsyncQueueLengthUnlockedMethodInfo
+    ResolveAsyncQueueMethod "lock" o = AsyncQueueLockMethodInfo
+    ResolveAsyncQueueMethod "push" o = AsyncQueuePushMethodInfo
+    ResolveAsyncQueueMethod "pushFront" o = AsyncQueuePushFrontMethodInfo
+    ResolveAsyncQueueMethod "pushFrontUnlocked" o = AsyncQueuePushFrontUnlockedMethodInfo
+    ResolveAsyncQueueMethod "pushUnlocked" o = AsyncQueuePushUnlockedMethodInfo
+    ResolveAsyncQueueMethod "refUnlocked" o = AsyncQueueRefUnlockedMethodInfo
+    ResolveAsyncQueueMethod "remove" o = AsyncQueueRemoveMethodInfo
+    ResolveAsyncQueueMethod "removeUnlocked" o = AsyncQueueRemoveUnlockedMethodInfo
+    ResolveAsyncQueueMethod "unlock" o = AsyncQueueUnlockMethodInfo
+    ResolveAsyncQueueMethod "unref" o = AsyncQueueUnrefMethodInfo
+    ResolveAsyncQueueMethod "unrefAndUnlock" o = AsyncQueueUnrefAndUnlockMethodInfo
+    ResolveAsyncQueueMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveAsyncQueueMethod t AsyncQueue, MethodInfo info AsyncQueue p) => IsLabelProxy t (AsyncQueue -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveAsyncQueueMethod t AsyncQueue, MethodInfo info AsyncQueue p) => IsLabel t (AsyncQueue -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/AsyncQueue.hs-boot b/GI/GLib/Structs/AsyncQueue.hs-boot
--- a/GI/GLib/Structs/AsyncQueue.hs-boot
+++ b/GI/GLib/Structs/AsyncQueue.hs-boot
@@ -8,3 +8,16 @@
 import qualified Data.Map as Map
 
 newtype AsyncQueue = AsyncQueue (ForeignPtr AsyncQueue)
+data AsyncQueueLengthMethodInfo
+data AsyncQueueLengthUnlockedMethodInfo
+data AsyncQueueLockMethodInfo
+data AsyncQueuePushMethodInfo
+data AsyncQueuePushFrontMethodInfo
+data AsyncQueuePushFrontUnlockedMethodInfo
+data AsyncQueuePushUnlockedMethodInfo
+data AsyncQueueRefUnlockedMethodInfo
+data AsyncQueueRemoveMethodInfo
+data AsyncQueueRemoveUnlockedMethodInfo
+data AsyncQueueUnlockMethodInfo
+data AsyncQueueUnrefMethodInfo
+data AsyncQueueUnrefAndUnlockMethodInfo
diff --git a/GI/GLib/Structs/BookmarkFile.hs b/GI/GLib/Structs/BookmarkFile.hs
--- a/GI/GLib/Structs/BookmarkFile.hs
+++ b/GI/GLib/Structs/BookmarkFile.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,154 +19,196 @@
 
  -- * Methods
 -- ** bookmarkFileAddApplication
+    BookmarkFileAddApplicationMethodInfo    ,
     bookmarkFileAddApplication              ,
 
 
 -- ** bookmarkFileAddGroup
+    BookmarkFileAddGroupMethodInfo          ,
     bookmarkFileAddGroup                    ,
 
 
+-- ** bookmarkFileErrorQuark
+    bookmarkFileErrorQuark                  ,
+
+
 -- ** bookmarkFileFree
+    BookmarkFileFreeMethodInfo              ,
     bookmarkFileFree                        ,
 
 
 -- ** bookmarkFileGetAdded
+    BookmarkFileGetAddedMethodInfo          ,
     bookmarkFileGetAdded                    ,
 
 
 -- ** bookmarkFileGetAppInfo
+    BookmarkFileGetAppInfoMethodInfo        ,
     bookmarkFileGetAppInfo                  ,
 
 
 -- ** bookmarkFileGetApplications
+    BookmarkFileGetApplicationsMethodInfo   ,
     bookmarkFileGetApplications             ,
 
 
 -- ** bookmarkFileGetDescription
+    BookmarkFileGetDescriptionMethodInfo    ,
     bookmarkFileGetDescription              ,
 
 
 -- ** bookmarkFileGetGroups
+    BookmarkFileGetGroupsMethodInfo         ,
     bookmarkFileGetGroups                   ,
 
 
 -- ** bookmarkFileGetIcon
+    BookmarkFileGetIconMethodInfo           ,
     bookmarkFileGetIcon                     ,
 
 
 -- ** bookmarkFileGetIsPrivate
+    BookmarkFileGetIsPrivateMethodInfo      ,
     bookmarkFileGetIsPrivate                ,
 
 
 -- ** bookmarkFileGetMimeType
+    BookmarkFileGetMimeTypeMethodInfo       ,
     bookmarkFileGetMimeType                 ,
 
 
 -- ** bookmarkFileGetModified
+    BookmarkFileGetModifiedMethodInfo       ,
     bookmarkFileGetModified                 ,
 
 
 -- ** bookmarkFileGetSize
+    BookmarkFileGetSizeMethodInfo           ,
     bookmarkFileGetSize                     ,
 
 
 -- ** bookmarkFileGetTitle
+    BookmarkFileGetTitleMethodInfo          ,
     bookmarkFileGetTitle                    ,
 
 
 -- ** bookmarkFileGetUris
+    BookmarkFileGetUrisMethodInfo           ,
     bookmarkFileGetUris                     ,
 
 
 -- ** bookmarkFileGetVisited
+    BookmarkFileGetVisitedMethodInfo        ,
     bookmarkFileGetVisited                  ,
 
 
 -- ** bookmarkFileHasApplication
+    BookmarkFileHasApplicationMethodInfo    ,
     bookmarkFileHasApplication              ,
 
 
 -- ** bookmarkFileHasGroup
+    BookmarkFileHasGroupMethodInfo          ,
     bookmarkFileHasGroup                    ,
 
 
 -- ** bookmarkFileHasItem
+    BookmarkFileHasItemMethodInfo           ,
     bookmarkFileHasItem                     ,
 
 
 -- ** bookmarkFileLoadFromData
+    BookmarkFileLoadFromDataMethodInfo      ,
     bookmarkFileLoadFromData                ,
 
 
 -- ** bookmarkFileLoadFromDataDirs
+    BookmarkFileLoadFromDataDirsMethodInfo  ,
     bookmarkFileLoadFromDataDirs            ,
 
 
 -- ** bookmarkFileLoadFromFile
+    BookmarkFileLoadFromFileMethodInfo      ,
     bookmarkFileLoadFromFile                ,
 
 
 -- ** bookmarkFileMoveItem
+    BookmarkFileMoveItemMethodInfo          ,
     bookmarkFileMoveItem                    ,
 
 
 -- ** bookmarkFileRemoveApplication
+    BookmarkFileRemoveApplicationMethodInfo ,
     bookmarkFileRemoveApplication           ,
 
 
 -- ** bookmarkFileRemoveGroup
+    BookmarkFileRemoveGroupMethodInfo       ,
     bookmarkFileRemoveGroup                 ,
 
 
 -- ** bookmarkFileRemoveItem
+    BookmarkFileRemoveItemMethodInfo        ,
     bookmarkFileRemoveItem                  ,
 
 
 -- ** bookmarkFileSetAdded
+    BookmarkFileSetAddedMethodInfo          ,
     bookmarkFileSetAdded                    ,
 
 
 -- ** bookmarkFileSetAppInfo
+    BookmarkFileSetAppInfoMethodInfo        ,
     bookmarkFileSetAppInfo                  ,
 
 
 -- ** bookmarkFileSetDescription
+    BookmarkFileSetDescriptionMethodInfo    ,
     bookmarkFileSetDescription              ,
 
 
 -- ** bookmarkFileSetGroups
+    BookmarkFileSetGroupsMethodInfo         ,
     bookmarkFileSetGroups                   ,
 
 
 -- ** bookmarkFileSetIcon
+    BookmarkFileSetIconMethodInfo           ,
     bookmarkFileSetIcon                     ,
 
 
 -- ** bookmarkFileSetIsPrivate
+    BookmarkFileSetIsPrivateMethodInfo      ,
     bookmarkFileSetIsPrivate                ,
 
 
 -- ** bookmarkFileSetMimeType
+    BookmarkFileSetMimeTypeMethodInfo       ,
     bookmarkFileSetMimeType                 ,
 
 
 -- ** bookmarkFileSetModified
+    BookmarkFileSetModifiedMethodInfo       ,
     bookmarkFileSetModified                 ,
 
 
 -- ** bookmarkFileSetTitle
+    BookmarkFileSetTitleMethodInfo          ,
     bookmarkFileSetTitle                    ,
 
 
 -- ** bookmarkFileSetVisited
+    BookmarkFileSetVisitedMethodInfo        ,
     bookmarkFileSetVisited                  ,
 
 
 -- ** bookmarkFileToData
+    BookmarkFileToDataMethodInfo            ,
     bookmarkFileToData                      ,
 
 
 -- ** bookmarkFileToFile
+    BookmarkFileToFileMethodInfo            ,
     bookmarkFileToFile                      ,
 
 
@@ -189,9 +232,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -206,11 +248,11 @@
 
 bookmarkFileAddApplication ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    Maybe (T.Text) ->                       -- name
-    Maybe (T.Text) ->                       -- exec
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> Maybe (T.Text)                       -- name
+    -> Maybe (T.Text)                       -- exec
+    -> m ()                                 -- result
 bookmarkFileAddApplication _obj uri name exec = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -231,11 +273,14 @@
     freeMem maybeExec
     return ()
 
+data BookmarkFileAddApplicationMethodInfo
+instance (signature ~ (T.Text -> Maybe (T.Text) -> Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo BookmarkFileAddApplicationMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileAddApplication
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -249,10 +294,10 @@
 
 bookmarkFileAddGroup ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    T.Text ->                               -- group
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> T.Text                               -- group
+    -> m ()                                 -- result
 bookmarkFileAddGroup _obj uri group = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -263,11 +308,14 @@
     freeMem group'
     return ()
 
+data BookmarkFileAddGroupMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileAddGroupMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileAddGroup
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -279,19 +327,22 @@
 
 bookmarkFileFree ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    m ()
+    BookmarkFile                            -- _obj
+    -> m ()                                 -- result
 bookmarkFileFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_bookmark_file_free _obj'
     touchManagedPtr _obj
     return ()
 
+data BookmarkFileFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo BookmarkFileFreeMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -305,9 +356,9 @@
 
 bookmarkFileGetAdded ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m Int64
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m Int64                              -- result
 bookmarkFileGetAdded _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -320,11 +371,14 @@
         freeMem uri'
      )
 
+data BookmarkFileGetAddedMethodInfo
+instance (signature ~ (T.Text -> m Int64), MonadIO m) => MethodInfo BookmarkFileGetAddedMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetAdded
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exec", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "count", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "stamp", argType = TBasicType TInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -342,10 +396,10 @@
 
 bookmarkFileGetAppInfo ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    T.Text ->                               -- name
-    m (T.Text,Word32,Int64)
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> T.Text                               -- name
+    -> m (T.Text,Word32,Int64)              -- result
 bookmarkFileGetAppInfo _obj uri name = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -375,11 +429,14 @@
         freeMem stamp
      )
 
+data BookmarkFileGetAppInfoMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m (T.Text,Word32,Int64)), MonadIO m) => MethodInfo BookmarkFileGetAppInfoMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetAppInfo
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- returnType : TCArray False (-1) 2 (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
@@ -394,9 +451,9 @@
 
 bookmarkFileGetApplications ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m [T.Text]
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m [T.Text]                           -- result
 bookmarkFileGetApplications _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -417,11 +474,14 @@
         freeMem length_
      )
 
+data BookmarkFileGetApplicationsMethodInfo
+instance (signature ~ (T.Text -> m [T.Text]), MonadIO m) => MethodInfo BookmarkFileGetApplicationsMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetApplications
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -435,9 +495,9 @@
 
 bookmarkFileGetDescription ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m T.Text
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m T.Text                             -- result
 bookmarkFileGetDescription _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -453,11 +513,14 @@
         freeMem uri'
      )
 
+data BookmarkFileGetDescriptionMethodInfo
+instance (signature ~ (T.Text -> m T.Text), MonadIO m) => MethodInfo BookmarkFileGetDescriptionMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetDescription
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- returnType : TCArray False (-1) 2 (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
@@ -472,9 +535,9 @@
 
 bookmarkFileGetGroups ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m [T.Text]
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m [T.Text]                           -- result
 bookmarkFileGetGroups _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -495,11 +558,14 @@
         freeMem length_
      )
 
+data BookmarkFileGetGroupsMethodInfo
+instance (signature ~ (T.Text -> m [T.Text]), MonadIO m) => MethodInfo BookmarkFileGetGroupsMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetGroups
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "href", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "mime_type", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -515,38 +581,41 @@
 
 bookmarkFileGetIcon ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m (T.Text,T.Text)
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m (T.Text,T.Text)                    -- result
 bookmarkFileGetIcon _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
     href <- allocMem :: IO (Ptr CString)
-    mime_type <- allocMem :: IO (Ptr CString)
+    mimeType <- allocMem :: IO (Ptr CString)
     onException (do
-        _ <- propagateGError $ g_bookmark_file_get_icon _obj' uri' href mime_type
+        _ <- propagateGError $ g_bookmark_file_get_icon _obj' uri' href mimeType
         href' <- peek href
         href'' <- cstringToText href'
         freeMem href'
-        mime_type' <- peek mime_type
-        mime_type'' <- cstringToText mime_type'
-        freeMem mime_type'
+        mimeType' <- peek mimeType
+        mimeType'' <- cstringToText mimeType'
+        freeMem mimeType'
         touchManagedPtr _obj
         freeMem uri'
         freeMem href
-        freeMem mime_type
-        return (href'', mime_type'')
+        freeMem mimeType
+        return (href'', mimeType'')
      ) (do
         freeMem uri'
         freeMem href
-        freeMem mime_type
+        freeMem mimeType
      )
 
+data BookmarkFileGetIconMethodInfo
+instance (signature ~ (T.Text -> m (T.Text,T.Text)), MonadIO m) => MethodInfo BookmarkFileGetIconMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetIcon
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -560,9 +629,9 @@
 
 bookmarkFileGetIsPrivate ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m ()                                 -- result
 bookmarkFileGetIsPrivate _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -575,11 +644,14 @@
         freeMem uri'
      )
 
+data BookmarkFileGetIsPrivateMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileGetIsPrivateMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetIsPrivate
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -593,9 +665,9 @@
 
 bookmarkFileGetMimeType ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m T.Text
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m T.Text                             -- result
 bookmarkFileGetMimeType _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -611,11 +683,14 @@
         freeMem uri'
      )
 
+data BookmarkFileGetMimeTypeMethodInfo
+instance (signature ~ (T.Text -> m T.Text), MonadIO m) => MethodInfo BookmarkFileGetMimeTypeMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetMimeType
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -629,9 +704,9 @@
 
 bookmarkFileGetModified ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m Int64
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m Int64                              -- result
 bookmarkFileGetModified _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -644,11 +719,14 @@
         freeMem uri'
      )
 
+data BookmarkFileGetModifiedMethodInfo
+instance (signature ~ (T.Text -> m Int64), MonadIO m) => MethodInfo BookmarkFileGetModifiedMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetModified
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -660,19 +738,22 @@
 
 bookmarkFileGetSize ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    m Int32
+    BookmarkFile                            -- _obj
+    -> m Int32                              -- result
 bookmarkFileGetSize _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_bookmark_file_get_size _obj'
     touchManagedPtr _obj
     return result
 
+data BookmarkFileGetSizeMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo BookmarkFileGetSizeMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetSize
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -686,9 +767,9 @@
 
 bookmarkFileGetTitle ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    Maybe (T.Text) ->                       -- uri
-    m T.Text
+    BookmarkFile                            -- _obj
+    -> Maybe (T.Text)                       -- uri
+    -> m T.Text                             -- result
 bookmarkFileGetTitle _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeUri <- case uri of
@@ -708,11 +789,14 @@
         freeMem maybeUri
      )
 
+data BookmarkFileGetTitleMethodInfo
+instance (signature ~ (Maybe (T.Text) -> m T.Text), MonadIO m) => MethodInfo BookmarkFileGetTitleMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetTitle
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- returnType : TCArray False (-1) 1 (TBasicType TUTF8)
 -- throws : False
 -- Skip return : False
@@ -725,8 +809,8 @@
 
 bookmarkFileGetUris ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    m [T.Text]
+    BookmarkFile                            -- _obj
+    -> m [T.Text]                           -- result
 bookmarkFileGetUris _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     length_ <- allocMem :: IO (Ptr Word64)
@@ -740,11 +824,14 @@
     freeMem length_
     return result'
 
+data BookmarkFileGetUrisMethodInfo
+instance (signature ~ (m [T.Text]), MonadIO m) => MethodInfo BookmarkFileGetUrisMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetUris
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -758,9 +845,9 @@
 
 bookmarkFileGetVisited ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m Int64
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m Int64                              -- result
 bookmarkFileGetVisited _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -773,11 +860,14 @@
         freeMem uri'
      )
 
+data BookmarkFileGetVisitedMethodInfo
+instance (signature ~ (T.Text -> m Int64), MonadIO m) => MethodInfo BookmarkFileGetVisitedMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileGetVisited
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -792,10 +882,10 @@
 
 bookmarkFileHasApplication ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    T.Text ->                               -- name
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> T.Text                               -- name
+    -> m ()                                 -- result
 bookmarkFileHasApplication _obj uri name = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -811,11 +901,14 @@
         freeMem name'
      )
 
+data BookmarkFileHasApplicationMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileHasApplicationMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileHasApplication
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -830,10 +923,10 @@
 
 bookmarkFileHasGroup ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    T.Text ->                               -- group
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> T.Text                               -- group
+    -> m ()                                 -- result
 bookmarkFileHasGroup _obj uri group = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -849,11 +942,14 @@
         freeMem group'
      )
 
+data BookmarkFileHasGroupMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileHasGroupMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileHasGroup
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -866,9 +962,9 @@
 
 bookmarkFileHasItem ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m Bool
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m Bool                               -- result
 bookmarkFileHasItem _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -878,11 +974,14 @@
     freeMem uri'
     return result'
 
+data BookmarkFileHasItemMethodInfo
+instance (signature ~ (T.Text -> m Bool), MonadIO m) => MethodInfo BookmarkFileHasItemMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileHasItem
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -897,10 +996,10 @@
 
 bookmarkFileLoadFromData ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- data
-    Word64 ->                               -- length
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- data_
+    -> Word64                               -- length_
+    -> m ()                                 -- result
 bookmarkFileLoadFromData _obj data_ length_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     data_' <- textToCString data_
@@ -913,11 +1012,14 @@
         freeMem data_'
      )
 
+data BookmarkFileLoadFromDataMethodInfo
+instance (signature ~ (T.Text -> Word64 -> m ()), MonadIO m) => MethodInfo BookmarkFileLoadFromDataMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileLoadFromData
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "full_path", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -932,34 +1034,37 @@
 
 bookmarkFileLoadFromDataDirs ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- file
-    Maybe (T.Text) ->                       -- full_path
-    m ()
-bookmarkFileLoadFromDataDirs _obj file full_path = liftIO $ do
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- file
+    -> Maybe (T.Text)                       -- fullPath
+    -> m ()                                 -- result
+bookmarkFileLoadFromDataDirs _obj file fullPath = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     file' <- textToCString file
-    maybeFull_path <- case full_path of
+    maybeFullPath <- case fullPath of
         Nothing -> return nullPtr
-        Just jFull_path -> do
-            jFull_path' <- textToCString jFull_path
-            return jFull_path'
+        Just jFullPath -> do
+            jFullPath' <- textToCString jFullPath
+            return jFullPath'
     onException (do
-        _ <- propagateGError $ g_bookmark_file_load_from_data_dirs _obj' file' maybeFull_path
+        _ <- propagateGError $ g_bookmark_file_load_from_data_dirs _obj' file' maybeFullPath
         touchManagedPtr _obj
         freeMem file'
-        freeMem maybeFull_path
+        freeMem maybeFullPath
         return ()
      ) (do
         freeMem file'
-        freeMem maybeFull_path
+        freeMem maybeFullPath
      )
 
+data BookmarkFileLoadFromDataDirsMethodInfo
+instance (signature ~ (T.Text -> Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo BookmarkFileLoadFromDataDirsMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileLoadFromDataDirs
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -973,9 +1078,9 @@
 
 bookmarkFileLoadFromFile ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- filename
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- filename
+    -> m ()                                 -- result
 bookmarkFileLoadFromFile _obj filename = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     filename' <- textToCString filename
@@ -988,11 +1093,14 @@
         freeMem filename'
      )
 
+data BookmarkFileLoadFromFileMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileLoadFromFileMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileLoadFromFile
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "old_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1007,34 +1115,37 @@
 
 bookmarkFileMoveItem ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- old_uri
-    Maybe (T.Text) ->                       -- new_uri
-    m ()
-bookmarkFileMoveItem _obj old_uri new_uri = liftIO $ do
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- oldUri
+    -> Maybe (T.Text)                       -- newUri
+    -> m ()                                 -- result
+bookmarkFileMoveItem _obj oldUri newUri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    old_uri' <- textToCString old_uri
-    maybeNew_uri <- case new_uri of
+    oldUri' <- textToCString oldUri
+    maybeNewUri <- case newUri of
         Nothing -> return nullPtr
-        Just jNew_uri -> do
-            jNew_uri' <- textToCString jNew_uri
-            return jNew_uri'
+        Just jNewUri -> do
+            jNewUri' <- textToCString jNewUri
+            return jNewUri'
     onException (do
-        _ <- propagateGError $ g_bookmark_file_move_item _obj' old_uri' maybeNew_uri
+        _ <- propagateGError $ g_bookmark_file_move_item _obj' oldUri' maybeNewUri
         touchManagedPtr _obj
-        freeMem old_uri'
-        freeMem maybeNew_uri
+        freeMem oldUri'
+        freeMem maybeNewUri
         return ()
      ) (do
-        freeMem old_uri'
-        freeMem maybeNew_uri
+        freeMem oldUri'
+        freeMem maybeNewUri
      )
 
+data BookmarkFileMoveItemMethodInfo
+instance (signature ~ (T.Text -> Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo BookmarkFileMoveItemMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileMoveItem
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1049,10 +1160,10 @@
 
 bookmarkFileRemoveApplication ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    T.Text ->                               -- name
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> T.Text                               -- name
+    -> m ()                                 -- result
 bookmarkFileRemoveApplication _obj uri name = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -1068,11 +1179,14 @@
         freeMem name'
      )
 
+data BookmarkFileRemoveApplicationMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileRemoveApplicationMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileRemoveApplication
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1087,10 +1201,10 @@
 
 bookmarkFileRemoveGroup ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    T.Text ->                               -- group
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> T.Text                               -- group
+    -> m ()                                 -- result
 bookmarkFileRemoveGroup _obj uri group = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -1106,11 +1220,14 @@
         freeMem group'
      )
 
+data BookmarkFileRemoveGroupMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileRemoveGroupMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileRemoveGroup
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1124,9 +1241,9 @@
 
 bookmarkFileRemoveItem ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> m ()                                 -- result
 bookmarkFileRemoveItem _obj uri = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -1139,11 +1256,14 @@
         freeMem uri'
      )
 
+data BookmarkFileRemoveItemMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileRemoveItemMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileRemoveItem
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "added", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1157,10 +1277,10 @@
 
 bookmarkFileSetAdded ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    Int64 ->                                -- added
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> Int64                                -- added
+    -> m ()                                 -- result
 bookmarkFileSetAdded _obj uri added = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -1169,11 +1289,14 @@
     freeMem uri'
     return ()
 
+data BookmarkFileSetAddedMethodInfo
+instance (signature ~ (T.Text -> Int64 -> m ()), MonadIO m) => MethodInfo BookmarkFileSetAddedMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileSetAdded
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "exec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "stamp", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1191,13 +1314,13 @@
 
 bookmarkFileSetAppInfo ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    T.Text ->                               -- name
-    T.Text ->                               -- exec
-    Int32 ->                                -- count
-    Int64 ->                                -- stamp
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> T.Text                               -- name
+    -> T.Text                               -- exec
+    -> Int32                                -- count
+    -> Int64                                -- stamp
+    -> m ()                                 -- result
 bookmarkFileSetAppInfo _obj uri name exec count stamp = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -1216,11 +1339,14 @@
         freeMem exec'
      )
 
+data BookmarkFileSetAppInfoMethodInfo
+instance (signature ~ (T.Text -> T.Text -> T.Text -> Int32 -> Int64 -> m ()), MonadIO m) => MethodInfo BookmarkFileSetAppInfoMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileSetAppInfo
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1234,10 +1360,10 @@
 
 bookmarkFileSetDescription ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    Maybe (T.Text) ->                       -- uri
-    T.Text ->                               -- description
-    m ()
+    BookmarkFile                            -- _obj
+    -> Maybe (T.Text)                       -- uri
+    -> T.Text                               -- description
+    -> m ()                                 -- result
 bookmarkFileSetDescription _obj uri description = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeUri <- case uri of
@@ -1252,11 +1378,14 @@
     freeMem description'
     return ()
 
+data BookmarkFileSetDescriptionMethodInfo
+instance (signature ~ (Maybe (T.Text) -> T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileSetDescriptionMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileSetDescription
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "groups", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1271,11 +1400,11 @@
 
 bookmarkFileSetGroups ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    Maybe (T.Text) ->                       -- groups
-    Word64 ->                               -- length
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> Maybe (T.Text)                       -- groups
+    -> Word64                               -- length_
+    -> m ()                                 -- result
 bookmarkFileSetGroups _obj uri groups length_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -1290,11 +1419,14 @@
     freeMem maybeGroups
     return ()
 
+data BookmarkFileSetGroupsMethodInfo
+instance (signature ~ (T.Text -> Maybe (T.Text) -> Word64 -> m ()), MonadIO m) => MethodInfo BookmarkFileSetGroupsMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileSetGroups
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "href", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1309,12 +1441,12 @@
 
 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
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> Maybe (T.Text)                       -- href
+    -> T.Text                               -- mimeType
+    -> m ()                                 -- result
+bookmarkFileSetIcon _obj uri href mimeType = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
     maybeHref <- case href of
@@ -1322,19 +1454,22 @@
         Just jHref -> do
             jHref' <- textToCString jHref
             return jHref'
-    mime_type' <- textToCString mime_type
-    g_bookmark_file_set_icon _obj' uri' maybeHref mime_type'
+    mimeType' <- textToCString mimeType
+    g_bookmark_file_set_icon _obj' uri' maybeHref mimeType'
     touchManagedPtr _obj
     freeMem uri'
     freeMem maybeHref
-    freeMem mime_type'
+    freeMem mimeType'
     return ()
 
+data BookmarkFileSetIconMethodInfo
+instance (signature ~ (T.Text -> Maybe (T.Text) -> T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileSetIconMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileSetIcon
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_private", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1348,24 +1483,27 @@
 
 bookmarkFileSetIsPrivate ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    Bool ->                                 -- is_private
-    m ()
-bookmarkFileSetIsPrivate _obj uri is_private = liftIO $ do
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> Bool                                 -- isPrivate
+    -> m ()                                 -- result
+bookmarkFileSetIsPrivate _obj uri isPrivate = 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'
+    let isPrivate' = (fromIntegral . fromEnum) isPrivate
+    g_bookmark_file_set_is_private _obj' uri' isPrivate'
     touchManagedPtr _obj
     freeMem uri'
     return ()
 
+data BookmarkFileSetIsPrivateMethodInfo
+instance (signature ~ (T.Text -> Bool -> m ()), MonadIO m) => MethodInfo BookmarkFileSetIsPrivateMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileSetIsPrivate
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mime_type", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1379,25 +1517,28 @@
 
 bookmarkFileSetMimeType ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    T.Text ->                               -- mime_type
-    m ()
-bookmarkFileSetMimeType _obj uri mime_type = liftIO $ do
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> T.Text                               -- mimeType
+    -> m ()                                 -- result
+bookmarkFileSetMimeType _obj uri mimeType = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
-    mime_type' <- textToCString mime_type
-    g_bookmark_file_set_mime_type _obj' uri' mime_type'
+    mimeType' <- textToCString mimeType
+    g_bookmark_file_set_mime_type _obj' uri' mimeType'
     touchManagedPtr _obj
     freeMem uri'
-    freeMem mime_type'
+    freeMem mimeType'
     return ()
 
+data BookmarkFileSetMimeTypeMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileSetMimeTypeMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileSetMimeType
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modified", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1411,10 +1552,10 @@
 
 bookmarkFileSetModified ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    Int64 ->                                -- modified
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> Int64                                -- modified
+    -> m ()                                 -- result
 bookmarkFileSetModified _obj uri modified = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -1423,11 +1564,14 @@
     freeMem uri'
     return ()
 
+data BookmarkFileSetModifiedMethodInfo
+instance (signature ~ (T.Text -> Int64 -> m ()), MonadIO m) => MethodInfo BookmarkFileSetModifiedMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileSetModified
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1441,10 +1585,10 @@
 
 bookmarkFileSetTitle ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    Maybe (T.Text) ->                       -- uri
-    T.Text ->                               -- title
-    m ()
+    BookmarkFile                            -- _obj
+    -> Maybe (T.Text)                       -- uri
+    -> T.Text                               -- title
+    -> m ()                                 -- result
 bookmarkFileSetTitle _obj uri title = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeUri <- case uri of
@@ -1459,11 +1603,14 @@
     freeMem title'
     return ()
 
+data BookmarkFileSetTitleMethodInfo
+instance (signature ~ (Maybe (T.Text) -> T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileSetTitleMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileSetTitle
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "uri", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "visited", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1477,10 +1624,10 @@
 
 bookmarkFileSetVisited ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- uri
-    Int64 ->                                -- visited
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- uri
+    -> Int64                                -- visited
+    -> m ()                                 -- result
 bookmarkFileSetVisited _obj uri visited = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     uri' <- textToCString uri
@@ -1489,11 +1636,14 @@
     freeMem uri'
     return ()
 
+data BookmarkFileSetVisitedMethodInfo
+instance (signature ~ (T.Text -> Int64 -> m ()), MonadIO m) => MethodInfo BookmarkFileSetVisitedMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileSetVisited
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1507,8 +1657,8 @@
 
 bookmarkFileToData ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    m (T.Text,Word64)
+    BookmarkFile                            -- _obj
+    -> m (T.Text,Word64)                    -- result
 bookmarkFileToData _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     length_ <- allocMem :: IO (Ptr Word64)
@@ -1525,11 +1675,14 @@
         freeMem length_
      )
 
+data BookmarkFileToDataMethodInfo
+instance (signature ~ (m (T.Text,Word64)), MonadIO m) => MethodInfo BookmarkFileToDataMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileToData
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "BookmarkFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1543,9 +1696,9 @@
 
 bookmarkFileToFile ::
     (MonadIO m) =>
-    BookmarkFile ->                         -- _obj
-    T.Text ->                               -- filename
-    m ()
+    BookmarkFile                            -- _obj
+    -> T.Text                               -- filename
+    -> m ()                                 -- result
 bookmarkFileToFile _obj filename = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     filename' <- textToCString filename
@@ -1557,5 +1710,77 @@
      ) (do
         freeMem filename'
      )
+
+data BookmarkFileToFileMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo BookmarkFileToFileMethodInfo BookmarkFile signature where
+    overloadedMethod _ = bookmarkFileToFile
+
+-- method BookmarkFile::error_quark
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+bookmarkFileErrorQuark  = liftIO $ do
+    result <- g_bookmark_file_error_quark
+    return result
+
+type family ResolveBookmarkFileMethod (t :: Symbol) (o :: *) :: * where
+    ResolveBookmarkFileMethod "addApplication" o = BookmarkFileAddApplicationMethodInfo
+    ResolveBookmarkFileMethod "addGroup" o = BookmarkFileAddGroupMethodInfo
+    ResolveBookmarkFileMethod "free" o = BookmarkFileFreeMethodInfo
+    ResolveBookmarkFileMethod "hasApplication" o = BookmarkFileHasApplicationMethodInfo
+    ResolveBookmarkFileMethod "hasGroup" o = BookmarkFileHasGroupMethodInfo
+    ResolveBookmarkFileMethod "hasItem" o = BookmarkFileHasItemMethodInfo
+    ResolveBookmarkFileMethod "loadFromData" o = BookmarkFileLoadFromDataMethodInfo
+    ResolveBookmarkFileMethod "loadFromDataDirs" o = BookmarkFileLoadFromDataDirsMethodInfo
+    ResolveBookmarkFileMethod "loadFromFile" o = BookmarkFileLoadFromFileMethodInfo
+    ResolveBookmarkFileMethod "moveItem" o = BookmarkFileMoveItemMethodInfo
+    ResolveBookmarkFileMethod "removeApplication" o = BookmarkFileRemoveApplicationMethodInfo
+    ResolveBookmarkFileMethod "removeGroup" o = BookmarkFileRemoveGroupMethodInfo
+    ResolveBookmarkFileMethod "removeItem" o = BookmarkFileRemoveItemMethodInfo
+    ResolveBookmarkFileMethod "toData" o = BookmarkFileToDataMethodInfo
+    ResolveBookmarkFileMethod "toFile" o = BookmarkFileToFileMethodInfo
+    ResolveBookmarkFileMethod "getAdded" o = BookmarkFileGetAddedMethodInfo
+    ResolveBookmarkFileMethod "getAppInfo" o = BookmarkFileGetAppInfoMethodInfo
+    ResolveBookmarkFileMethod "getApplications" o = BookmarkFileGetApplicationsMethodInfo
+    ResolveBookmarkFileMethod "getDescription" o = BookmarkFileGetDescriptionMethodInfo
+    ResolveBookmarkFileMethod "getGroups" o = BookmarkFileGetGroupsMethodInfo
+    ResolveBookmarkFileMethod "getIcon" o = BookmarkFileGetIconMethodInfo
+    ResolveBookmarkFileMethod "getIsPrivate" o = BookmarkFileGetIsPrivateMethodInfo
+    ResolveBookmarkFileMethod "getMimeType" o = BookmarkFileGetMimeTypeMethodInfo
+    ResolveBookmarkFileMethod "getModified" o = BookmarkFileGetModifiedMethodInfo
+    ResolveBookmarkFileMethod "getSize" o = BookmarkFileGetSizeMethodInfo
+    ResolveBookmarkFileMethod "getTitle" o = BookmarkFileGetTitleMethodInfo
+    ResolveBookmarkFileMethod "getUris" o = BookmarkFileGetUrisMethodInfo
+    ResolveBookmarkFileMethod "getVisited" o = BookmarkFileGetVisitedMethodInfo
+    ResolveBookmarkFileMethod "setAdded" o = BookmarkFileSetAddedMethodInfo
+    ResolveBookmarkFileMethod "setAppInfo" o = BookmarkFileSetAppInfoMethodInfo
+    ResolveBookmarkFileMethod "setDescription" o = BookmarkFileSetDescriptionMethodInfo
+    ResolveBookmarkFileMethod "setGroups" o = BookmarkFileSetGroupsMethodInfo
+    ResolveBookmarkFileMethod "setIcon" o = BookmarkFileSetIconMethodInfo
+    ResolveBookmarkFileMethod "setIsPrivate" o = BookmarkFileSetIsPrivateMethodInfo
+    ResolveBookmarkFileMethod "setMimeType" o = BookmarkFileSetMimeTypeMethodInfo
+    ResolveBookmarkFileMethod "setModified" o = BookmarkFileSetModifiedMethodInfo
+    ResolveBookmarkFileMethod "setTitle" o = BookmarkFileSetTitleMethodInfo
+    ResolveBookmarkFileMethod "setVisited" o = BookmarkFileSetVisitedMethodInfo
+    ResolveBookmarkFileMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveBookmarkFileMethod t BookmarkFile, MethodInfo info BookmarkFile p) => IsLabelProxy t (BookmarkFile -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveBookmarkFileMethod t BookmarkFile, MethodInfo info BookmarkFile p) => IsLabel t (BookmarkFile -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/BookmarkFile.hs-boot b/GI/GLib/Structs/BookmarkFile.hs-boot
--- a/GI/GLib/Structs/BookmarkFile.hs-boot
+++ b/GI/GLib/Structs/BookmarkFile.hs-boot
@@ -8,3 +8,41 @@
 import qualified Data.Map as Map
 
 newtype BookmarkFile = BookmarkFile (ForeignPtr BookmarkFile)
+data BookmarkFileAddApplicationMethodInfo
+data BookmarkFileAddGroupMethodInfo
+data BookmarkFileFreeMethodInfo
+data BookmarkFileGetAddedMethodInfo
+data BookmarkFileGetAppInfoMethodInfo
+data BookmarkFileGetApplicationsMethodInfo
+data BookmarkFileGetDescriptionMethodInfo
+data BookmarkFileGetGroupsMethodInfo
+data BookmarkFileGetIconMethodInfo
+data BookmarkFileGetIsPrivateMethodInfo
+data BookmarkFileGetMimeTypeMethodInfo
+data BookmarkFileGetModifiedMethodInfo
+data BookmarkFileGetSizeMethodInfo
+data BookmarkFileGetTitleMethodInfo
+data BookmarkFileGetUrisMethodInfo
+data BookmarkFileGetVisitedMethodInfo
+data BookmarkFileHasApplicationMethodInfo
+data BookmarkFileHasGroupMethodInfo
+data BookmarkFileHasItemMethodInfo
+data BookmarkFileLoadFromDataMethodInfo
+data BookmarkFileLoadFromDataDirsMethodInfo
+data BookmarkFileLoadFromFileMethodInfo
+data BookmarkFileMoveItemMethodInfo
+data BookmarkFileRemoveApplicationMethodInfo
+data BookmarkFileRemoveGroupMethodInfo
+data BookmarkFileRemoveItemMethodInfo
+data BookmarkFileSetAddedMethodInfo
+data BookmarkFileSetAppInfoMethodInfo
+data BookmarkFileSetDescriptionMethodInfo
+data BookmarkFileSetGroupsMethodInfo
+data BookmarkFileSetIconMethodInfo
+data BookmarkFileSetIsPrivateMethodInfo
+data BookmarkFileSetMimeTypeMethodInfo
+data BookmarkFileSetModifiedMethodInfo
+data BookmarkFileSetTitleMethodInfo
+data BookmarkFileSetVisitedMethodInfo
+data BookmarkFileToDataMethodInfo
+data BookmarkFileToFileMethodInfo
diff --git a/GI/GLib/Structs/ByteArray.hs b/GI/GLib/Structs/ByteArray.hs
--- a/GI/GLib/Structs/ByteArray.hs
+++ b/GI/GLib/Structs/ByteArray.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -12,9 +13,33 @@
 
 -- * Exported types
     ByteArray(..)                           ,
+    newZeroByteArray                        ,
     noByteArray                             ,
 
 
+ -- * Methods
+-- ** byteArrayFree
+    byteArrayFree                           ,
+
+
+-- ** byteArrayFreeToBytes
+    byteArrayFreeToBytes                    ,
+
+
+-- ** byteArrayNew
+    byteArrayNew                            ,
+
+
+-- ** byteArrayNewTake
+    byteArrayNewTake                        ,
+
+
+-- ** byteArrayUnref
+    byteArrayUnref                          ,
+
+
+
+
  -- * Properties
 -- ** Data
     byteArrayReadData                       ,
@@ -45,6 +70,10 @@
 instance BoxedObject ByteArray where
     boxedType _ = c_g_byte_array_get_type
 
+-- | Construct a `ByteArray` struct initialized to zero.
+newZeroByteArray :: MonadIO m => m ByteArray
+newZeroByteArray = liftIO $ callocBoxedBytes 16 >>= wrapBoxed ByteArray
+
 noByteArray :: Maybe ByteArray
 noByteArray = Nothing
 
@@ -57,5 +86,138 @@
 byteArrayReadLen s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word32
     return val
+
+-- method ByteArray::free
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "free_segment", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                 -- freeSegment
+    -> m Word8                              -- result
+byteArrayFree array freeSegment = liftIO $ do
+    array' <- packGByteArray array
+    let freeSegment' = (fromIntegral . fromEnum) freeSegment
+    result <- g_byte_array_free array' freeSegment'
+    unrefGByteArray array'
+    return result
+
+-- method ByteArray::free_to_bytes
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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                              -- result
+byteArrayFreeToBytes array = liftIO $ do
+    array' <- packGByteArray array
+    result <- g_byte_array_free_to_bytes array'
+    checkUnexpectedReturnNULL "g_byte_array_free_to_bytes" result
+    result' <- (wrapBoxed Bytes) result
+    return result'
+
+-- method ByteArray::new
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                            -- result
+byteArrayNew  = liftIO $ do
+    result <- g_byte_array_new
+    checkUnexpectedReturnNULL "g_byte_array_new" result
+    result' <- unpackGByteArray result
+    unrefGByteArray result
+    return result'
+
+-- method ByteArray::new_take
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- 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                         -- result
+byteArrayNewTake data_ = liftIO $ do
+    let len = fromIntegral $ B.length data_
+    data_' <- packByteString data_
+    result <- g_byte_array_new_take data_' len
+    checkUnexpectedReturnNULL "g_byte_array_new_take" result
+    result' <- unpackGByteArray result
+    unrefGByteArray result
+    return result'
+
+-- method ByteArray::unref
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "array", argType = TByteArray, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+byteArrayUnref array = liftIO $ do
+    array' <- packGByteArray array
+    g_byte_array_unref array'
+    unrefGByteArray array'
+    return ()
+
+type family ResolveByteArrayMethod (t :: Symbol) (o :: *) :: * where
+    ResolveByteArrayMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveByteArrayMethod t ByteArray, MethodInfo info ByteArray p) => IsLabelProxy t (ByteArray -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveByteArrayMethod t ByteArray, MethodInfo info ByteArray p) => IsLabel t (ByteArray -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Bytes.hs b/GI/GLib/Structs/Bytes.hs
--- a/GI/GLib/Structs/Bytes.hs
+++ b/GI/GLib/Structs/Bytes.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -40,22 +41,27 @@
 
  -- * Methods
 -- ** bytesCompare
+    BytesCompareMethodInfo                  ,
     bytesCompare                            ,
 
 
 -- ** bytesEqual
+    BytesEqualMethodInfo                    ,
     bytesEqual                              ,
 
 
 -- ** bytesGetData
+    BytesGetDataMethodInfo                  ,
     bytesGetData                            ,
 
 
 -- ** bytesGetSize
+    BytesGetSizeMethodInfo                  ,
     bytesGetSize                            ,
 
 
 -- ** bytesHash
+    BytesHashMethodInfo                     ,
     bytesHash                               ,
 
 
@@ -64,6 +70,7 @@
 
 
 -- ** bytesNewFromBytes
+    BytesNewFromBytesMethodInfo             ,
     bytesNewFromBytes                       ,
 
 
@@ -72,18 +79,22 @@
 
 
 -- ** bytesRef
+    BytesRefMethodInfo                      ,
     bytesRef                                ,
 
 
 -- ** bytesUnref
+    BytesUnrefMethodInfo                    ,
     bytesUnref                              ,
 
 
 -- ** bytesUnrefToArray
+    BytesUnrefToArrayMethodInfo             ,
     bytesUnrefToArray                       ,
 
 
 -- ** bytesUnrefToData
+    BytesUnrefToDataMethodInfo              ,
     bytesUnrefToData                        ,
 
 
@@ -113,9 +124,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TInterface "GLib" "Bytes"
 -- throws : False
 -- Skip return : False
@@ -128,8 +138,8 @@
 
 bytesNew ::
     (MonadIO m) =>
-    Maybe (ByteString) ->                   -- data
-    m Bytes
+    Maybe (ByteString)                      -- data_
+    -> m Bytes                              -- result
 bytesNew data_ = liftIO $ do
     let size = case data_ of
             Nothing -> 0
@@ -147,9 +157,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "data", argType = TCArray False (-1) 1 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TInterface "GLib" "Bytes"
 -- throws : False
 -- Skip return : False
@@ -162,8 +171,8 @@
 
 bytesNewTake ::
     (MonadIO m) =>
-    Maybe (ByteString) ->                   -- data
-    m Bytes
+    Maybe (ByteString)                      -- data_
+    -> m Bytes                              -- result
 bytesNewTake data_ = liftIO $ do
     let size = case data_ of
             Nothing -> 0
@@ -180,9 +189,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes2", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -195,9 +203,9 @@
 
 bytesCompare ::
     (MonadIO m) =>
-    Bytes ->                                -- _obj
-    Bytes ->                                -- bytes2
-    m Int32
+    Bytes                                   -- _obj
+    -> Bytes                                -- bytes2
+    -> m Int32                              -- result
 bytesCompare _obj bytes2 = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let bytes2' = unsafeManagedPtrGetPtr bytes2
@@ -206,11 +214,14 @@
     touchManagedPtr bytes2
     return result
 
+data BytesCompareMethodInfo
+instance (signature ~ (Bytes -> m Int32), MonadIO m) => MethodInfo BytesCompareMethodInfo Bytes signature where
+    overloadedMethod _ = bytesCompare
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes2", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -223,9 +234,9 @@
 
 bytesEqual ::
     (MonadIO m) =>
-    Bytes ->                                -- _obj
-    Bytes ->                                -- bytes2
-    m Bool
+    Bytes                                   -- _obj
+    -> Bytes                                -- bytes2
+    -> m Bool                               -- result
 bytesEqual _obj bytes2 = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let bytes2' = unsafeManagedPtrGetPtr bytes2
@@ -235,11 +246,14 @@
     touchManagedPtr bytes2
     return result'
 
+data BytesEqualMethodInfo
+instance (signature ~ (Bytes -> m Bool), MonadIO m) => MethodInfo BytesEqualMethodInfo Bytes signature where
+    overloadedMethod _ = bytesEqual
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- returnType : TCArray False (-1) 1 (TBasicType TUInt8)
 -- throws : False
 -- Skip return : False
@@ -252,8 +266,8 @@
 
 bytesGetData ::
     (MonadIO m) =>
-    Bytes ->                                -- _obj
-    m ByteString
+    Bytes                                   -- _obj
+    -> m ByteString                         -- result
 bytesGetData _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     size <- allocMem :: IO (Ptr Word64)
@@ -265,11 +279,14 @@
     freeMem size
     return result'
 
+data BytesGetDataMethodInfo
+instance (signature ~ (m ByteString), MonadIO m) => MethodInfo BytesGetDataMethodInfo Bytes signature where
+    overloadedMethod _ = bytesGetData
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -281,19 +298,22 @@
 
 bytesGetSize ::
     (MonadIO m) =>
-    Bytes ->                                -- _obj
-    m Word64
+    Bytes                                   -- _obj
+    -> m Word64                             -- result
 bytesGetSize _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_bytes_get_size _obj'
     touchManagedPtr _obj
     return result
 
+data BytesGetSizeMethodInfo
+instance (signature ~ (m Word64), MonadIO m) => MethodInfo BytesGetSizeMethodInfo Bytes signature where
+    overloadedMethod _ = bytesGetSize
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -305,19 +325,22 @@
 
 bytesHash ::
     (MonadIO m) =>
-    Bytes ->                                -- _obj
-    m Word32
+    Bytes                                   -- _obj
+    -> m Word32                             -- result
 bytesHash _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_bytes_hash _obj'
     touchManagedPtr _obj
     return result
 
+data BytesHashMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo BytesHashMethodInfo Bytes signature where
+    overloadedMethod _ = bytesHash
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -331,10 +354,10 @@
 
 bytesNewFromBytes ::
     (MonadIO m) =>
-    Bytes ->                                -- _obj
-    Word64 ->                               -- offset
-    Word64 ->                               -- length
-    m Bytes
+    Bytes                                   -- _obj
+    -> Word64                               -- offset
+    -> Word64                               -- length_
+    -> m Bytes                              -- result
 bytesNewFromBytes _obj offset length_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_bytes_new_from_bytes _obj' offset length_
@@ -343,11 +366,14 @@
     touchManagedPtr _obj
     return result'
 
+data BytesNewFromBytesMethodInfo
+instance (signature ~ (Word64 -> Word64 -> m Bytes), MonadIO m) => MethodInfo BytesNewFromBytesMethodInfo Bytes signature where
+    overloadedMethod _ = bytesNewFromBytes
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -359,8 +385,8 @@
 
 bytesRef ::
     (MonadIO m) =>
-    Bytes ->                                -- _obj
-    m Bytes
+    Bytes                                   -- _obj
+    -> m Bytes                              -- result
 bytesRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_bytes_ref _obj'
@@ -369,11 +395,14 @@
     touchManagedPtr _obj
     return result'
 
+data BytesRefMethodInfo
+instance (signature ~ (m Bytes), MonadIO m) => MethodInfo BytesRefMethodInfo Bytes signature where
+    overloadedMethod _ = bytesRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -385,19 +414,22 @@
 
 bytesUnref ::
     (MonadIO m) =>
-    Bytes ->                                -- _obj
-    m ()
+    Bytes                                   -- _obj
+    -> m ()                                 -- result
 bytesUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_bytes_unref _obj'
     touchManagedPtr _obj
     return ()
 
+data BytesUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo BytesUnrefMethodInfo Bytes signature where
+    overloadedMethod _ = bytesUnref
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -409,8 +441,8 @@
 
 bytesUnrefToArray ::
     (MonadIO m) =>
-    Bytes ->                                -- _obj
-    m ByteString
+    Bytes                                   -- _obj
+    -> m ByteString                         -- result
 bytesUnrefToArray _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_bytes_unref_to_array _obj'
@@ -420,11 +452,14 @@
     touchManagedPtr _obj
     return result'
 
+data BytesUnrefToArrayMethodInfo
+instance (signature ~ (m ByteString), MonadIO m) => MethodInfo BytesUnrefToArrayMethodInfo Bytes signature where
+    overloadedMethod _ = bytesUnrefToArray
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Bytes", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -437,13 +472,38 @@
 
 bytesUnrefToData ::
     (MonadIO m) =>
-    Bytes ->                                -- _obj
-    Word64 ->                               -- size
-    m ()
+    Bytes                                   -- _obj
+    -> Word64                               -- size
+    -> m ()                                 -- result
 bytesUnrefToData _obj size = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_bytes_unref_to_data _obj' size
     touchManagedPtr _obj
     return ()
+
+data BytesUnrefToDataMethodInfo
+instance (signature ~ (Word64 -> m ()), MonadIO m) => MethodInfo BytesUnrefToDataMethodInfo Bytes signature where
+    overloadedMethod _ = bytesUnrefToData
+
+type family ResolveBytesMethod (t :: Symbol) (o :: *) :: * where
+    ResolveBytesMethod "compare" o = BytesCompareMethodInfo
+    ResolveBytesMethod "equal" o = BytesEqualMethodInfo
+    ResolveBytesMethod "hash" o = BytesHashMethodInfo
+    ResolveBytesMethod "newFromBytes" o = BytesNewFromBytesMethodInfo
+    ResolveBytesMethod "ref" o = BytesRefMethodInfo
+    ResolveBytesMethod "unref" o = BytesUnrefMethodInfo
+    ResolveBytesMethod "unrefToArray" o = BytesUnrefToArrayMethodInfo
+    ResolveBytesMethod "unrefToData" o = BytesUnrefToDataMethodInfo
+    ResolveBytesMethod "getData" o = BytesGetDataMethodInfo
+    ResolveBytesMethod "getSize" o = BytesGetSizeMethodInfo
+    ResolveBytesMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveBytesMethod t Bytes, MethodInfo info Bytes p) => IsLabelProxy t (Bytes -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveBytesMethod t Bytes, MethodInfo info Bytes p) => IsLabel t (Bytes -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Bytes.hs-boot b/GI/GLib/Structs/Bytes.hs-boot
--- a/GI/GLib/Structs/Bytes.hs-boot
+++ b/GI/GLib/Structs/Bytes.hs-boot
@@ -9,3 +9,13 @@
 
 newtype Bytes = Bytes (ForeignPtr Bytes)
 instance BoxedObject Bytes where
+data BytesCompareMethodInfo
+data BytesEqualMethodInfo
+data BytesGetDataMethodInfo
+data BytesGetSizeMethodInfo
+data BytesHashMethodInfo
+data BytesNewFromBytesMethodInfo
+data BytesRefMethodInfo
+data BytesUnrefMethodInfo
+data BytesUnrefToArrayMethodInfo
+data BytesUnrefToDataMethodInfo
diff --git a/GI/GLib/Structs/Checksum.hs b/GI/GLib/Structs/Checksum.hs
--- a/GI/GLib/Structs/Checksum.hs
+++ b/GI/GLib/Structs/Checksum.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -19,14 +20,17 @@
 
  -- * Methods
 -- ** checksumCopy
+    ChecksumCopyMethodInfo                  ,
     checksumCopy                            ,
 
 
 -- ** checksumFree
+    ChecksumFreeMethodInfo                  ,
     checksumFree                            ,
 
 
 -- ** checksumGetString
+    ChecksumGetStringMethodInfo             ,
     checksumGetString                       ,
 
 
@@ -35,10 +39,16 @@
 
 
 -- ** checksumReset
+    ChecksumResetMethodInfo                 ,
     checksumReset                           ,
 
 
+-- ** checksumTypeGetLength
+    checksumTypeGetLength                   ,
+
+
 -- ** checksumUpdate
+    ChecksumUpdateMethodInfo                ,
     checksumUpdate                          ,
 
 
@@ -68,9 +78,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -82,20 +91,19 @@
 
 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'
+    ChecksumType                            -- checksumType
+    -> m Checksum                           -- result
+checksumNew checksumType = liftIO $ do
+    let checksumType' = (fromIntegral . fromEnum) checksumType
+    result <- g_checksum_new checksumType'
     checkUnexpectedReturnNULL "g_checksum_new" result
     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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -107,8 +115,8 @@
 
 checksumCopy ::
     (MonadIO m) =>
-    Checksum ->                             -- _obj
-    m Checksum
+    Checksum                                -- _obj
+    -> m Checksum                           -- result
 checksumCopy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_checksum_copy _obj'
@@ -117,11 +125,14 @@
     touchManagedPtr _obj
     return result'
 
+data ChecksumCopyMethodInfo
+instance (signature ~ (m Checksum), MonadIO m) => MethodInfo ChecksumCopyMethodInfo Checksum signature where
+    overloadedMethod _ = checksumCopy
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -133,19 +144,22 @@
 
 checksumFree ::
     (MonadIO m) =>
-    Checksum ->                             -- _obj
-    m ()
+    Checksum                                -- _obj
+    -> m ()                                 -- result
 checksumFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_checksum_free _obj'
     touchManagedPtr _obj
     return ()
 
+data ChecksumFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo ChecksumFreeMethodInfo Checksum signature where
+    overloadedMethod _ = checksumFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -157,8 +171,8 @@
 
 checksumGetString ::
     (MonadIO m) =>
-    Checksum ->                             -- _obj
-    m T.Text
+    Checksum                                -- _obj
+    -> m T.Text                             -- result
 checksumGetString _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_checksum_get_string _obj'
@@ -167,11 +181,14 @@
     touchManagedPtr _obj
     return result'
 
+data ChecksumGetStringMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo ChecksumGetStringMethodInfo Checksum signature where
+    overloadedMethod _ = checksumGetString
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -183,19 +200,22 @@
 
 checksumReset ::
     (MonadIO m) =>
-    Checksum ->                             -- _obj
-    m ()
+    Checksum                                -- _obj
+    -> m ()                                 -- result
 checksumReset _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_checksum_reset _obj'
     touchManagedPtr _obj
     return ()
 
+data ChecksumResetMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo ChecksumResetMethodInfo Checksum signature where
+    overloadedMethod _ = checksumReset
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Checksum", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -209,9 +229,9 @@
 
 checksumUpdate ::
     (MonadIO m) =>
-    Checksum ->                             -- _obj
-    ByteString ->                           -- data
-    m ()
+    Checksum                                -- _obj
+    -> ByteString                           -- data_
+    -> m ()                                 -- result
 checksumUpdate _obj data_ = liftIO $ do
     let length_ = fromIntegral $ B.length data_
     let _obj' = unsafeManagedPtrGetPtr _obj
@@ -220,5 +240,47 @@
     touchManagedPtr _obj
     freeMem data_'
     return ()
+
+data ChecksumUpdateMethodInfo
+instance (signature ~ (ByteString -> m ()), MonadIO m) => MethodInfo ChecksumUpdateMethodInfo Checksum signature where
+    overloadedMethod _ = checksumUpdate
+
+-- method Checksum::type_get_length
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "checksum_type", argType = TInterface "GLib" "ChecksumType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                            -- checksumType
+    -> m Int64                              -- result
+checksumTypeGetLength checksumType = liftIO $ do
+    let checksumType' = (fromIntegral . fromEnum) checksumType
+    result <- g_checksum_type_get_length checksumType'
+    return result
+
+type family ResolveChecksumMethod (t :: Symbol) (o :: *) :: * where
+    ResolveChecksumMethod "copy" o = ChecksumCopyMethodInfo
+    ResolveChecksumMethod "free" o = ChecksumFreeMethodInfo
+    ResolveChecksumMethod "reset" o = ChecksumResetMethodInfo
+    ResolveChecksumMethod "update" o = ChecksumUpdateMethodInfo
+    ResolveChecksumMethod "getString" o = ChecksumGetStringMethodInfo
+    ResolveChecksumMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveChecksumMethod t Checksum, MethodInfo info Checksum p) => IsLabelProxy t (Checksum -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveChecksumMethod t Checksum, MethodInfo info Checksum p) => IsLabel t (Checksum -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Checksum.hs-boot b/GI/GLib/Structs/Checksum.hs-boot
--- a/GI/GLib/Structs/Checksum.hs-boot
+++ b/GI/GLib/Structs/Checksum.hs-boot
@@ -9,3 +9,8 @@
 
 newtype Checksum = Checksum (ForeignPtr Checksum)
 instance BoxedObject Checksum where
+data ChecksumCopyMethodInfo
+data ChecksumFreeMethodInfo
+data ChecksumGetStringMethodInfo
+data ChecksumResetMethodInfo
+data ChecksumUpdateMethodInfo
diff --git a/GI/GLib/Structs/Cond.hs b/GI/GLib/Structs/Cond.hs
--- a/GI/GLib/Structs/Cond.hs
+++ b/GI/GLib/Structs/Cond.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -76,31 +77,38 @@
 
 -- * Exported types
     Cond(..)                                ,
+    newZeroCond                             ,
     noCond                                  ,
 
 
  -- * Methods
 -- ** condBroadcast
+    CondBroadcastMethodInfo                 ,
     condBroadcast                           ,
 
 
 -- ** condClear
+    CondClearMethodInfo                     ,
     condClear                               ,
 
 
 -- ** condInit
+    CondInitMethodInfo                      ,
     condInit                                ,
 
 
 -- ** condSignal
+    CondSignalMethodInfo                    ,
     condSignal                              ,
 
 
 -- ** condWait
+    CondWaitMethodInfo                      ,
     condWait                                ,
 
 
 -- ** condWaitUntil
+    CondWaitUntilMethodInfo                 ,
     condWaitUntil                           ,
 
 
@@ -119,14 +127,17 @@
 import GI.GLib.Callbacks
 
 newtype Cond = Cond (ForeignPtr Cond)
+-- | Construct a `Cond` struct initialized to zero.
+newZeroCond :: MonadIO m => m Cond
+newZeroCond = liftIO $ callocBytes 16 >>= wrapPtr 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -138,19 +149,22 @@
 
 condBroadcast ::
     (MonadIO m) =>
-    Cond ->                                 -- _obj
-    m ()
+    Cond                                    -- _obj
+    -> m ()                                 -- result
 condBroadcast _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_cond_broadcast _obj'
     touchManagedPtr _obj
     return ()
 
+data CondBroadcastMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo CondBroadcastMethodInfo Cond signature where
+    overloadedMethod _ = condBroadcast
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -162,19 +176,22 @@
 
 condClear ::
     (MonadIO m) =>
-    Cond ->                                 -- _obj
-    m ()
+    Cond                                    -- _obj
+    -> m ()                                 -- result
 condClear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_cond_clear _obj'
     touchManagedPtr _obj
     return ()
 
+data CondClearMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo CondClearMethodInfo Cond signature where
+    overloadedMethod _ = condClear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -186,19 +203,22 @@
 
 condInit ::
     (MonadIO m) =>
-    Cond ->                                 -- _obj
-    m ()
+    Cond                                    -- _obj
+    -> m ()                                 -- result
 condInit _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_cond_init _obj'
     touchManagedPtr _obj
     return ()
 
+data CondInitMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo CondInitMethodInfo Cond signature where
+    overloadedMethod _ = condInit
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -210,19 +230,22 @@
 
 condSignal ::
     (MonadIO m) =>
-    Cond ->                                 -- _obj
-    m ()
+    Cond                                    -- _obj
+    -> m ()                                 -- result
 condSignal _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_cond_signal _obj'
     touchManagedPtr _obj
     return ()
 
+data CondSignalMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo CondSignalMethodInfo Cond signature where
+    overloadedMethod _ = condSignal
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mutex", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -235,9 +258,9 @@
 
 condWait ::
     (MonadIO m) =>
-    Cond ->                                 -- _obj
-    Mutex ->                                -- mutex
-    m ()
+    Cond                                    -- _obj
+    -> Mutex                                -- mutex
+    -> m ()                                 -- result
 condWait _obj mutex = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let mutex' = unsafeManagedPtrGetPtr mutex
@@ -246,11 +269,14 @@
     touchManagedPtr mutex
     return ()
 
+data CondWaitMethodInfo
+instance (signature ~ (Mutex -> m ()), MonadIO m) => MethodInfo CondWaitMethodInfo Cond signature where
+    overloadedMethod _ = condWait
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mutex", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -264,17 +290,38 @@
 
 condWaitUntil ::
     (MonadIO m) =>
-    Cond ->                                 -- _obj
-    Mutex ->                                -- mutex
-    Int64 ->                                -- end_time
-    m Bool
-condWaitUntil _obj mutex end_time = liftIO $ do
+    Cond                                    -- _obj
+    -> Mutex                                -- mutex
+    -> Int64                                -- endTime
+    -> m Bool                               -- result
+condWaitUntil _obj mutex endTime = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let mutex' = unsafeManagedPtrGetPtr mutex
-    result <- g_cond_wait_until _obj' mutex' end_time
+    result <- g_cond_wait_until _obj' mutex' endTime
     let result' = (/= 0) result
     touchManagedPtr _obj
     touchManagedPtr mutex
     return result'
+
+data CondWaitUntilMethodInfo
+instance (signature ~ (Mutex -> Int64 -> m Bool), MonadIO m) => MethodInfo CondWaitUntilMethodInfo Cond signature where
+    overloadedMethod _ = condWaitUntil
+
+type family ResolveCondMethod (t :: Symbol) (o :: *) :: * where
+    ResolveCondMethod "broadcast" o = CondBroadcastMethodInfo
+    ResolveCondMethod "clear" o = CondClearMethodInfo
+    ResolveCondMethod "init" o = CondInitMethodInfo
+    ResolveCondMethod "signal" o = CondSignalMethodInfo
+    ResolveCondMethod "wait" o = CondWaitMethodInfo
+    ResolveCondMethod "waitUntil" o = CondWaitUntilMethodInfo
+    ResolveCondMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveCondMethod t Cond, MethodInfo info Cond p) => IsLabelProxy t (Cond -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveCondMethod t Cond, MethodInfo info Cond p) => IsLabel t (Cond -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Cond.hs-boot b/GI/GLib/Structs/Cond.hs-boot
--- a/GI/GLib/Structs/Cond.hs-boot
+++ b/GI/GLib/Structs/Cond.hs-boot
@@ -8,3 +8,9 @@
 import qualified Data.Map as Map
 
 newtype Cond = Cond (ForeignPtr Cond)
+data CondBroadcastMethodInfo
+data CondClearMethodInfo
+data CondInitMethodInfo
+data CondSignalMethodInfo
+data CondWaitMethodInfo
+data CondWaitUntilMethodInfo
diff --git a/GI/GLib/Structs/Data.hs b/GI/GLib/Structs/Data.hs
--- a/GI/GLib/Structs/Data.hs
+++ b/GI/GLib/Structs/Data.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -32,5 +33,16 @@
 newtype Data = Data (ForeignPtr Data)
 noData :: Maybe Data
 noData = Nothing
+
+type family ResolveDataMethod (t :: Symbol) (o :: *) :: * where
+    ResolveDataMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDataMethod t Data, MethodInfo info Data p) => IsLabelProxy t (Data -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDataMethod t Data, MethodInfo info Data p) => IsLabel t (Data -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Date.hs b/GI/GLib/Structs/Date.hs
--- a/GI/GLib/Structs/Date.hs
+++ b/GI/GLib/Structs/Date.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -22,86 +23,122 @@
 
 -- * Exported types
     Date(..)                                ,
+    newZeroDate                             ,
     noDate                                  ,
 
 
  -- * Methods
 -- ** dateAddDays
+    DateAddDaysMethodInfo                   ,
     dateAddDays                             ,
 
 
 -- ** dateAddMonths
+    DateAddMonthsMethodInfo                 ,
     dateAddMonths                           ,
 
 
 -- ** dateAddYears
+    DateAddYearsMethodInfo                  ,
     dateAddYears                            ,
 
 
 -- ** dateClamp
+    DateClampMethodInfo                     ,
     dateClamp                               ,
 
 
 -- ** dateClear
+    DateClearMethodInfo                     ,
     dateClear                               ,
 
 
 -- ** dateCompare
+    DateCompareMethodInfo                   ,
     dateCompare                             ,
 
 
 -- ** dateDaysBetween
+    DateDaysBetweenMethodInfo               ,
     dateDaysBetween                         ,
 
 
 -- ** dateFree
+    DateFreeMethodInfo                      ,
     dateFree                                ,
 
 
 -- ** dateGetDay
+    DateGetDayMethodInfo                    ,
     dateGetDay                              ,
 
 
 -- ** dateGetDayOfYear
+    DateGetDayOfYearMethodInfo              ,
     dateGetDayOfYear                        ,
 
 
+-- ** dateGetDaysInMonth
+    dateGetDaysInMonth                      ,
+
+
 -- ** dateGetIso8601WeekOfYear
+    DateGetIso8601WeekOfYearMethodInfo      ,
     dateGetIso8601WeekOfYear                ,
 
 
 -- ** dateGetJulian
+    DateGetJulianMethodInfo                 ,
     dateGetJulian                           ,
 
 
 -- ** dateGetMondayWeekOfYear
+    DateGetMondayWeekOfYearMethodInfo       ,
     dateGetMondayWeekOfYear                 ,
 
 
+-- ** dateGetMondayWeeksInYear
+    dateGetMondayWeeksInYear                ,
+
+
 -- ** dateGetMonth
+    DateGetMonthMethodInfo                  ,
     dateGetMonth                            ,
 
 
 -- ** dateGetSundayWeekOfYear
+    DateGetSundayWeekOfYearMethodInfo       ,
     dateGetSundayWeekOfYear                 ,
 
 
+-- ** dateGetSundayWeeksInYear
+    dateGetSundayWeeksInYear                ,
+
+
 -- ** dateGetWeekday
+    DateGetWeekdayMethodInfo                ,
     dateGetWeekday                          ,
 
 
 -- ** dateGetYear
+    DateGetYearMethodInfo                   ,
     dateGetYear                             ,
 
 
 -- ** dateIsFirstOfMonth
+    DateIsFirstOfMonthMethodInfo            ,
     dateIsFirstOfMonth                      ,
 
 
 -- ** dateIsLastOfMonth
+    DateIsLastOfMonthMethodInfo             ,
     dateIsLastOfMonth                       ,
 
 
+-- ** dateIsLeapYear
+    dateIsLeapYear                          ,
+
+
 -- ** dateNew
     dateNew                                 ,
 
@@ -115,67 +152,110 @@
 
 
 -- ** dateOrder
+    DateOrderMethodInfo                     ,
     dateOrder                               ,
 
 
 -- ** dateSetDay
+    DateSetDayMethodInfo                    ,
     dateSetDay                              ,
 
 
 -- ** dateSetDmy
+    DateSetDmyMethodInfo                    ,
     dateSetDmy                              ,
 
 
 -- ** dateSetJulian
+    DateSetJulianMethodInfo                 ,
     dateSetJulian                           ,
 
 
 -- ** dateSetMonth
+    DateSetMonthMethodInfo                  ,
     dateSetMonth                            ,
 
 
 -- ** dateSetParse
+    DateSetParseMethodInfo                  ,
     dateSetParse                            ,
 
 
 -- ** dateSetTime
+    DateSetTimeMethodInfo                   ,
     dateSetTime                             ,
 
 
 -- ** dateSetTimeT
+    DateSetTimeTMethodInfo                  ,
     dateSetTimeT                            ,
 
 
 -- ** dateSetTimeVal
+    DateSetTimeValMethodInfo                ,
     dateSetTimeVal                          ,
 
 
 -- ** dateSetYear
+    DateSetYearMethodInfo                   ,
     dateSetYear                             ,
 
 
+-- ** dateStrftime
+    dateStrftime                            ,
+
+
 -- ** dateSubtractDays
+    DateSubtractDaysMethodInfo              ,
     dateSubtractDays                        ,
 
 
 -- ** dateSubtractMonths
+    DateSubtractMonthsMethodInfo            ,
     dateSubtractMonths                      ,
 
 
 -- ** dateSubtractYears
+    DateSubtractYearsMethodInfo             ,
     dateSubtractYears                       ,
 
 
 -- ** dateToStructTm
+    DateToStructTmMethodInfo                ,
     dateToStructTm                          ,
 
 
 -- ** dateValid
+    DateValidMethodInfo                     ,
     dateValid                               ,
 
 
+-- ** dateValidDay
+    dateValidDay                            ,
 
 
+-- ** dateValidDmy
+    dateValidDmy                            ,
+
+
+-- ** dateValidJulian
+    dateValidJulian                         ,
+
+
+-- ** dateValidMonth
+    dateValidMonth                          ,
+
+
+-- ** dateValidWeekday
+    dateValidWeekday                        ,
+
+
+-- ** dateValidYear
+    dateValidYear                           ,
+
+
+
+
  -- * Properties
 -- ** Day
     dateReadDay                             ,
@@ -222,6 +302,10 @@
 instance BoxedObject Date where
     boxedType _ = c_g_date_get_type
 
+-- | Construct a `Date` struct initialized to zero.
+newZeroDate :: MonadIO m => m Date
+newZeroDate = liftIO $ callocBoxedBytes 24 >>= wrapBoxed Date
+
 noDate :: Maybe Date
 noDate = Nothing
 
@@ -259,7 +343,6 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "GLib" "Date"
 -- throws : False
 -- Skip return : False
@@ -270,7 +353,7 @@
 
 dateNew ::
     (MonadIO m) =>
-    m Date
+    m Date                                  -- result
 dateNew  = liftIO $ do
     result <- g_date_new
     checkUnexpectedReturnNULL "g_date_new" result
@@ -279,9 +362,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -295,10 +377,10 @@
 
 dateNewDmy ::
     (MonadIO m) =>
-    Word8 ->                                -- day
-    DateMonth ->                            -- month
-    Word16 ->                               -- year
-    m Date
+    Word8                                   -- day
+    -> DateMonth                            -- month
+    -> Word16                               -- year
+    -> m Date                               -- result
 dateNewDmy day month year = liftIO $ do
     let month' = (fromIntegral . fromEnum) month
     result <- g_date_new_dmy day month' year
@@ -308,9 +390,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "julian_day", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -322,19 +403,18 @@
 
 dateNewJulian ::
     (MonadIO m) =>
-    Word32 ->                               -- julian_day
-    m Date
-dateNewJulian julian_day = liftIO $ do
-    result <- g_date_new_julian julian_day
+    Word32                                  -- julianDay
+    -> m Date                               -- result
+dateNewJulian julianDay = liftIO $ do
+    result <- g_date_new_julian julianDay
     checkUnexpectedReturnNULL "g_date_new_julian" result
     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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_days", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -347,20 +427,23 @@
 
 dateAddDays ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word32 ->                               -- n_days
-    m ()
-dateAddDays _obj n_days = liftIO $ do
+    Date                                    -- _obj
+    -> Word32                               -- nDays
+    -> m ()                                 -- result
+dateAddDays _obj nDays = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_date_add_days _obj' n_days
+    g_date_add_days _obj' nDays
     touchManagedPtr _obj
     return ()
 
+data DateAddDaysMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo DateAddDaysMethodInfo Date signature where
+    overloadedMethod _ = dateAddDays
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_months", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -373,20 +456,23 @@
 
 dateAddMonths ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word32 ->                               -- n_months
-    m ()
-dateAddMonths _obj n_months = liftIO $ do
+    Date                                    -- _obj
+    -> Word32                               -- nMonths
+    -> m ()                                 -- result
+dateAddMonths _obj nMonths = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_date_add_months _obj' n_months
+    g_date_add_months _obj' nMonths
     touchManagedPtr _obj
     return ()
 
+data DateAddMonthsMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo DateAddMonthsMethodInfo Date signature where
+    overloadedMethod _ = dateAddMonths
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_years", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -399,20 +485,23 @@
 
 dateAddYears ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word32 ->                               -- n_years
-    m ()
-dateAddYears _obj n_years = liftIO $ do
+    Date                                    -- _obj
+    -> Word32                               -- nYears
+    -> m ()                                 -- result
+dateAddYears _obj nYears = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_date_add_years _obj' n_years
+    g_date_add_years _obj' nYears
     touchManagedPtr _obj
     return ()
 
+data DateAddYearsMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo DateAddYearsMethodInfo Date signature where
+    overloadedMethod _ = dateAddYears
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "min_date", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_date", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -426,25 +515,28 @@
 
 dateClamp ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Date ->                                 -- min_date
-    Date ->                                 -- max_date
-    m ()
-dateClamp _obj min_date max_date = liftIO $ do
+    Date                                    -- _obj
+    -> Date                                 -- minDate
+    -> Date                                 -- maxDate
+    -> m ()                                 -- result
+dateClamp _obj minDate maxDate = 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'
+    let minDate' = unsafeManagedPtrGetPtr minDate
+    let maxDate' = unsafeManagedPtrGetPtr maxDate
+    g_date_clamp _obj' minDate' maxDate'
     touchManagedPtr _obj
-    touchManagedPtr min_date
-    touchManagedPtr max_date
+    touchManagedPtr minDate
+    touchManagedPtr maxDate
     return ()
 
+data DateClampMethodInfo
+instance (signature ~ (Date -> Date -> m ()), MonadIO m) => MethodInfo DateClampMethodInfo Date signature where
+    overloadedMethod _ = dateClamp
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_dates", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -457,20 +549,23 @@
 
 dateClear ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word32 ->                               -- n_dates
-    m ()
-dateClear _obj n_dates = liftIO $ do
+    Date                                    -- _obj
+    -> Word32                               -- nDates
+    -> m ()                                 -- result
+dateClear _obj nDates = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_date_clear _obj' n_dates
+    g_date_clear _obj' nDates
     touchManagedPtr _obj
     return ()
 
+data DateClearMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo DateClearMethodInfo Date signature where
+    overloadedMethod _ = dateClear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rhs", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -483,9 +578,9 @@
 
 dateCompare ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Date ->                                 -- rhs
-    m Int32
+    Date                                    -- _obj
+    -> Date                                 -- rhs
+    -> m Int32                              -- result
 dateCompare _obj rhs = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let rhs' = unsafeManagedPtrGetPtr rhs
@@ -494,11 +589,14 @@
     touchManagedPtr rhs
     return result
 
+data DateCompareMethodInfo
+instance (signature ~ (Date -> m Int32), MonadIO m) => MethodInfo DateCompareMethodInfo Date signature where
+    overloadedMethod _ = dateCompare
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "date2", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -511,9 +609,9 @@
 
 dateDaysBetween ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Date ->                                 -- date2
-    m Int32
+    Date                                    -- _obj
+    -> Date                                 -- date2
+    -> m Int32                              -- result
 dateDaysBetween _obj date2 = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let date2' = unsafeManagedPtrGetPtr date2
@@ -522,11 +620,14 @@
     touchManagedPtr date2
     return result
 
+data DateDaysBetweenMethodInfo
+instance (signature ~ (Date -> m Int32), MonadIO m) => MethodInfo DateDaysBetweenMethodInfo Date signature where
+    overloadedMethod _ = dateDaysBetween
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -538,19 +639,22 @@
 
 dateFree ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m ()
+    Date                                    -- _obj
+    -> m ()                                 -- result
 dateFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_date_free _obj'
     touchManagedPtr _obj
     return ()
 
+data DateFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo DateFreeMethodInfo Date signature where
+    overloadedMethod _ = dateFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -562,19 +666,22 @@
 
 dateGetDay ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m Word8
+    Date                                    -- _obj
+    -> m Word8                              -- result
 dateGetDay _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_get_day _obj'
     touchManagedPtr _obj
     return result
 
+data DateGetDayMethodInfo
+instance (signature ~ (m Word8), MonadIO m) => MethodInfo DateGetDayMethodInfo Date signature where
+    overloadedMethod _ = dateGetDay
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -586,19 +693,22 @@
 
 dateGetDayOfYear ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m Word32
+    Date                                    -- _obj
+    -> m Word32                             -- result
 dateGetDayOfYear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_get_day_of_year _obj'
     touchManagedPtr _obj
     return result
 
+data DateGetDayOfYearMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo DateGetDayOfYearMethodInfo Date signature where
+    overloadedMethod _ = dateGetDayOfYear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -610,19 +720,22 @@
 
 dateGetIso8601WeekOfYear ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m Word32
+    Date                                    -- _obj
+    -> m Word32                             -- result
 dateGetIso8601WeekOfYear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_get_iso8601_week_of_year _obj'
     touchManagedPtr _obj
     return result
 
+data DateGetIso8601WeekOfYearMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo DateGetIso8601WeekOfYearMethodInfo Date signature where
+    overloadedMethod _ = dateGetIso8601WeekOfYear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -634,19 +747,22 @@
 
 dateGetJulian ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m Word32
+    Date                                    -- _obj
+    -> m Word32                             -- result
 dateGetJulian _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_get_julian _obj'
     touchManagedPtr _obj
     return result
 
+data DateGetJulianMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo DateGetJulianMethodInfo Date signature where
+    overloadedMethod _ = dateGetJulian
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -658,19 +774,22 @@
 
 dateGetMondayWeekOfYear ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m Word32
+    Date                                    -- _obj
+    -> m Word32                             -- result
 dateGetMondayWeekOfYear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_get_monday_week_of_year _obj'
     touchManagedPtr _obj
     return result
 
+data DateGetMondayWeekOfYearMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo DateGetMondayWeekOfYearMethodInfo Date signature where
+    overloadedMethod _ = dateGetMondayWeekOfYear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -682,8 +801,8 @@
 
 dateGetMonth ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m DateMonth
+    Date                                    -- _obj
+    -> m DateMonth                          -- result
 dateGetMonth _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_get_month _obj'
@@ -691,11 +810,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateGetMonthMethodInfo
+instance (signature ~ (m DateMonth), MonadIO m) => MethodInfo DateGetMonthMethodInfo Date signature where
+    overloadedMethod _ = dateGetMonth
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -707,19 +829,22 @@
 
 dateGetSundayWeekOfYear ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m Word32
+    Date                                    -- _obj
+    -> m Word32                             -- result
 dateGetSundayWeekOfYear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_get_sunday_week_of_year _obj'
     touchManagedPtr _obj
     return result
 
+data DateGetSundayWeekOfYearMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo DateGetSundayWeekOfYearMethodInfo Date signature where
+    overloadedMethod _ = dateGetSundayWeekOfYear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -731,8 +856,8 @@
 
 dateGetWeekday ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m DateWeekday
+    Date                                    -- _obj
+    -> m DateWeekday                        -- result
 dateGetWeekday _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_get_weekday _obj'
@@ -740,11 +865,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateGetWeekdayMethodInfo
+instance (signature ~ (m DateWeekday), MonadIO m) => MethodInfo DateGetWeekdayMethodInfo Date signature where
+    overloadedMethod _ = dateGetWeekday
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -756,19 +884,22 @@
 
 dateGetYear ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m Word16
+    Date                                    -- _obj
+    -> m Word16                             -- result
 dateGetYear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_get_year _obj'
     touchManagedPtr _obj
     return result
 
+data DateGetYearMethodInfo
+instance (signature ~ (m Word16), MonadIO m) => MethodInfo DateGetYearMethodInfo Date signature where
+    overloadedMethod _ = dateGetYear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -780,8 +911,8 @@
 
 dateIsFirstOfMonth ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m Bool
+    Date                                    -- _obj
+    -> m Bool                               -- result
 dateIsFirstOfMonth _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_is_first_of_month _obj'
@@ -789,11 +920,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateIsFirstOfMonthMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo DateIsFirstOfMonthMethodInfo Date signature where
+    overloadedMethod _ = dateIsFirstOfMonth
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -805,8 +939,8 @@
 
 dateIsLastOfMonth ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m Bool
+    Date                                    -- _obj
+    -> m Bool                               -- result
 dateIsLastOfMonth _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_is_last_of_month _obj'
@@ -814,11 +948,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateIsLastOfMonthMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo DateIsLastOfMonthMethodInfo Date signature where
+    overloadedMethod _ = dateIsLastOfMonth
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "date2", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -831,9 +968,9 @@
 
 dateOrder ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Date ->                                 -- date2
-    m ()
+    Date                                    -- _obj
+    -> Date                                 -- date2
+    -> m ()                                 -- result
 dateOrder _obj date2 = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let date2' = unsafeManagedPtrGetPtr date2
@@ -842,11 +979,14 @@
     touchManagedPtr date2
     return ()
 
+data DateOrderMethodInfo
+instance (signature ~ (Date -> m ()), MonadIO m) => MethodInfo DateOrderMethodInfo Date signature where
+    overloadedMethod _ = dateOrder
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -859,20 +999,23 @@
 
 dateSetDay ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word8 ->                                -- day
-    m ()
+    Date                                    -- _obj
+    -> Word8                                -- day
+    -> m ()                                 -- result
 dateSetDay _obj day = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_date_set_day _obj' day
     touchManagedPtr _obj
     return ()
 
+data DateSetDayMethodInfo
+instance (signature ~ (Word8 -> m ()), MonadIO m) => MethodInfo DateSetDayMethodInfo Date signature where
+    overloadedMethod _ = dateSetDay
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -887,11 +1030,11 @@
 
 dateSetDmy ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word8 ->                                -- day
-    DateMonth ->                            -- month
-    Word16 ->                               -- y
-    m ()
+    Date                                    -- _obj
+    -> Word8                                -- day
+    -> DateMonth                            -- month
+    -> Word16                               -- y
+    -> m ()                                 -- result
 dateSetDmy _obj day month y = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let month' = (fromIntegral . fromEnum) month
@@ -899,11 +1042,14 @@
     touchManagedPtr _obj
     return ()
 
+data DateSetDmyMethodInfo
+instance (signature ~ (Word8 -> DateMonth -> Word16 -> m ()), MonadIO m) => MethodInfo DateSetDmyMethodInfo Date signature where
+    overloadedMethod _ = dateSetDmy
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "julian_date", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -916,20 +1062,23 @@
 
 dateSetJulian ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word32 ->                               -- julian_date
-    m ()
-dateSetJulian _obj julian_date = liftIO $ do
+    Date                                    -- _obj
+    -> Word32                               -- julianDate
+    -> m ()                                 -- result
+dateSetJulian _obj julianDate = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_date_set_julian _obj' julian_date
+    g_date_set_julian _obj' julianDate
     touchManagedPtr _obj
     return ()
 
+data DateSetJulianMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo DateSetJulianMethodInfo Date signature where
+    overloadedMethod _ = dateSetJulian
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -942,9 +1091,9 @@
 
 dateSetMonth ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    DateMonth ->                            -- month
-    m ()
+    Date                                    -- _obj
+    -> DateMonth                            -- month
+    -> m ()                                 -- result
 dateSetMonth _obj month = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let month' = (fromIntegral . fromEnum) month
@@ -952,11 +1101,14 @@
     touchManagedPtr _obj
     return ()
 
+data DateSetMonthMethodInfo
+instance (signature ~ (DateMonth -> m ()), MonadIO m) => MethodInfo DateSetMonthMethodInfo Date signature where
+    overloadedMethod _ = dateSetMonth
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -969,9 +1121,9 @@
 
 dateSetParse ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    T.Text ->                               -- str
-    m ()
+    Date                                    -- _obj
+    -> T.Text                               -- str
+    -> m ()                                 -- result
 dateSetParse _obj str = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     str' <- textToCString str
@@ -980,11 +1132,14 @@
     freeMem str'
     return ()
 
+data DateSetParseMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo DateSetParseMethodInfo Date signature where
+    overloadedMethod _ = dateSetParse
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -997,20 +1152,23 @@
 {-# 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
+    Date                                    -- _obj
+    -> Int32                                -- time
+    -> m ()                                 -- result
+dateSetTime _obj time = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_date_set_time _obj' time_
+    g_date_set_time _obj' time
     touchManagedPtr _obj
     return ()
 
+data DateSetTimeMethodInfo
+instance (signature ~ (Int32 -> m ()), MonadIO m) => MethodInfo DateSetTimeMethodInfo Date signature where
+    overloadedMethod _ = dateSetTime
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timet", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1023,20 +1181,23 @@
 
 dateSetTimeT ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Int64 ->                                -- timet
-    m ()
+    Date                                    -- _obj
+    -> Int64                                -- timet
+    -> m ()                                 -- result
 dateSetTimeT _obj timet = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_date_set_time_t _obj' timet
     touchManagedPtr _obj
     return ()
 
+data DateSetTimeTMethodInfo
+instance (signature ~ (Int64 -> m ()), MonadIO m) => MethodInfo DateSetTimeTMethodInfo Date signature where
+    overloadedMethod _ = dateSetTimeT
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeval", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1049,9 +1210,9 @@
 
 dateSetTimeVal ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    TimeVal ->                              -- timeval
-    m ()
+    Date                                    -- _obj
+    -> TimeVal                              -- timeval
+    -> m ()                                 -- result
 dateSetTimeVal _obj timeval = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let timeval' = unsafeManagedPtrGetPtr timeval
@@ -1060,11 +1221,14 @@
     touchManagedPtr timeval
     return ()
 
+data DateSetTimeValMethodInfo
+instance (signature ~ (TimeVal -> m ()), MonadIO m) => MethodInfo DateSetTimeValMethodInfo Date signature where
+    overloadedMethod _ = dateSetTimeVal
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1077,20 +1241,23 @@
 
 dateSetYear ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word16 ->                               -- year
-    m ()
+    Date                                    -- _obj
+    -> Word16                               -- year
+    -> m ()                                 -- result
 dateSetYear _obj year = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_date_set_year _obj' year
     touchManagedPtr _obj
     return ()
 
+data DateSetYearMethodInfo
+instance (signature ~ (Word16 -> m ()), MonadIO m) => MethodInfo DateSetYearMethodInfo Date signature where
+    overloadedMethod _ = dateSetYear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_days", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1103,20 +1270,23 @@
 
 dateSubtractDays ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word32 ->                               -- n_days
-    m ()
-dateSubtractDays _obj n_days = liftIO $ do
+    Date                                    -- _obj
+    -> Word32                               -- nDays
+    -> m ()                                 -- result
+dateSubtractDays _obj nDays = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_date_subtract_days _obj' n_days
+    g_date_subtract_days _obj' nDays
     touchManagedPtr _obj
     return ()
 
+data DateSubtractDaysMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo DateSubtractDaysMethodInfo Date signature where
+    overloadedMethod _ = dateSubtractDays
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_months", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1129,20 +1299,23 @@
 
 dateSubtractMonths ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word32 ->                               -- n_months
-    m ()
-dateSubtractMonths _obj n_months = liftIO $ do
+    Date                                    -- _obj
+    -> Word32                               -- nMonths
+    -> m ()                                 -- result
+dateSubtractMonths _obj nMonths = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_date_subtract_months _obj' n_months
+    g_date_subtract_months _obj' nMonths
     touchManagedPtr _obj
     return ()
 
+data DateSubtractMonthsMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo DateSubtractMonthsMethodInfo Date signature where
+    overloadedMethod _ = dateSubtractMonths
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_years", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1155,20 +1328,23 @@
 
 dateSubtractYears ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Word32 ->                               -- n_years
-    m ()
-dateSubtractYears _obj n_years = liftIO $ do
+    Date                                    -- _obj
+    -> Word32                               -- nYears
+    -> m ()                                 -- result
+dateSubtractYears _obj nYears = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_date_subtract_years _obj' n_years
+    g_date_subtract_years _obj' nYears
     touchManagedPtr _obj
     return ()
 
+data DateSubtractYearsMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo DateSubtractYearsMethodInfo Date signature where
+    overloadedMethod _ = dateSubtractYears
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tm", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1181,20 +1357,23 @@
 
 dateToStructTm ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    Ptr () ->                               -- tm
-    m ()
+    Date                                    -- _obj
+    -> Ptr ()                               -- tm
+    -> m ()                                 -- result
 dateToStructTm _obj tm = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_date_to_struct_tm _obj' tm
     touchManagedPtr _obj
     return ()
 
+data DateToStructTmMethodInfo
+instance (signature ~ (Ptr () -> m ()), MonadIO m) => MethodInfo DateToStructTmMethodInfo Date signature where
+    overloadedMethod _ = dateToStructTm
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1206,13 +1385,322 @@
 
 dateValid ::
     (MonadIO m) =>
-    Date ->                                 -- _obj
-    m Bool
+    Date                                    -- _obj
+    -> m Bool                               -- result
 dateValid _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_valid _obj'
     let result' = (/= 0) result
     touchManagedPtr _obj
     return result'
+
+data DateValidMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo DateValidMethodInfo Date signature where
+    overloadedMethod _ = dateValid
+
+-- method Date::get_days_in_month
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+dateGetDaysInMonth month year = liftIO $ do
+    let month' = (fromIntegral . fromEnum) month
+    result <- g_date_get_days_in_month month' year
+    return result
+
+-- method Date::get_monday_weeks_in_year
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+dateGetMondayWeeksInYear year = liftIO $ do
+    result <- g_date_get_monday_weeks_in_year year
+    return result
+
+-- method Date::get_sunday_weeks_in_year
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+dateGetSundayWeeksInYear year = liftIO $ do
+    result <- g_date_get_sunday_weeks_in_year year
+    return result
+
+-- method Date::is_leap_year
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+dateIsLeapYear year = liftIO $ do
+    result <- g_date_is_leap_year year
+    let result' = (/= 0) result
+    return result'
+
+-- method Date::strftime
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "s", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "slen", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "date", argType = TInterface "GLib" "Date", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+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
+
+-- method Date::valid_day
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+dateValidDay day = liftIO $ do
+    result <- g_date_valid_day day
+    let result' = (/= 0) result
+    return result'
+
+-- method Date::valid_dmy
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "day", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+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'
+
+-- method Date::valid_julian
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "julian_date", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- julianDate
+    -> m Bool                               -- result
+dateValidJulian julianDate = liftIO $ do
+    result <- g_date_valid_julian julianDate
+    let result' = (/= 0) result
+    return result'
+
+-- method Date::valid_month
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "month", argType = TInterface "GLib" "DateMonth", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+dateValidMonth month = liftIO $ do
+    let month' = (fromIntegral . fromEnum) month
+    result <- g_date_valid_month month'
+    let result' = (/= 0) result
+    return result'
+
+-- method Date::valid_weekday
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "weekday", argType = TInterface "GLib" "DateWeekday", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+dateValidWeekday weekday = liftIO $ do
+    let weekday' = (fromIntegral . fromEnum) weekday
+    result <- g_date_valid_weekday weekday'
+    let result' = (/= 0) result
+    return result'
+
+-- method Date::valid_year
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "year", argType = TBasicType TUInt16, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+dateValidYear year = liftIO $ do
+    result <- g_date_valid_year year
+    let result' = (/= 0) result
+    return result'
+
+type family ResolveDateMethod (t :: Symbol) (o :: *) :: * where
+    ResolveDateMethod "addDays" o = DateAddDaysMethodInfo
+    ResolveDateMethod "addMonths" o = DateAddMonthsMethodInfo
+    ResolveDateMethod "addYears" o = DateAddYearsMethodInfo
+    ResolveDateMethod "clamp" o = DateClampMethodInfo
+    ResolveDateMethod "clear" o = DateClearMethodInfo
+    ResolveDateMethod "compare" o = DateCompareMethodInfo
+    ResolveDateMethod "daysBetween" o = DateDaysBetweenMethodInfo
+    ResolveDateMethod "free" o = DateFreeMethodInfo
+    ResolveDateMethod "isFirstOfMonth" o = DateIsFirstOfMonthMethodInfo
+    ResolveDateMethod "isLastOfMonth" o = DateIsLastOfMonthMethodInfo
+    ResolveDateMethod "order" o = DateOrderMethodInfo
+    ResolveDateMethod "subtractDays" o = DateSubtractDaysMethodInfo
+    ResolveDateMethod "subtractMonths" o = DateSubtractMonthsMethodInfo
+    ResolveDateMethod "subtractYears" o = DateSubtractYearsMethodInfo
+    ResolveDateMethod "toStructTm" o = DateToStructTmMethodInfo
+    ResolveDateMethod "valid" o = DateValidMethodInfo
+    ResolveDateMethod "getDay" o = DateGetDayMethodInfo
+    ResolveDateMethod "getDayOfYear" o = DateGetDayOfYearMethodInfo
+    ResolveDateMethod "getIso8601WeekOfYear" o = DateGetIso8601WeekOfYearMethodInfo
+    ResolveDateMethod "getJulian" o = DateGetJulianMethodInfo
+    ResolveDateMethod "getMondayWeekOfYear" o = DateGetMondayWeekOfYearMethodInfo
+    ResolveDateMethod "getMonth" o = DateGetMonthMethodInfo
+    ResolveDateMethod "getSundayWeekOfYear" o = DateGetSundayWeekOfYearMethodInfo
+    ResolveDateMethod "getWeekday" o = DateGetWeekdayMethodInfo
+    ResolveDateMethod "getYear" o = DateGetYearMethodInfo
+    ResolveDateMethod "setDay" o = DateSetDayMethodInfo
+    ResolveDateMethod "setDmy" o = DateSetDmyMethodInfo
+    ResolveDateMethod "setJulian" o = DateSetJulianMethodInfo
+    ResolveDateMethod "setMonth" o = DateSetMonthMethodInfo
+    ResolveDateMethod "setParse" o = DateSetParseMethodInfo
+    ResolveDateMethod "setTime" o = DateSetTimeMethodInfo
+    ResolveDateMethod "setTimeT" o = DateSetTimeTMethodInfo
+    ResolveDateMethod "setTimeVal" o = DateSetTimeValMethodInfo
+    ResolveDateMethod "setYear" o = DateSetYearMethodInfo
+    ResolveDateMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDateMethod t Date, MethodInfo info Date p) => IsLabelProxy t (Date -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDateMethod t Date, MethodInfo info Date p) => IsLabel t (Date -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Date.hs-boot b/GI/GLib/Structs/Date.hs-boot
--- a/GI/GLib/Structs/Date.hs-boot
+++ b/GI/GLib/Structs/Date.hs-boot
@@ -9,3 +9,37 @@
 
 newtype Date = Date (ForeignPtr Date)
 instance BoxedObject Date where
+data DateAddDaysMethodInfo
+data DateAddMonthsMethodInfo
+data DateAddYearsMethodInfo
+data DateClampMethodInfo
+data DateClearMethodInfo
+data DateCompareMethodInfo
+data DateDaysBetweenMethodInfo
+data DateFreeMethodInfo
+data DateGetDayMethodInfo
+data DateGetDayOfYearMethodInfo
+data DateGetIso8601WeekOfYearMethodInfo
+data DateGetJulianMethodInfo
+data DateGetMondayWeekOfYearMethodInfo
+data DateGetMonthMethodInfo
+data DateGetSundayWeekOfYearMethodInfo
+data DateGetWeekdayMethodInfo
+data DateGetYearMethodInfo
+data DateIsFirstOfMonthMethodInfo
+data DateIsLastOfMonthMethodInfo
+data DateOrderMethodInfo
+data DateSetDayMethodInfo
+data DateSetDmyMethodInfo
+data DateSetJulianMethodInfo
+data DateSetMonthMethodInfo
+data DateSetParseMethodInfo
+data DateSetTimeMethodInfo
+data DateSetTimeTMethodInfo
+data DateSetTimeValMethodInfo
+data DateSetYearMethodInfo
+data DateSubtractDaysMethodInfo
+data DateSubtractMonthsMethodInfo
+data DateSubtractYearsMethodInfo
+data DateToStructTmMethodInfo
+data DateValidMethodInfo
diff --git a/GI/GLib/Structs/DateTime.hs b/GI/GLib/Structs/DateTime.hs
--- a/GI/GLib/Structs/DateTime.hs
+++ b/GI/GLib/Structs/DateTime.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,110 +19,149 @@
 
  -- * Methods
 -- ** dateTimeAdd
+    DateTimeAddMethodInfo                   ,
     dateTimeAdd                             ,
 
 
 -- ** dateTimeAddDays
+    DateTimeAddDaysMethodInfo               ,
     dateTimeAddDays                         ,
 
 
 -- ** dateTimeAddFull
+    DateTimeAddFullMethodInfo               ,
     dateTimeAddFull                         ,
 
 
 -- ** dateTimeAddHours
+    DateTimeAddHoursMethodInfo              ,
     dateTimeAddHours                        ,
 
 
 -- ** dateTimeAddMinutes
+    DateTimeAddMinutesMethodInfo            ,
     dateTimeAddMinutes                      ,
 
 
 -- ** dateTimeAddMonths
+    DateTimeAddMonthsMethodInfo             ,
     dateTimeAddMonths                       ,
 
 
 -- ** dateTimeAddSeconds
+    DateTimeAddSecondsMethodInfo            ,
     dateTimeAddSeconds                      ,
 
 
 -- ** dateTimeAddWeeks
+    DateTimeAddWeeksMethodInfo              ,
     dateTimeAddWeeks                        ,
 
 
 -- ** dateTimeAddYears
+    DateTimeAddYearsMethodInfo              ,
     dateTimeAddYears                        ,
 
 
+-- ** dateTimeCompare
+    dateTimeCompare                         ,
+
+
 -- ** dateTimeDifference
+    DateTimeDifferenceMethodInfo            ,
     dateTimeDifference                      ,
 
 
+-- ** dateTimeEqual
+    dateTimeEqual                           ,
+
+
 -- ** dateTimeFormat
+    DateTimeFormatMethodInfo                ,
     dateTimeFormat                          ,
 
 
 -- ** dateTimeGetDayOfMonth
+    DateTimeGetDayOfMonthMethodInfo         ,
     dateTimeGetDayOfMonth                   ,
 
 
 -- ** dateTimeGetDayOfWeek
+    DateTimeGetDayOfWeekMethodInfo          ,
     dateTimeGetDayOfWeek                    ,
 
 
 -- ** dateTimeGetDayOfYear
+    DateTimeGetDayOfYearMethodInfo          ,
     dateTimeGetDayOfYear                    ,
 
 
 -- ** dateTimeGetHour
+    DateTimeGetHourMethodInfo               ,
     dateTimeGetHour                         ,
 
 
 -- ** dateTimeGetMicrosecond
+    DateTimeGetMicrosecondMethodInfo        ,
     dateTimeGetMicrosecond                  ,
 
 
 -- ** dateTimeGetMinute
+    DateTimeGetMinuteMethodInfo             ,
     dateTimeGetMinute                       ,
 
 
 -- ** dateTimeGetMonth
+    DateTimeGetMonthMethodInfo              ,
     dateTimeGetMonth                        ,
 
 
 -- ** dateTimeGetSecond
+    DateTimeGetSecondMethodInfo             ,
     dateTimeGetSecond                       ,
 
 
 -- ** dateTimeGetSeconds
+    DateTimeGetSecondsMethodInfo            ,
     dateTimeGetSeconds                      ,
 
 
 -- ** dateTimeGetTimezoneAbbreviation
+    DateTimeGetTimezoneAbbreviationMethodInfo,
     dateTimeGetTimezoneAbbreviation         ,
 
 
 -- ** dateTimeGetUtcOffset
+    DateTimeGetUtcOffsetMethodInfo          ,
     dateTimeGetUtcOffset                    ,
 
 
 -- ** dateTimeGetWeekNumberingYear
+    DateTimeGetWeekNumberingYearMethodInfo  ,
     dateTimeGetWeekNumberingYear            ,
 
 
 -- ** dateTimeGetWeekOfYear
+    DateTimeGetWeekOfYearMethodInfo         ,
     dateTimeGetWeekOfYear                   ,
 
 
 -- ** dateTimeGetYear
+    DateTimeGetYearMethodInfo               ,
     dateTimeGetYear                         ,
 
 
 -- ** dateTimeGetYmd
+    DateTimeGetYmdMethodInfo                ,
     dateTimeGetYmd                          ,
 
 
+-- ** dateTimeHash
+    dateTimeHash                            ,
+
+
 -- ** dateTimeIsDaylightSavings
+    DateTimeIsDaylightSavingsMethodInfo     ,
     dateTimeIsDaylightSavings               ,
 
 
@@ -166,30 +206,37 @@
 
 
 -- ** dateTimeRef
+    DateTimeRefMethodInfo                   ,
     dateTimeRef                             ,
 
 
 -- ** dateTimeToLocal
+    DateTimeToLocalMethodInfo               ,
     dateTimeToLocal                         ,
 
 
 -- ** dateTimeToTimeval
+    DateTimeToTimevalMethodInfo             ,
     dateTimeToTimeval                       ,
 
 
 -- ** dateTimeToTimezone
+    DateTimeToTimezoneMethodInfo            ,
     dateTimeToTimezone                      ,
 
 
 -- ** dateTimeToUnix
+    DateTimeToUnixMethodInfo                ,
     dateTimeToUnix                          ,
 
 
 -- ** dateTimeToUtc
+    DateTimeToUtcMethodInfo                 ,
     dateTimeToUtc                           ,
 
 
 -- ** dateTimeUnref
+    DateTimeUnrefMethodInfo                 ,
     dateTimeUnref                           ,
 
 
@@ -219,9 +266,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hour", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minute", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -239,14 +285,14 @@
 
 dateTimeNew ::
     (MonadIO m) =>
-    TimeZone ->                             -- tz
-    Int32 ->                                -- year
-    Int32 ->                                -- month
-    Int32 ->                                -- day
-    Int32 ->                                -- hour
-    Int32 ->                                -- minute
-    Double ->                               -- seconds
-    m DateTime
+    TimeZone                                -- tz
+    -> Int32                                -- year
+    -> Int32                                -- month
+    -> Int32                                -- day
+    -> Int32                                -- hour
+    -> Int32                                -- minute
+    -> Double                               -- seconds
+    -> m DateTime                           -- result
 dateTimeNew tz year month day hour minute seconds = liftIO $ do
     let tz' = unsafeManagedPtrGetPtr tz
     let seconds' = realToFrac seconds
@@ -258,9 +304,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -272,8 +317,8 @@
 
 dateTimeNewFromTimevalLocal ::
     (MonadIO m) =>
-    TimeVal ->                              -- tv
-    m DateTime
+    TimeVal                                 -- tv
+    -> m DateTime                           -- result
 dateTimeNewFromTimevalLocal tv = liftIO $ do
     let tv' = unsafeManagedPtrGetPtr tv
     result <- g_date_time_new_from_timeval_local tv'
@@ -284,9 +329,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -298,8 +342,8 @@
 
 dateTimeNewFromTimevalUtc ::
     (MonadIO m) =>
-    TimeVal ->                              -- tv
-    m DateTime
+    TimeVal                                 -- tv
+    -> m DateTime                           -- result
 dateTimeNewFromTimevalUtc tv = liftIO $ do
     let tv' = unsafeManagedPtrGetPtr tv
     result <- g_date_time_new_from_timeval_utc tv'
@@ -310,9 +354,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "t", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -324,8 +367,8 @@
 
 dateTimeNewFromUnixLocal ::
     (MonadIO m) =>
-    Int64 ->                                -- t
-    m DateTime
+    Int64                                   -- t
+    -> m DateTime                           -- result
 dateTimeNewFromUnixLocal t = liftIO $ do
     result <- g_date_time_new_from_unix_local t
     checkUnexpectedReturnNULL "g_date_time_new_from_unix_local" result
@@ -334,9 +377,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "t", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -348,8 +390,8 @@
 
 dateTimeNewFromUnixUtc ::
     (MonadIO m) =>
-    Int64 ->                                -- t
-    m DateTime
+    Int64                                   -- t
+    -> m DateTime                           -- result
 dateTimeNewFromUnixUtc t = liftIO $ do
     result <- g_date_time_new_from_unix_utc t
     checkUnexpectedReturnNULL "g_date_time_new_from_unix_utc" result
@@ -358,9 +400,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "year", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hour", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minute", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -377,13 +418,13 @@
 
 dateTimeNewLocal ::
     (MonadIO m) =>
-    Int32 ->                                -- year
-    Int32 ->                                -- month
-    Int32 ->                                -- day
-    Int32 ->                                -- hour
-    Int32 ->                                -- minute
-    Double ->                               -- seconds
-    m DateTime
+    Int32                                   -- year
+    -> Int32                                -- month
+    -> Int32                                -- day
+    -> Int32                                -- hour
+    -> Int32                                -- minute
+    -> Double                               -- seconds
+    -> m DateTime                           -- result
 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'
@@ -393,9 +434,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -407,8 +447,8 @@
 
 dateTimeNewNow ::
     (MonadIO m) =>
-    TimeZone ->                             -- tz
-    m DateTime
+    TimeZone                                -- tz
+    -> m DateTime                           -- result
 dateTimeNewNow tz = liftIO $ do
     let tz' = unsafeManagedPtrGetPtr tz
     result <- g_date_time_new_now tz'
@@ -421,7 +461,6 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "GLib" "DateTime"
 -- throws : False
 -- Skip return : False
@@ -432,7 +471,7 @@
 
 dateTimeNewNowLocal ::
     (MonadIO m) =>
-    m DateTime
+    m DateTime                              -- result
 dateTimeNewNowLocal  = liftIO $ do
     result <- g_date_time_new_now_local
     checkUnexpectedReturnNULL "g_date_time_new_now_local" result
@@ -443,7 +482,6 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "GLib" "DateTime"
 -- throws : False
 -- Skip return : False
@@ -454,7 +492,7 @@
 
 dateTimeNewNowUtc ::
     (MonadIO m) =>
-    m DateTime
+    m DateTime                              -- result
 dateTimeNewNowUtc  = liftIO $ do
     result <- g_date_time_new_now_utc
     checkUnexpectedReturnNULL "g_date_time_new_now_utc" result
@@ -463,9 +501,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "year", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "month", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "day", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hour", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minute", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -482,13 +519,13 @@
 
 dateTimeNewUtc ::
     (MonadIO m) =>
-    Int32 ->                                -- year
-    Int32 ->                                -- month
-    Int32 ->                                -- day
-    Int32 ->                                -- hour
-    Int32 ->                                -- minute
-    Double ->                               -- seconds
-    m DateTime
+    Int32                                   -- year
+    -> Int32                                -- month
+    -> Int32                                -- day
+    -> Int32                                -- hour
+    -> Int32                                -- minute
+    -> Double                               -- seconds
+    -> m DateTime                           -- result
 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'
@@ -498,9 +535,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timespan", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -513,9 +549,9 @@
 
 dateTimeAdd ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    Int64 ->                                -- timespan
-    m DateTime
+    DateTime                                -- _obj
+    -> Int64                                -- timespan
+    -> m DateTime                           -- result
 dateTimeAdd _obj timespan = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_add _obj' timespan
@@ -524,11 +560,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeAddMethodInfo
+instance (signature ~ (Int64 -> m DateTime), MonadIO m) => MethodInfo DateTimeAddMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeAdd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "days", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -541,9 +580,9 @@
 
 dateTimeAddDays ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    Int32 ->                                -- days
-    m DateTime
+    DateTime                                -- _obj
+    -> Int32                                -- days
+    -> m DateTime                           -- result
 dateTimeAddDays _obj days = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_add_days _obj' days
@@ -552,11 +591,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeAddDaysMethodInfo
+instance (signature ~ (Int32 -> m DateTime), MonadIO m) => MethodInfo DateTimeAddDaysMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeAddDays
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "years", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "months", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "days", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hours", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -574,14 +616,14 @@
 
 dateTimeAddFull ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    Int32 ->                                -- years
-    Int32 ->                                -- months
-    Int32 ->                                -- days
-    Int32 ->                                -- hours
-    Int32 ->                                -- minutes
-    Double ->                               -- seconds
-    m DateTime
+    DateTime                                -- _obj
+    -> Int32                                -- years
+    -> Int32                                -- months
+    -> Int32                                -- days
+    -> Int32                                -- hours
+    -> Int32                                -- minutes
+    -> Double                               -- seconds
+    -> m DateTime                           -- result
 dateTimeAddFull _obj years months days hours minutes seconds = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let seconds' = realToFrac seconds
@@ -591,11 +633,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeAddFullMethodInfo
+instance (signature ~ (Int32 -> Int32 -> Int32 -> Int32 -> Int32 -> Double -> m DateTime), MonadIO m) => MethodInfo DateTimeAddFullMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeAddFull
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hours", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -608,9 +653,9 @@
 
 dateTimeAddHours ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    Int32 ->                                -- hours
-    m DateTime
+    DateTime                                -- _obj
+    -> Int32                                -- hours
+    -> m DateTime                           -- result
 dateTimeAddHours _obj hours = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_add_hours _obj' hours
@@ -619,11 +664,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeAddHoursMethodInfo
+instance (signature ~ (Int32 -> m DateTime), MonadIO m) => MethodInfo DateTimeAddHoursMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeAddHours
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minutes", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -636,9 +684,9 @@
 
 dateTimeAddMinutes ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    Int32 ->                                -- minutes
-    m DateTime
+    DateTime                                -- _obj
+    -> Int32                                -- minutes
+    -> m DateTime                           -- result
 dateTimeAddMinutes _obj minutes = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_add_minutes _obj' minutes
@@ -647,11 +695,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeAddMinutesMethodInfo
+instance (signature ~ (Int32 -> m DateTime), MonadIO m) => MethodInfo DateTimeAddMinutesMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeAddMinutes
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "months", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -664,9 +715,9 @@
 
 dateTimeAddMonths ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    Int32 ->                                -- months
-    m DateTime
+    DateTime                                -- _obj
+    -> Int32                                -- months
+    -> m DateTime                           -- result
 dateTimeAddMonths _obj months = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_add_months _obj' months
@@ -675,11 +726,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeAddMonthsMethodInfo
+instance (signature ~ (Int32 -> m DateTime), MonadIO m) => MethodInfo DateTimeAddMonthsMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeAddMonths
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seconds", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -692,9 +746,9 @@
 
 dateTimeAddSeconds ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    Double ->                               -- seconds
-    m DateTime
+    DateTime                                -- _obj
+    -> Double                               -- seconds
+    -> m DateTime                           -- result
 dateTimeAddSeconds _obj seconds = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let seconds' = realToFrac seconds
@@ -704,11 +758,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeAddSecondsMethodInfo
+instance (signature ~ (Double -> m DateTime), MonadIO m) => MethodInfo DateTimeAddSecondsMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeAddSeconds
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "weeks", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -721,9 +778,9 @@
 
 dateTimeAddWeeks ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    Int32 ->                                -- weeks
-    m DateTime
+    DateTime                                -- _obj
+    -> Int32                                -- weeks
+    -> m DateTime                           -- result
 dateTimeAddWeeks _obj weeks = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_add_weeks _obj' weeks
@@ -732,11 +789,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeAddWeeksMethodInfo
+instance (signature ~ (Int32 -> m DateTime), MonadIO m) => MethodInfo DateTimeAddWeeksMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeAddWeeks
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "years", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -749,9 +809,9 @@
 
 dateTimeAddYears ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    Int32 ->                                -- years
-    m DateTime
+    DateTime                                -- _obj
+    -> Int32                                -- years
+    -> m DateTime                           -- result
 dateTimeAddYears _obj years = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_add_years _obj' years
@@ -760,11 +820,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeAddYearsMethodInfo
+instance (signature ~ (Int32 -> m DateTime), MonadIO m) => MethodInfo DateTimeAddYearsMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeAddYears
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "begin", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -777,9 +840,9 @@
 
 dateTimeDifference ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    DateTime ->                             -- begin
-    m Int64
+    DateTime                                -- _obj
+    -> DateTime                             -- begin
+    -> m Int64                              -- result
 dateTimeDifference _obj begin = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let begin' = unsafeManagedPtrGetPtr begin
@@ -788,11 +851,14 @@
     touchManagedPtr begin
     return result
 
+data DateTimeDifferenceMethodInfo
+instance (signature ~ (DateTime -> m Int64), MonadIO m) => MethodInfo DateTimeDifferenceMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeDifference
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -805,9 +871,9 @@
 
 dateTimeFormat ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    T.Text ->                               -- format
-    m T.Text
+    DateTime                                -- _obj
+    -> T.Text                               -- format
+    -> m T.Text                             -- result
 dateTimeFormat _obj format = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     format' <- textToCString format
@@ -819,11 +885,14 @@
     freeMem format'
     return result'
 
+data DateTimeFormatMethodInfo
+instance (signature ~ (T.Text -> m T.Text), MonadIO m) => MethodInfo DateTimeFormatMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeFormat
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -835,19 +904,22 @@
 
 dateTimeGetDayOfMonth ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetDayOfMonth _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_day_of_month _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetDayOfMonthMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetDayOfMonthMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetDayOfMonth
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -859,19 +931,22 @@
 
 dateTimeGetDayOfWeek ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetDayOfWeek _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_day_of_week _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetDayOfWeekMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetDayOfWeekMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetDayOfWeek
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -883,19 +958,22 @@
 
 dateTimeGetDayOfYear ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetDayOfYear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_day_of_year _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetDayOfYearMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetDayOfYearMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetDayOfYear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -907,19 +985,22 @@
 
 dateTimeGetHour ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetHour _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_hour _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetHourMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetHourMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetHour
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -931,19 +1012,22 @@
 
 dateTimeGetMicrosecond ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetMicrosecond _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_microsecond _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetMicrosecondMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetMicrosecondMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetMicrosecond
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -955,19 +1039,22 @@
 
 dateTimeGetMinute ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetMinute _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_minute _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetMinuteMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetMinuteMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetMinute
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -979,19 +1066,22 @@
 
 dateTimeGetMonth ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetMonth _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_month _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetMonthMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetMonthMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetMonth
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1003,19 +1093,22 @@
 
 dateTimeGetSecond ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetSecond _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_second _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetSecondMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetSecondMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetSecond
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1027,8 +1120,8 @@
 
 dateTimeGetSeconds ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Double
+    DateTime                                -- _obj
+    -> m Double                             -- result
 dateTimeGetSeconds _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_seconds _obj'
@@ -1036,11 +1129,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeGetSecondsMethodInfo
+instance (signature ~ (m Double), MonadIO m) => MethodInfo DateTimeGetSecondsMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetSeconds
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1052,8 +1148,8 @@
 
 dateTimeGetTimezoneAbbreviation ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m T.Text
+    DateTime                                -- _obj
+    -> m T.Text                             -- result
 dateTimeGetTimezoneAbbreviation _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_timezone_abbreviation _obj'
@@ -1062,11 +1158,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeGetTimezoneAbbreviationMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo DateTimeGetTimezoneAbbreviationMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetTimezoneAbbreviation
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1078,19 +1177,22 @@
 
 dateTimeGetUtcOffset ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int64
+    DateTime                                -- _obj
+    -> m Int64                              -- result
 dateTimeGetUtcOffset _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_utc_offset _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetUtcOffsetMethodInfo
+instance (signature ~ (m Int64), MonadIO m) => MethodInfo DateTimeGetUtcOffsetMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetUtcOffset
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1102,19 +1204,22 @@
 
 dateTimeGetWeekNumberingYear ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetWeekNumberingYear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_week_numbering_year _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetWeekNumberingYearMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetWeekNumberingYearMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetWeekNumberingYear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1126,19 +1231,22 @@
 
 dateTimeGetWeekOfYear ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetWeekOfYear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_week_of_year _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetWeekOfYearMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetWeekOfYearMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetWeekOfYear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1150,19 +1258,22 @@
 
 dateTimeGetYear ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int32
+    DateTime                                -- _obj
+    -> m Int32                              -- result
 dateTimeGetYear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_get_year _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeGetYearMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo DateTimeGetYearMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetYear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "year", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "month", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "day", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1177,8 +1288,8 @@
 
 dateTimeGetYmd ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m (Int32,Int32,Int32)
+    DateTime                                -- _obj
+    -> m (Int32,Int32,Int32)                -- result
 dateTimeGetYmd _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     year <- allocMem :: IO (Ptr Int32)
@@ -1194,11 +1305,14 @@
     freeMem day
     return (year', month', day')
 
+data DateTimeGetYmdMethodInfo
+instance (signature ~ (m (Int32,Int32,Int32)), MonadIO m) => MethodInfo DateTimeGetYmdMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeGetYmd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1210,8 +1324,8 @@
 
 dateTimeIsDaylightSavings ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Bool
+    DateTime                                -- _obj
+    -> m Bool                               -- result
 dateTimeIsDaylightSavings _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_is_daylight_savings _obj'
@@ -1219,11 +1333,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeIsDaylightSavingsMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo DateTimeIsDaylightSavingsMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeIsDaylightSavings
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1235,8 +1352,8 @@
 
 dateTimeRef ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m DateTime
+    DateTime                                -- _obj
+    -> m DateTime                           -- result
 dateTimeRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_ref _obj'
@@ -1245,11 +1362,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeRefMethodInfo
+instance (signature ~ (m DateTime), MonadIO m) => MethodInfo DateTimeRefMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1261,8 +1381,8 @@
 
 dateTimeToLocal ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m DateTime
+    DateTime                                -- _obj
+    -> m DateTime                           -- result
 dateTimeToLocal _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_to_local _obj'
@@ -1271,11 +1391,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeToLocalMethodInfo
+instance (signature ~ (m DateTime), MonadIO m) => MethodInfo DateTimeToLocalMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeToLocal
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tv", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1288,9 +1411,9 @@
 
 dateTimeToTimeval ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    TimeVal ->                              -- tv
-    m Bool
+    DateTime                                -- _obj
+    -> TimeVal                              -- tv
+    -> m Bool                               -- result
 dateTimeToTimeval _obj tv = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let tv' = unsafeManagedPtrGetPtr tv
@@ -1300,11 +1423,14 @@
     touchManagedPtr tv
     return result'
 
+data DateTimeToTimevalMethodInfo
+instance (signature ~ (TimeVal -> m Bool), MonadIO m) => MethodInfo DateTimeToTimevalMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeToTimeval
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tz", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1317,9 +1443,9 @@
 
 dateTimeToTimezone ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    TimeZone ->                             -- tz
-    m DateTime
+    DateTime                                -- _obj
+    -> TimeZone                             -- tz
+    -> m DateTime                           -- result
 dateTimeToTimezone _obj tz = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let tz' = unsafeManagedPtrGetPtr tz
@@ -1330,11 +1456,14 @@
     touchManagedPtr tz
     return result'
 
+data DateTimeToTimezoneMethodInfo
+instance (signature ~ (TimeZone -> m DateTime), MonadIO m) => MethodInfo DateTimeToTimezoneMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeToTimezone
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1346,19 +1475,22 @@
 
 dateTimeToUnix ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m Int64
+    DateTime                                -- _obj
+    -> m Int64                              -- result
 dateTimeToUnix _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_to_unix _obj'
     touchManagedPtr _obj
     return result
 
+data DateTimeToUnixMethodInfo
+instance (signature ~ (m Int64), MonadIO m) => MethodInfo DateTimeToUnixMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeToUnix
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1370,8 +1502,8 @@
 
 dateTimeToUtc ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m DateTime
+    DateTime                                -- _obj
+    -> m DateTime                           -- result
 dateTimeToUtc _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_date_time_to_utc _obj'
@@ -1380,11 +1512,14 @@
     touchManagedPtr _obj
     return result'
 
+data DateTimeToUtcMethodInfo
+instance (signature ~ (m DateTime), MonadIO m) => MethodInfo DateTimeToUtcMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeToUtc
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "DateTime", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1396,12 +1531,129 @@
 
 dateTimeUnref ::
     (MonadIO m) =>
-    DateTime ->                             -- _obj
-    m ()
+    DateTime                                -- _obj
+    -> m ()                                 -- result
 dateTimeUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_date_time_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data DateTimeUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo DateTimeUnrefMethodInfo DateTime signature where
+    overloadedMethod _ = dateTimeUnref
+
+-- method DateTime::compare
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "dt1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dt2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- result
+dateTimeCompare dt1 dt2 = liftIO $ do
+    result <- g_date_time_compare dt1 dt2
+    return result
+
+-- method DateTime::equal
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "dt1", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dt2", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+dateTimeEqual dt1 dt2 = liftIO $ do
+    result <- g_date_time_equal dt1 dt2
+    let result' = (/= 0) result
+    return result'
+
+-- method DateTime::hash
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "datetime", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+dateTimeHash datetime = liftIO $ do
+    result <- g_date_time_hash datetime
+    return result
+
+type family ResolveDateTimeMethod (t :: Symbol) (o :: *) :: * where
+    ResolveDateTimeMethod "add" o = DateTimeAddMethodInfo
+    ResolveDateTimeMethod "addDays" o = DateTimeAddDaysMethodInfo
+    ResolveDateTimeMethod "addFull" o = DateTimeAddFullMethodInfo
+    ResolveDateTimeMethod "addHours" o = DateTimeAddHoursMethodInfo
+    ResolveDateTimeMethod "addMinutes" o = DateTimeAddMinutesMethodInfo
+    ResolveDateTimeMethod "addMonths" o = DateTimeAddMonthsMethodInfo
+    ResolveDateTimeMethod "addSeconds" o = DateTimeAddSecondsMethodInfo
+    ResolveDateTimeMethod "addWeeks" o = DateTimeAddWeeksMethodInfo
+    ResolveDateTimeMethod "addYears" o = DateTimeAddYearsMethodInfo
+    ResolveDateTimeMethod "difference" o = DateTimeDifferenceMethodInfo
+    ResolveDateTimeMethod "format" o = DateTimeFormatMethodInfo
+    ResolveDateTimeMethod "isDaylightSavings" o = DateTimeIsDaylightSavingsMethodInfo
+    ResolveDateTimeMethod "ref" o = DateTimeRefMethodInfo
+    ResolveDateTimeMethod "toLocal" o = DateTimeToLocalMethodInfo
+    ResolveDateTimeMethod "toTimeval" o = DateTimeToTimevalMethodInfo
+    ResolveDateTimeMethod "toTimezone" o = DateTimeToTimezoneMethodInfo
+    ResolveDateTimeMethod "toUnix" o = DateTimeToUnixMethodInfo
+    ResolveDateTimeMethod "toUtc" o = DateTimeToUtcMethodInfo
+    ResolveDateTimeMethod "unref" o = DateTimeUnrefMethodInfo
+    ResolveDateTimeMethod "getDayOfMonth" o = DateTimeGetDayOfMonthMethodInfo
+    ResolveDateTimeMethod "getDayOfWeek" o = DateTimeGetDayOfWeekMethodInfo
+    ResolveDateTimeMethod "getDayOfYear" o = DateTimeGetDayOfYearMethodInfo
+    ResolveDateTimeMethod "getHour" o = DateTimeGetHourMethodInfo
+    ResolveDateTimeMethod "getMicrosecond" o = DateTimeGetMicrosecondMethodInfo
+    ResolveDateTimeMethod "getMinute" o = DateTimeGetMinuteMethodInfo
+    ResolveDateTimeMethod "getMonth" o = DateTimeGetMonthMethodInfo
+    ResolveDateTimeMethod "getSecond" o = DateTimeGetSecondMethodInfo
+    ResolveDateTimeMethod "getSeconds" o = DateTimeGetSecondsMethodInfo
+    ResolveDateTimeMethod "getTimezoneAbbreviation" o = DateTimeGetTimezoneAbbreviationMethodInfo
+    ResolveDateTimeMethod "getUtcOffset" o = DateTimeGetUtcOffsetMethodInfo
+    ResolveDateTimeMethod "getWeekNumberingYear" o = DateTimeGetWeekNumberingYearMethodInfo
+    ResolveDateTimeMethod "getWeekOfYear" o = DateTimeGetWeekOfYearMethodInfo
+    ResolveDateTimeMethod "getYear" o = DateTimeGetYearMethodInfo
+    ResolveDateTimeMethod "getYmd" o = DateTimeGetYmdMethodInfo
+    ResolveDateTimeMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDateTimeMethod t DateTime, MethodInfo info DateTime p) => IsLabelProxy t (DateTime -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDateTimeMethod t DateTime, MethodInfo info DateTime p) => IsLabel t (DateTime -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/DateTime.hs-boot b/GI/GLib/Structs/DateTime.hs-boot
--- a/GI/GLib/Structs/DateTime.hs-boot
+++ b/GI/GLib/Structs/DateTime.hs-boot
@@ -9,3 +9,37 @@
 
 newtype DateTime = DateTime (ForeignPtr DateTime)
 instance BoxedObject DateTime where
+data DateTimeAddMethodInfo
+data DateTimeAddDaysMethodInfo
+data DateTimeAddFullMethodInfo
+data DateTimeAddHoursMethodInfo
+data DateTimeAddMinutesMethodInfo
+data DateTimeAddMonthsMethodInfo
+data DateTimeAddSecondsMethodInfo
+data DateTimeAddWeeksMethodInfo
+data DateTimeAddYearsMethodInfo
+data DateTimeDifferenceMethodInfo
+data DateTimeFormatMethodInfo
+data DateTimeGetDayOfMonthMethodInfo
+data DateTimeGetDayOfWeekMethodInfo
+data DateTimeGetDayOfYearMethodInfo
+data DateTimeGetHourMethodInfo
+data DateTimeGetMicrosecondMethodInfo
+data DateTimeGetMinuteMethodInfo
+data DateTimeGetMonthMethodInfo
+data DateTimeGetSecondMethodInfo
+data DateTimeGetSecondsMethodInfo
+data DateTimeGetTimezoneAbbreviationMethodInfo
+data DateTimeGetUtcOffsetMethodInfo
+data DateTimeGetWeekNumberingYearMethodInfo
+data DateTimeGetWeekOfYearMethodInfo
+data DateTimeGetYearMethodInfo
+data DateTimeGetYmdMethodInfo
+data DateTimeIsDaylightSavingsMethodInfo
+data DateTimeRefMethodInfo
+data DateTimeToLocalMethodInfo
+data DateTimeToTimevalMethodInfo
+data DateTimeToTimezoneMethodInfo
+data DateTimeToUnixMethodInfo
+data DateTimeToUtcMethodInfo
+data DateTimeUnrefMethodInfo
diff --git a/GI/GLib/Structs/DebugKey.hs b/GI/GLib/Structs/DebugKey.hs
--- a/GI/GLib/Structs/DebugKey.hs
+++ b/GI/GLib/Structs/DebugKey.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -13,6 +14,7 @@
 
 -- * Exported types
     DebugKey(..)                            ,
+    newZeroDebugKey                         ,
     noDebugKey                              ,
 
 
@@ -40,6 +42,10 @@
 import GI.GLib.Callbacks
 
 newtype DebugKey = DebugKey (ForeignPtr DebugKey)
+-- | Construct a `DebugKey` struct initialized to zero.
+newZeroDebugKey :: MonadIO m => m DebugKey
+newZeroDebugKey = liftIO $ callocBytes 16 >>= wrapPtr DebugKey
+
 noDebugKey :: Maybe DebugKey
 noDebugKey = Nothing
 
@@ -53,5 +59,16 @@
 debugKeyReadValue s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word32
     return val
+
+type family ResolveDebugKeyMethod (t :: Symbol) (o :: *) :: * where
+    ResolveDebugKeyMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDebugKeyMethod t DebugKey, MethodInfo info DebugKey p) => IsLabelProxy t (DebugKey -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDebugKeyMethod t DebugKey, MethodInfo info DebugKey p) => IsLabel t (DebugKey -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Dir.hs b/GI/GLib/Structs/Dir.hs
--- a/GI/GLib/Structs/Dir.hs
+++ b/GI/GLib/Structs/Dir.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,14 +18,21 @@
 
  -- * Methods
 -- ** dirClose
+    DirCloseMethodInfo                      ,
     dirClose                                ,
 
 
+-- ** dirMakeTmp
+    dirMakeTmp                              ,
+
+
 -- ** dirReadName
+    DirReadNameMethodInfo                   ,
     dirReadName                             ,
 
 
 -- ** dirRewind
+    DirRewindMethodInfo                     ,
     dirRewind                               ,
 
 
@@ -48,9 +56,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Dir", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -62,19 +69,22 @@
 
 dirClose ::
     (MonadIO m) =>
-    Dir ->                                  -- _obj
-    m ()
+    Dir                                     -- _obj
+    -> m ()                                 -- result
 dirClose _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_dir_close _obj'
     touchManagedPtr _obj
     return ()
 
+data DirCloseMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo DirCloseMethodInfo Dir signature where
+    overloadedMethod _ = dirClose
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Dir", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -86,8 +96,8 @@
 
 dirReadName ::
     (MonadIO m) =>
-    Dir ->                                  -- _obj
-    m T.Text
+    Dir                                     -- _obj
+    -> m T.Text                             -- result
 dirReadName _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_dir_read_name _obj'
@@ -96,11 +106,14 @@
     touchManagedPtr _obj
     return result'
 
+data DirReadNameMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo DirReadNameMethodInfo Dir signature where
+    overloadedMethod _ = dirReadName
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Dir", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -112,12 +125,65 @@
 
 dirRewind ::
     (MonadIO m) =>
-    Dir ->                                  -- _obj
-    m ()
+    Dir                                     -- _obj
+    -> m ()                                 -- result
 dirRewind _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_dir_rewind _obj'
     touchManagedPtr _obj
     return ()
+
+data DirRewindMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo DirRewindMethodInfo Dir signature where
+    overloadedMethod _ = dirRewind
+
+-- method Dir::make_tmp
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "tmpl", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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]                             -- result
+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
+        checkUnexpectedReturnNULL "g_dir_make_tmp" result
+        result' <- cstringToString result
+        freeMem result
+        freeMem maybeTmpl
+        return result'
+     ) (do
+        freeMem maybeTmpl
+     )
+
+type family ResolveDirMethod (t :: Symbol) (o :: *) :: * where
+    ResolveDirMethod "close" o = DirCloseMethodInfo
+    ResolveDirMethod "readName" o = DirReadNameMethodInfo
+    ResolveDirMethod "rewind" o = DirRewindMethodInfo
+    ResolveDirMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDirMethod t Dir, MethodInfo info Dir p) => IsLabelProxy t (Dir -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDirMethod t Dir, MethodInfo info Dir p) => IsLabel t (Dir -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Dir.hs-boot b/GI/GLib/Structs/Dir.hs-boot
--- a/GI/GLib/Structs/Dir.hs-boot
+++ b/GI/GLib/Structs/Dir.hs-boot
@@ -8,3 +8,6 @@
 import qualified Data.Map as Map
 
 newtype Dir = Dir (ForeignPtr Dir)
+data DirCloseMethodInfo
+data DirReadNameMethodInfo
+data DirRewindMethodInfo
diff --git a/GI/GLib/Structs/HashTableIter.hs b/GI/GLib/Structs/HashTableIter.hs
--- a/GI/GLib/Structs/HashTableIter.hs
+++ b/GI/GLib/Structs/HashTableIter.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -15,27 +16,33 @@
 
 -- * Exported types
     HashTableIter(..)                       ,
+    newZeroHashTableIter                    ,
     noHashTableIter                         ,
 
 
  -- * Methods
 -- ** hashTableIterInit
+    HashTableIterInitMethodInfo             ,
     hashTableIterInit                       ,
 
 
 -- ** hashTableIterNext
+    HashTableIterNextMethodInfo             ,
     hashTableIterNext                       ,
 
 
 -- ** hashTableIterRemove
+    HashTableIterRemoveMethodInfo           ,
     hashTableIterRemove                     ,
 
 
 -- ** hashTableIterReplace
+    HashTableIterReplaceMethodInfo          ,
     hashTableIterReplace                    ,
 
 
 -- ** hashTableIterSteal
+    HashTableIterStealMethodInfo            ,
     hashTableIterSteal                      ,
 
 
@@ -54,14 +61,17 @@
 import GI.GLib.Callbacks
 
 newtype HashTableIter = HashTableIter (ForeignPtr HashTableIter)
+-- | Construct a `HashTableIter` struct initialized to zero.
+newZeroHashTableIter :: MonadIO m => m HashTableIter
+newZeroHashTableIter = liftIO $ callocBytes 40 >>= wrapPtr 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hash_table", argType = TGHash (TBasicType TVoid) (TBasicType TVoid), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -74,25 +84,28 @@
 
 hashTableIterInit ::
     (MonadIO m) =>
-    HashTableIter ->                        -- _obj
-    Map.Map (Ptr ()) (Ptr ()) ->            -- hash_table
-    m ()
-hashTableIterInit _obj hash_table = liftIO $ do
+    HashTableIter                           -- _obj
+    -> Map.Map (Ptr ()) (Ptr ())            -- hashTable
+    -> m ()                                 -- result
+hashTableIterInit _obj hashTable = 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''''
+    let hashTable' = Map.toList hashTable
+    let hashTable'' = mapFirst ptrPackPtr hashTable'
+    let hashTable''' = mapSecond ptrPackPtr hashTable''
+    hashTable'''' <- packGHashTable gDirectHash gDirectEqual Nothing Nothing hashTable'''
+    g_hash_table_iter_init _obj' hashTable''''
     touchManagedPtr _obj
-    unrefGHashTable hash_table''''
+    unrefGHashTable hashTable''''
     return ()
 
+data HashTableIterInitMethodInfo
+instance (signature ~ (Map.Map (Ptr ()) (Ptr ()) -> m ()), MonadIO m) => MethodInfo HashTableIterInitMethodInfo HashTableIter signature where
+    overloadedMethod _ = hashTableIterInit
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -106,10 +119,10 @@
 
 hashTableIterNext ::
     (MonadIO m) =>
-    HashTableIter ->                        -- _obj
-    Maybe (Ptr ()) ->                       -- key
-    Maybe (Ptr ()) ->                       -- value
-    m Bool
+    HashTableIter                           -- _obj
+    -> Maybe (Ptr ())                       -- key
+    -> Maybe (Ptr ())                       -- value
+    -> m Bool                               -- result
 hashTableIterNext _obj key value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeKey <- case key of
@@ -125,11 +138,14 @@
     touchManagedPtr _obj
     return result'
 
+data HashTableIterNextMethodInfo
+instance (signature ~ (Maybe (Ptr ()) -> Maybe (Ptr ()) -> m Bool), MonadIO m) => MethodInfo HashTableIterNextMethodInfo HashTableIter signature where
+    overloadedMethod _ = hashTableIterNext
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -141,19 +157,22 @@
 
 hashTableIterRemove ::
     (MonadIO m) =>
-    HashTableIter ->                        -- _obj
-    m ()
+    HashTableIter                           -- _obj
+    -> m ()                                 -- result
 hashTableIterRemove _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_hash_table_iter_remove _obj'
     touchManagedPtr _obj
     return ()
 
+data HashTableIterRemoveMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo HashTableIterRemoveMethodInfo HashTableIter signature where
+    overloadedMethod _ = hashTableIterRemove
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -166,20 +185,23 @@
 
 hashTableIterReplace ::
     (MonadIO m) =>
-    HashTableIter ->                        -- _obj
-    Ptr () ->                               -- value
-    m ()
+    HashTableIter                           -- _obj
+    -> Ptr ()                               -- value
+    -> m ()                                 -- result
 hashTableIterReplace _obj value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_hash_table_iter_replace _obj' value
     touchManagedPtr _obj
     return ()
 
+data HashTableIterReplaceMethodInfo
+instance (signature ~ (Ptr () -> m ()), MonadIO m) => MethodInfo HashTableIterReplaceMethodInfo HashTableIter signature where
+    overloadedMethod _ = hashTableIterReplace
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HashTableIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -191,12 +213,32 @@
 
 hashTableIterSteal ::
     (MonadIO m) =>
-    HashTableIter ->                        -- _obj
-    m ()
+    HashTableIter                           -- _obj
+    -> m ()                                 -- result
 hashTableIterSteal _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_hash_table_iter_steal _obj'
     touchManagedPtr _obj
     return ()
+
+data HashTableIterStealMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo HashTableIterStealMethodInfo HashTableIter signature where
+    overloadedMethod _ = hashTableIterSteal
+
+type family ResolveHashTableIterMethod (t :: Symbol) (o :: *) :: * where
+    ResolveHashTableIterMethod "init" o = HashTableIterInitMethodInfo
+    ResolveHashTableIterMethod "next" o = HashTableIterNextMethodInfo
+    ResolveHashTableIterMethod "remove" o = HashTableIterRemoveMethodInfo
+    ResolveHashTableIterMethod "replace" o = HashTableIterReplaceMethodInfo
+    ResolveHashTableIterMethod "steal" o = HashTableIterStealMethodInfo
+    ResolveHashTableIterMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveHashTableIterMethod t HashTableIter, MethodInfo info HashTableIter p) => IsLabelProxy t (HashTableIter -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveHashTableIterMethod t HashTableIter, MethodInfo info HashTableIter p) => IsLabel t (HashTableIter -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/HashTableIter.hs-boot b/GI/GLib/Structs/HashTableIter.hs-boot
--- a/GI/GLib/Structs/HashTableIter.hs-boot
+++ b/GI/GLib/Structs/HashTableIter.hs-boot
@@ -8,3 +8,8 @@
 import qualified Data.Map as Map
 
 newtype HashTableIter = HashTableIter (ForeignPtr HashTableIter)
+data HashTableIterInitMethodInfo
+data HashTableIterNextMethodInfo
+data HashTableIterRemoveMethodInfo
+data HashTableIterReplaceMethodInfo
+data HashTableIterStealMethodInfo
diff --git a/GI/GLib/Structs/Hmac.hs b/GI/GLib/Structs/Hmac.hs
--- a/GI/GLib/Structs/Hmac.hs
+++ b/GI/GLib/Structs/Hmac.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -19,18 +20,22 @@
 
  -- * Methods
 -- ** hmacGetDigest
+    HmacGetDigestMethodInfo                 ,
     hmacGetDigest                           ,
 
 
 -- ** hmacGetString
+    HmacGetStringMethodInfo                 ,
     hmacGetString                           ,
 
 
 -- ** hmacUnref
+    HmacUnrefMethodInfo                     ,
     hmacUnref                               ,
 
 
 -- ** hmacUpdate
+    HmacUpdateMethodInfo                    ,
     hmacUpdate                              ,
 
 
@@ -54,9 +59,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "digest_len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -70,21 +74,24 @@
 
 hmacGetDigest ::
     (MonadIO m) =>
-    Hmac ->                                 -- _obj
-    Word8 ->                                -- buffer
-    Word64 ->                               -- digest_len
-    m ()
-hmacGetDigest _obj buffer digest_len = liftIO $ do
+    Hmac                                    -- _obj
+    -> Word8                                -- buffer
+    -> Word64                               -- digestLen
+    -> m ()                                 -- result
+hmacGetDigest _obj buffer digestLen = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_hmac_get_digest _obj' buffer digest_len
+    g_hmac_get_digest _obj' buffer digestLen
     touchManagedPtr _obj
     return ()
 
+data HmacGetDigestMethodInfo
+instance (signature ~ (Word8 -> Word64 -> m ()), MonadIO m) => MethodInfo HmacGetDigestMethodInfo Hmac signature where
+    overloadedMethod _ = hmacGetDigest
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -96,8 +103,8 @@
 
 hmacGetString ::
     (MonadIO m) =>
-    Hmac ->                                 -- _obj
-    m T.Text
+    Hmac                                    -- _obj
+    -> m T.Text                             -- result
 hmacGetString _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_hmac_get_string _obj'
@@ -106,11 +113,14 @@
     touchManagedPtr _obj
     return result'
 
+data HmacGetStringMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo HmacGetStringMethodInfo Hmac signature where
+    overloadedMethod _ = hmacGetString
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -122,19 +132,22 @@
 
 hmacUnref ::
     (MonadIO m) =>
-    Hmac ->                                 -- _obj
-    m ()
+    Hmac                                    -- _obj
+    -> m ()                                 -- result
 hmacUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_hmac_unref _obj'
     touchManagedPtr _obj
     return ()
 
+data HmacUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo HmacUnrefMethodInfo Hmac signature where
+    overloadedMethod _ = hmacUnref
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Hmac", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -148,9 +161,9 @@
 
 hmacUpdate ::
     (MonadIO m) =>
-    Hmac ->                                 -- _obj
-    ByteString ->                           -- data
-    m ()
+    Hmac                                    -- _obj
+    -> ByteString                           -- data_
+    -> m ()                                 -- result
 hmacUpdate _obj data_ = liftIO $ do
     let length_ = fromIntegral $ B.length data_
     let _obj' = unsafeManagedPtrGetPtr _obj
@@ -159,5 +172,24 @@
     touchManagedPtr _obj
     freeMem data_'
     return ()
+
+data HmacUpdateMethodInfo
+instance (signature ~ (ByteString -> m ()), MonadIO m) => MethodInfo HmacUpdateMethodInfo Hmac signature where
+    overloadedMethod _ = hmacUpdate
+
+type family ResolveHmacMethod (t :: Symbol) (o :: *) :: * where
+    ResolveHmacMethod "unref" o = HmacUnrefMethodInfo
+    ResolveHmacMethod "update" o = HmacUpdateMethodInfo
+    ResolveHmacMethod "getDigest" o = HmacGetDigestMethodInfo
+    ResolveHmacMethod "getString" o = HmacGetStringMethodInfo
+    ResolveHmacMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveHmacMethod t Hmac, MethodInfo info Hmac p) => IsLabelProxy t (Hmac -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveHmacMethod t Hmac, MethodInfo info Hmac p) => IsLabel t (Hmac -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Hmac.hs-boot b/GI/GLib/Structs/Hmac.hs-boot
--- a/GI/GLib/Structs/Hmac.hs-boot
+++ b/GI/GLib/Structs/Hmac.hs-boot
@@ -8,3 +8,7 @@
 import qualified Data.Map as Map
 
 newtype Hmac = Hmac (ForeignPtr Hmac)
+data HmacGetDigestMethodInfo
+data HmacGetStringMethodInfo
+data HmacUnrefMethodInfo
+data HmacUpdateMethodInfo
diff --git a/GI/GLib/Structs/Hook.hs b/GI/GLib/Structs/Hook.hs
--- a/GI/GLib/Structs/Hook.hs
+++ b/GI/GLib/Structs/Hook.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -12,16 +13,42 @@
 
 -- * Exported types
     Hook(..)                                ,
+    newZeroHook                             ,
     noHook                                  ,
 
 
  -- * Methods
 -- ** hookCompareIds
+    HookCompareIdsMethodInfo                ,
     hookCompareIds                          ,
 
 
+-- ** hookDestroy
+    hookDestroy                             ,
 
 
+-- ** hookDestroyLink
+    hookDestroyLink                         ,
+
+
+-- ** hookFree
+    hookFree                                ,
+
+
+-- ** hookInsertBefore
+    hookInsertBefore                        ,
+
+
+-- ** hookPrepend
+    hookPrepend                             ,
+
+
+-- ** hookUnref
+    hookUnref                               ,
+
+
+
+
  -- * Properties
 -- ** Data
     hookReadData                            ,
@@ -66,6 +93,10 @@
 import GI.GLib.Callbacks
 
 newtype Hook = Hook (ForeignPtr Hook)
+-- | Construct a `Hook` struct initialized to zero.
+newZeroHook :: MonadIO m => m Hook
+newZeroHook = liftIO $ callocBytes 64 >>= wrapPtr Hook
+
 noHook :: Maybe Hook
 noHook = Nothing
 
@@ -110,9 +141,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sibling", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -125,9 +155,9 @@
 
 hookCompareIds ::
     (MonadIO m) =>
-    Hook ->                                 -- _obj
-    Hook ->                                 -- sibling
-    m Int32
+    Hook                                    -- _obj
+    -> Hook                                 -- sibling
+    -> m Int32                              -- result
 hookCompareIds _obj sibling = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let sibling' = unsafeManagedPtrGetPtr sibling
@@ -135,5 +165,186 @@
     touchManagedPtr _obj
     touchManagedPtr sibling
     return result
+
+data HookCompareIdsMethodInfo
+instance (signature ~ (Hook -> m Int32), MonadIO m) => MethodInfo HookCompareIdsMethodInfo Hook signature where
+    overloadedMethod _ = hookCompareIds
+
+-- method Hook::destroy
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook_id", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- hookList
+    -> Word64                               -- hookId
+    -> m Bool                               -- result
+hookDestroy hookList hookId = liftIO $ do
+    let hookList' = unsafeManagedPtrGetPtr hookList
+    result <- g_hook_destroy hookList' hookId
+    let result' = (/= 0) result
+    touchManagedPtr hookList
+    return result'
+
+-- method Hook::destroy_link
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- hookList
+    -> Hook                                 -- hook
+    -> m ()                                 -- result
+hookDestroyLink hookList hook = liftIO $ do
+    let hookList' = unsafeManagedPtrGetPtr hookList
+    let hook' = unsafeManagedPtrGetPtr hook
+    g_hook_destroy_link hookList' hook'
+    touchManagedPtr hookList
+    touchManagedPtr hook
+    return ()
+
+-- method Hook::free
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- hookList
+    -> Hook                                 -- hook
+    -> m ()                                 -- result
+hookFree hookList hook = liftIO $ do
+    let hookList' = unsafeManagedPtrGetPtr hookList
+    let hook' = unsafeManagedPtrGetPtr hook
+    g_hook_free hookList' hook'
+    touchManagedPtr hookList
+    touchManagedPtr hook
+    return ()
+
+-- method Hook::insert_before
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sibling", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- hookList
+    -> Hook                                 -- sibling
+    -> Hook                                 -- hook
+    -> m ()                                 -- result
+hookInsertBefore hookList sibling hook = liftIO $ do
+    let hookList' = unsafeManagedPtrGetPtr hookList
+    let sibling' = unsafeManagedPtrGetPtr sibling
+    let hook' = unsafeManagedPtrGetPtr hook
+    g_hook_insert_before hookList' sibling' hook'
+    touchManagedPtr hookList
+    touchManagedPtr sibling
+    touchManagedPtr hook
+    return ()
+
+-- method Hook::prepend
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- hookList
+    -> Hook                                 -- hook
+    -> m ()                                 -- result
+hookPrepend hookList hook = liftIO $ do
+    let hookList' = unsafeManagedPtrGetPtr hookList
+    let hook' = unsafeManagedPtrGetPtr hook
+    g_hook_prepend hookList' hook'
+    touchManagedPtr hookList
+    touchManagedPtr hook
+    return ()
+
+-- method Hook::unref
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "hook_list", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook", argType = TInterface "GLib" "Hook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                -- hookList
+    -> Hook                                 -- hook
+    -> m ()                                 -- result
+hookUnref hookList hook = liftIO $ do
+    let hookList' = unsafeManagedPtrGetPtr hookList
+    let hook' = unsafeManagedPtrGetPtr hook
+    g_hook_unref hookList' hook'
+    touchManagedPtr hookList
+    touchManagedPtr hook
+    return ()
+
+type family ResolveHookMethod (t :: Symbol) (o :: *) :: * where
+    ResolveHookMethod "compareIds" o = HookCompareIdsMethodInfo
+    ResolveHookMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveHookMethod t Hook, MethodInfo info Hook p) => IsLabelProxy t (Hook -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveHookMethod t Hook, MethodInfo info Hook p) => IsLabel t (Hook -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Hook.hs-boot b/GI/GLib/Structs/Hook.hs-boot
--- a/GI/GLib/Structs/Hook.hs-boot
+++ b/GI/GLib/Structs/Hook.hs-boot
@@ -8,3 +8,4 @@
 import qualified Data.Map as Map
 
 newtype Hook = Hook (ForeignPtr Hook)
+data HookCompareIdsMethodInfo
diff --git a/GI/GLib/Structs/HookList.hs b/GI/GLib/Structs/HookList.hs
--- a/GI/GLib/Structs/HookList.hs
+++ b/GI/GLib/Structs/HookList.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -12,23 +13,28 @@
 
 -- * Exported types
     HookList(..)                            ,
+    newZeroHookList                         ,
     noHookList                              ,
 
 
  -- * Methods
 -- ** hookListClear
+    HookListClearMethodInfo                 ,
     hookListClear                           ,
 
 
 -- ** hookListInit
+    HookListInitMethodInfo                  ,
     hookListInit                            ,
 
 
 -- ** hookListInvoke
+    HookListInvokeMethodInfo                ,
     hookListInvoke                          ,
 
 
 -- ** hookListInvokeCheck
+    HookListInvokeCheckMethodInfo           ,
     hookListInvokeCheck                     ,
 
 
@@ -70,6 +76,10 @@
 import GI.GLib.Callbacks
 
 newtype HookList = HookList (ForeignPtr HookList)
+-- | Construct a `HookList` struct initialized to zero.
+newZeroHookList :: MonadIO m => m HookList
+newZeroHookList = liftIO $ callocBytes 56 >>= wrapPtr HookList
+
 noHookList :: Maybe HookList
 noHookList = Nothing
 
@@ -105,9 +115,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -119,19 +128,22 @@
 
 hookListClear ::
     (MonadIO m) =>
-    HookList ->                             -- _obj
-    m ()
+    HookList                                -- _obj
+    -> m ()                                 -- result
 hookListClear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_hook_list_clear _obj'
     touchManagedPtr _obj
     return ()
 
+data HookListClearMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo HookListClearMethodInfo HookList signature where
+    overloadedMethod _ = hookListClear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -144,20 +156,23 @@
 
 hookListInit ::
     (MonadIO m) =>
-    HookList ->                             -- _obj
-    Word32 ->                               -- hook_size
-    m ()
-hookListInit _obj hook_size = liftIO $ do
+    HookList                                -- _obj
+    -> Word32                               -- hookSize
+    -> m ()                                 -- result
+hookListInit _obj hookSize = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_hook_list_init _obj' hook_size
+    g_hook_list_init _obj' hookSize
     touchManagedPtr _obj
     return ()
 
+data HookListInitMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo HookListInitMethodInfo HookList signature where
+    overloadedMethod _ = hookListInit
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "may_recurse", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -170,21 +185,24 @@
 
 hookListInvoke ::
     (MonadIO m) =>
-    HookList ->                             -- _obj
-    Bool ->                                 -- may_recurse
-    m ()
-hookListInvoke _obj may_recurse = liftIO $ do
+    HookList                                -- _obj
+    -> Bool                                 -- mayRecurse
+    -> m ()                                 -- result
+hookListInvoke _obj mayRecurse = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let may_recurse' = (fromIntegral . fromEnum) may_recurse
-    g_hook_list_invoke _obj' may_recurse'
+    let mayRecurse' = (fromIntegral . fromEnum) mayRecurse
+    g_hook_list_invoke _obj' mayRecurse'
     touchManagedPtr _obj
     return ()
 
+data HookListInvokeMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m) => MethodInfo HookListInvokeMethodInfo HookList signature where
+    overloadedMethod _ = hookListInvoke
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "HookList", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "may_recurse", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -197,14 +215,33 @@
 
 hookListInvokeCheck ::
     (MonadIO m) =>
-    HookList ->                             -- _obj
-    Bool ->                                 -- may_recurse
-    m ()
-hookListInvokeCheck _obj may_recurse = liftIO $ do
+    HookList                                -- _obj
+    -> Bool                                 -- mayRecurse
+    -> m ()                                 -- result
+hookListInvokeCheck _obj mayRecurse = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let may_recurse' = (fromIntegral . fromEnum) may_recurse
-    g_hook_list_invoke_check _obj' may_recurse'
+    let mayRecurse' = (fromIntegral . fromEnum) mayRecurse
+    g_hook_list_invoke_check _obj' mayRecurse'
     touchManagedPtr _obj
     return ()
+
+data HookListInvokeCheckMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m) => MethodInfo HookListInvokeCheckMethodInfo HookList signature where
+    overloadedMethod _ = hookListInvokeCheck
+
+type family ResolveHookListMethod (t :: Symbol) (o :: *) :: * where
+    ResolveHookListMethod "clear" o = HookListClearMethodInfo
+    ResolveHookListMethod "init" o = HookListInitMethodInfo
+    ResolveHookListMethod "invoke" o = HookListInvokeMethodInfo
+    ResolveHookListMethod "invokeCheck" o = HookListInvokeCheckMethodInfo
+    ResolveHookListMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveHookListMethod t HookList, MethodInfo info HookList p) => IsLabelProxy t (HookList -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveHookListMethod t HookList, MethodInfo info HookList p) => IsLabel t (HookList -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/HookList.hs-boot b/GI/GLib/Structs/HookList.hs-boot
--- a/GI/GLib/Structs/HookList.hs-boot
+++ b/GI/GLib/Structs/HookList.hs-boot
@@ -8,3 +8,7 @@
 import qualified Data.Map as Map
 
 newtype HookList = HookList (ForeignPtr HookList)
+data HookListClearMethodInfo
+data HookListInitMethodInfo
+data HookListInvokeMethodInfo
+data HookListInvokeCheckMethodInfo
diff --git a/GI/GLib/Structs/IConv.hs b/GI/GLib/Structs/IConv.hs
--- a/GI/GLib/Structs/IConv.hs
+++ b/GI/GLib/Structs/IConv.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,6 +19,7 @@
 
  -- * Methods
 -- ** iConvClose
+    IConvCloseMethodInfo                    ,
     iConvClose                              ,
 
 
@@ -41,9 +43,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IConv", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -55,12 +56,28 @@
 
 iConvClose ::
     (MonadIO m) =>
-    IConv ->                                -- _obj
-    m Int32
+    IConv                                   -- _obj
+    -> m Int32                              -- result
 iConvClose _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_iconv_close _obj'
     touchManagedPtr _obj
     return result
+
+data IConvCloseMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo IConvCloseMethodInfo IConv signature where
+    overloadedMethod _ = iConvClose
+
+type family ResolveIConvMethod (t :: Symbol) (o :: *) :: * where
+    ResolveIConvMethod "close" o = IConvCloseMethodInfo
+    ResolveIConvMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveIConvMethod t IConv, MethodInfo info IConv p) => IsLabelProxy t (IConv -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveIConvMethod t IConv, MethodInfo info IConv p) => IsLabel t (IConv -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/IConv.hs-boot b/GI/GLib/Structs/IConv.hs-boot
--- a/GI/GLib/Structs/IConv.hs-boot
+++ b/GI/GLib/Structs/IConv.hs-boot
@@ -8,3 +8,4 @@
 import qualified Data.Map as Map
 
 newtype IConv = IConv (ForeignPtr IConv)
+data IConvCloseMethodInfo
diff --git a/GI/GLib/Structs/IOChannel.hs b/GI/GLib/Structs/IOChannel.hs
--- a/GI/GLib/Structs/IOChannel.hs
+++ b/GI/GLib/Structs/IOChannel.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -14,47 +15,66 @@
 
 -- * Exported types
     IOChannel(..)                           ,
+    newZeroIOChannel                        ,
     noIOChannel                             ,
 
 
  -- * Methods
 -- ** iOChannelClose
+    IOChannelCloseMethodInfo                ,
     iOChannelClose                          ,
 
 
+-- ** iOChannelErrorFromErrno
+    iOChannelErrorFromErrno                 ,
+
+
+-- ** iOChannelErrorQuark
+    iOChannelErrorQuark                     ,
+
+
 -- ** iOChannelFlush
+    IOChannelFlushMethodInfo                ,
     iOChannelFlush                          ,
 
 
 -- ** iOChannelGetBufferCondition
+    IOChannelGetBufferConditionMethodInfo   ,
     iOChannelGetBufferCondition             ,
 
 
 -- ** iOChannelGetBufferSize
+    IOChannelGetBufferSizeMethodInfo        ,
     iOChannelGetBufferSize                  ,
 
 
 -- ** iOChannelGetBuffered
+    IOChannelGetBufferedMethodInfo          ,
     iOChannelGetBuffered                    ,
 
 
 -- ** iOChannelGetCloseOnUnref
+    IOChannelGetCloseOnUnrefMethodInfo      ,
     iOChannelGetCloseOnUnref                ,
 
 
 -- ** iOChannelGetEncoding
+    IOChannelGetEncodingMethodInfo          ,
     iOChannelGetEncoding                    ,
 
 
 -- ** iOChannelGetFlags
+    IOChannelGetFlagsMethodInfo             ,
     iOChannelGetFlags                       ,
 
 
 -- ** iOChannelGetLineTerm
+    IOChannelGetLineTermMethodInfo          ,
     iOChannelGetLineTerm                    ,
 
 
 -- ** iOChannelInit
+    IOChannelInitMethodInfo                 ,
     iOChannelInit                           ,
 
 
@@ -63,62 +83,82 @@
 
 
 -- ** iOChannelRead
+    IOChannelReadMethodInfo                 ,
     iOChannelRead                           ,
 
 
+-- ** iOChannelReadChars
+    IOChannelReadCharsMethodInfo            ,
+    iOChannelReadChars                      ,
+
+
 -- ** iOChannelReadLine
+    IOChannelReadLineMethodInfo             ,
     iOChannelReadLine                       ,
 
 
 -- ** iOChannelReadToEnd
+    IOChannelReadToEndMethodInfo            ,
     iOChannelReadToEnd                      ,
 
 
 -- ** iOChannelReadUnichar
+    IOChannelReadUnicharMethodInfo          ,
     iOChannelReadUnichar                    ,
 
 
 -- ** iOChannelRef
+    IOChannelRefMethodInfo                  ,
     iOChannelRef                            ,
 
 
 -- ** iOChannelSeek
+    IOChannelSeekMethodInfo                 ,
     iOChannelSeek                           ,
 
 
 -- ** iOChannelSeekPosition
+    IOChannelSeekPositionMethodInfo         ,
     iOChannelSeekPosition                   ,
 
 
 -- ** iOChannelSetBufferSize
+    IOChannelSetBufferSizeMethodInfo        ,
     iOChannelSetBufferSize                  ,
 
 
 -- ** iOChannelSetBuffered
+    IOChannelSetBufferedMethodInfo          ,
     iOChannelSetBuffered                    ,
 
 
 -- ** iOChannelSetCloseOnUnref
+    IOChannelSetCloseOnUnrefMethodInfo      ,
     iOChannelSetCloseOnUnref                ,
 
 
 -- ** iOChannelSetEncoding
+    IOChannelSetEncodingMethodInfo          ,
     iOChannelSetEncoding                    ,
 
 
 -- ** iOChannelSetFlags
+    IOChannelSetFlagsMethodInfo             ,
     iOChannelSetFlags                       ,
 
 
 -- ** iOChannelSetLineTerm
+    IOChannelSetLineTermMethodInfo          ,
     iOChannelSetLineTerm                    ,
 
 
 -- ** iOChannelShutdown
+    IOChannelShutdownMethodInfo             ,
     iOChannelShutdown                       ,
 
 
 -- ** iOChannelUnixGetFd
+    IOChannelUnixGetFdMethodInfo            ,
     iOChannelUnixGetFd                      ,
 
 
@@ -127,18 +167,22 @@
 
 
 -- ** iOChannelUnref
+    IOChannelUnrefMethodInfo                ,
     iOChannelUnref                          ,
 
 
 -- ** iOChannelWrite
+    IOChannelWriteMethodInfo                ,
     iOChannelWrite                          ,
 
 
 -- ** iOChannelWriteChars
+    IOChannelWriteCharsMethodInfo           ,
     iOChannelWriteChars                     ,
 
 
 -- ** iOChannelWriteUnichar
+    IOChannelWriteUnicharMethodInfo         ,
     iOChannelWriteUnichar                   ,
 
 
@@ -163,14 +207,17 @@
 instance BoxedObject IOChannel where
     boxedType _ = c_g_io_channel_get_type
 
+-- | Construct a `IOChannel` struct initialized to zero.
+newZeroIOChannel :: MonadIO m => m IOChannel
+newZeroIOChannel = liftIO $ callocBoxedBytes 136 >>= wrapBoxed IOChannel
+
 noIOChannel :: Maybe IOChannel
 noIOChannel = Nothing
 
 -- 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}]
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -184,9 +231,9 @@
 
 iOChannelNewFile ::
     (MonadIO m) =>
-    T.Text ->                               -- filename
-    T.Text ->                               -- mode
-    m IOChannel
+    T.Text                                  -- filename
+    -> T.Text                               -- mode
+    -> m IOChannel                          -- result
 iOChannelNewFile filename mode = liftIO $ do
     filename' <- textToCString filename
     mode' <- textToCString mode
@@ -204,9 +251,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -218,8 +264,8 @@
 
 iOChannelUnixNew ::
     (MonadIO m) =>
-    Int32 ->                                -- fd
-    m IOChannel
+    Int32                                   -- fd
+    -> m IOChannel                          -- result
 iOChannelUnixNew fd = liftIO $ do
     result <- g_io_channel_unix_new fd
     checkUnexpectedReturnNULL "g_io_channel_unix_new" result
@@ -228,9 +274,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -242,19 +287,22 @@
 {-# DEPRECATED iOChannelClose ["(Since version 2.2)","Use g_io_channel_shutdown() instead."]#-}
 iOChannelClose ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m ()
+    IOChannel                               -- _obj
+    -> m ()                                 -- result
 iOChannelClose _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_io_channel_close _obj'
     touchManagedPtr _obj
     return ()
 
+data IOChannelCloseMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo IOChannelCloseMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelClose
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -267,8 +315,8 @@
 
 iOChannelFlush ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m IOStatus
+    IOChannel                               -- _obj
+    -> m IOStatus                           -- result
 iOChannelFlush _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     onException (do
@@ -280,11 +328,14 @@
         return ()
      )
 
+data IOChannelFlushMethodInfo
+instance (signature ~ (m IOStatus), MonadIO m) => MethodInfo IOChannelFlushMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelFlush
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -296,8 +347,8 @@
 
 iOChannelGetBufferCondition ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m [IOCondition]
+    IOChannel                               -- _obj
+    -> m [IOCondition]                      -- result
 iOChannelGetBufferCondition _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_io_channel_get_buffer_condition _obj'
@@ -305,11 +356,14 @@
     touchManagedPtr _obj
     return result'
 
+data IOChannelGetBufferConditionMethodInfo
+instance (signature ~ (m [IOCondition]), MonadIO m) => MethodInfo IOChannelGetBufferConditionMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelGetBufferCondition
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -321,19 +375,22 @@
 
 iOChannelGetBufferSize ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m Word64
+    IOChannel                               -- _obj
+    -> m Word64                             -- result
 iOChannelGetBufferSize _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_io_channel_get_buffer_size _obj'
     touchManagedPtr _obj
     return result
 
+data IOChannelGetBufferSizeMethodInfo
+instance (signature ~ (m Word64), MonadIO m) => MethodInfo IOChannelGetBufferSizeMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelGetBufferSize
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -345,8 +402,8 @@
 
 iOChannelGetBuffered ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m Bool
+    IOChannel                               -- _obj
+    -> m Bool                               -- result
 iOChannelGetBuffered _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_io_channel_get_buffered _obj'
@@ -354,11 +411,14 @@
     touchManagedPtr _obj
     return result'
 
+data IOChannelGetBufferedMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo IOChannelGetBufferedMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelGetBuffered
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -370,8 +430,8 @@
 
 iOChannelGetCloseOnUnref ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m Bool
+    IOChannel                               -- _obj
+    -> m Bool                               -- result
 iOChannelGetCloseOnUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_io_channel_get_close_on_unref _obj'
@@ -379,11 +439,14 @@
     touchManagedPtr _obj
     return result'
 
+data IOChannelGetCloseOnUnrefMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo IOChannelGetCloseOnUnrefMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelGetCloseOnUnref
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -395,8 +458,8 @@
 
 iOChannelGetEncoding ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m T.Text
+    IOChannel                               -- _obj
+    -> m T.Text                             -- result
 iOChannelGetEncoding _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_io_channel_get_encoding _obj'
@@ -405,11 +468,14 @@
     touchManagedPtr _obj
     return result'
 
+data IOChannelGetEncodingMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo IOChannelGetEncodingMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelGetEncoding
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -421,8 +487,8 @@
 
 iOChannelGetFlags ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m [IOFlags]
+    IOChannel                               -- _obj
+    -> m [IOFlags]                          -- result
 iOChannelGetFlags _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_io_channel_get_flags _obj'
@@ -430,11 +496,14 @@
     touchManagedPtr _obj
     return result'
 
+data IOChannelGetFlagsMethodInfo
+instance (signature ~ (m [IOFlags]), MonadIO m) => MethodInfo IOChannelGetFlagsMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelGetFlags
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -447,9 +516,9 @@
 
 iOChannelGetLineTerm ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Int32 ->                                -- length
-    m T.Text
+    IOChannel                               -- _obj
+    -> Int32                                -- length_
+    -> m T.Text                             -- result
 iOChannelGetLineTerm _obj length_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_io_channel_get_line_term _obj' length_
@@ -458,11 +527,14 @@
     touchManagedPtr _obj
     return result'
 
+data IOChannelGetLineTermMethodInfo
+instance (signature ~ (Int32 -> m T.Text), MonadIO m) => MethodInfo IOChannelGetLineTermMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelGetLineTerm
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -474,19 +546,22 @@
 
 iOChannelInit ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m ()
+    IOChannel                               -- _obj
+    -> m ()                                 -- result
 iOChannelInit _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_io_channel_init _obj'
     touchManagedPtr _obj
     return ()
 
+data IOChannelInitMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo IOChannelInitMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelInit
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -501,25 +576,73 @@
 {-# 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
+    IOChannel                               -- _obj
+    -> T.Text                               -- buf
+    -> Word64                               -- count
+    -> Word64                               -- bytesRead
+    -> m IOError                            -- result
+iOChannelRead _obj buf count bytesRead = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     buf' <- textToCString buf
-    result <- g_io_channel_read _obj' buf' count bytes_read
+    result <- g_io_channel_read _obj' buf' count bytesRead
     let result' = (toEnum . fromIntegral) result
     touchManagedPtr _obj
     freeMem buf'
     return result'
 
+data IOChannelReadMethodInfo
+instance (signature ~ (T.Text -> Word64 -> Word64 -> m IOError), MonadIO m) => MethodInfo IOChannelReadMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelRead
+
+-- method IOChannel::read_chars
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_read", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : TInterface "GLib" "IOStatus"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "g_io_channel_read_chars" g_io_channel_read_chars :: 
+    Ptr IOChannel ->                        -- _obj : TInterface "GLib" "IOChannel"
+    Ptr Word8 ->                            -- buf : TCArray False (-1) 2 (TBasicType TUInt8)
+    Word64 ->                               -- count : TBasicType TUInt64
+    Ptr Word64 ->                           -- bytes_read : TBasicType TUInt64
+    Ptr (Ptr GError) ->                     -- error
+    IO CUInt
+
+
+iOChannelReadChars ::
+    (MonadIO m) =>
+    IOChannel                               -- _obj
+    -> ByteString                           -- buf
+    -> m (IOStatus,ByteString,Word64)       -- result
+iOChannelReadChars _obj buf = liftIO $ do
+    let count = fromIntegral $ B.length buf
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    buf' <- packByteString buf
+    bytesRead <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_io_channel_read_chars _obj' buf' count bytesRead
+        let result' = (toEnum . fromIntegral) result
+        buf'' <- (unpackByteStringWithLength count) buf'
+        bytesRead' <- peek bytesRead
+        touchManagedPtr _obj
+        freeMem buf'
+        freeMem bytesRead
+        return (result', buf'', bytesRead')
+     ) (do
+        freeMem buf'
+        freeMem bytesRead
+     )
+
+data IOChannelReadCharsMethodInfo
+instance (signature ~ (ByteString -> m (IOStatus,ByteString,Word64)), MonadIO m) => MethodInfo IOChannelReadCharsMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelReadChars
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str_return", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "terminator_pos", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -535,37 +658,40 @@
 
 iOChannelReadLine ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m (IOStatus,T.Text,Word64,Word64)
+    IOChannel                               -- _obj
+    -> m (IOStatus,T.Text,Word64,Word64)    -- result
 iOChannelReadLine _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    str_return <- allocMem :: IO (Ptr CString)
+    strReturn <- allocMem :: IO (Ptr CString)
     length_ <- allocMem :: IO (Ptr Word64)
-    terminator_pos <- allocMem :: IO (Ptr Word64)
+    terminatorPos <- allocMem :: IO (Ptr Word64)
     onException (do
-        result <- propagateGError $ g_io_channel_read_line _obj' str_return length_ terminator_pos
+        result <- propagateGError $ g_io_channel_read_line _obj' strReturn length_ terminatorPos
         let result' = (toEnum . fromIntegral) result
-        str_return' <- peek str_return
-        str_return'' <- cstringToText str_return'
-        freeMem str_return'
+        strReturn' <- peek strReturn
+        strReturn'' <- cstringToText strReturn'
+        freeMem strReturn'
         length_' <- peek length_
-        terminator_pos' <- peek terminator_pos
+        terminatorPos' <- peek terminatorPos
         touchManagedPtr _obj
-        freeMem str_return
+        freeMem strReturn
         freeMem length_
-        freeMem terminator_pos
-        return (result', str_return'', length_', terminator_pos')
+        freeMem terminatorPos
+        return (result', strReturn'', length_', terminatorPos')
      ) (do
-        freeMem str_return
+        freeMem strReturn
         freeMem length_
-        freeMem terminator_pos
+        freeMem terminatorPos
      )
 
+data IOChannelReadLineMethodInfo
+instance (signature ~ (m (IOStatus,T.Text,Word64,Word64)), MonadIO m) => MethodInfo IOChannelReadLineMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelReadLine
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "str_return", argType = TCArray False (-1) 2 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- returnType : TInterface "GLib" "IOStatus"
 -- throws : True
 -- Skip return : False
@@ -580,33 +706,36 @@
 
 iOChannelReadToEnd ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m (IOStatus,ByteString)
+    IOChannel                               -- _obj
+    -> m (IOStatus,ByteString)              -- result
 iOChannelReadToEnd _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    str_return <- allocMem :: IO (Ptr (Ptr Word8))
+    strReturn <- allocMem :: IO (Ptr (Ptr Word8))
     length_ <- allocMem :: IO (Ptr Word64)
     onException (do
-        result <- propagateGError $ g_io_channel_read_to_end _obj' str_return length_
+        result <- propagateGError $ g_io_channel_read_to_end _obj' strReturn length_
         length_' <- peek length_
         let result' = (toEnum . fromIntegral) result
-        str_return' <- peek str_return
-        str_return'' <- (unpackByteStringWithLength length_') str_return'
-        freeMem str_return'
+        strReturn' <- peek strReturn
+        strReturn'' <- (unpackByteStringWithLength length_') strReturn'
+        freeMem strReturn'
         touchManagedPtr _obj
-        freeMem str_return
+        freeMem strReturn
         freeMem length_
-        return (result', str_return'')
+        return (result', strReturn'')
      ) (do
-        freeMem str_return
+        freeMem strReturn
         freeMem length_
      )
 
+data IOChannelReadToEndMethodInfo
+instance (signature ~ (m (IOStatus,ByteString)), MonadIO m) => MethodInfo IOChannelReadToEndMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelReadToEnd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "thechar", argType = TBasicType TUniChar, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -620,8 +749,8 @@
 
 iOChannelReadUnichar ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m (IOStatus,Char)
+    IOChannel                               -- _obj
+    -> m (IOStatus,Char)                    -- result
 iOChannelReadUnichar _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     thechar <- allocMem :: IO (Ptr CInt)
@@ -637,11 +766,14 @@
         freeMem thechar
      )
 
+data IOChannelReadUnicharMethodInfo
+instance (signature ~ (m (IOStatus,Char)), MonadIO m) => MethodInfo IOChannelReadUnicharMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelReadUnichar
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -653,8 +785,8 @@
 
 iOChannelRef ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m IOChannel
+    IOChannel                               -- _obj
+    -> m IOChannel                          -- result
 iOChannelRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_io_channel_ref _obj'
@@ -663,11 +795,14 @@
     touchManagedPtr _obj
     return result'
 
+data IOChannelRefMethodInfo
+instance (signature ~ (m IOChannel), MonadIO m) => MethodInfo IOChannelRefMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "GLib" "SeekType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -681,10 +816,10 @@
 {-# DEPRECATED iOChannelSeek ["(Since version 2.2)","Use g_io_channel_seek_position() instead."]#-}
 iOChannelSeek ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Int64 ->                                -- offset
-    SeekType ->                             -- type
-    m IOError
+    IOChannel                               -- _obj
+    -> Int64                                -- offset
+    -> SeekType                             -- type_
+    -> m IOError                            -- result
 iOChannelSeek _obj offset type_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let type_' = (fromIntegral . fromEnum) type_
@@ -693,11 +828,14 @@
     touchManagedPtr _obj
     return result'
 
+data IOChannelSeekMethodInfo
+instance (signature ~ (Int64 -> SeekType -> m IOError), MonadIO m) => MethodInfo IOChannelSeekMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelSeek
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "GLib" "SeekType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -712,10 +850,10 @@
 
 iOChannelSeekPosition ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Int64 ->                                -- offset
-    SeekType ->                             -- type
-    m IOStatus
+    IOChannel                               -- _obj
+    -> Int64                                -- offset
+    -> SeekType                             -- type_
+    -> m IOStatus                           -- result
 iOChannelSeekPosition _obj offset type_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let type_' = (fromIntegral . fromEnum) type_
@@ -728,11 +866,14 @@
         return ()
      )
 
+data IOChannelSeekPositionMethodInfo
+instance (signature ~ (Int64 -> SeekType -> m IOStatus), MonadIO m) => MethodInfo IOChannelSeekPositionMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelSeekPosition
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -745,20 +886,23 @@
 
 iOChannelSetBufferSize ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Word64 ->                               -- size
-    m ()
+    IOChannel                               -- _obj
+    -> Word64                               -- size
+    -> m ()                                 -- result
 iOChannelSetBufferSize _obj size = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_io_channel_set_buffer_size _obj' size
     touchManagedPtr _obj
     return ()
 
+data IOChannelSetBufferSizeMethodInfo
+instance (signature ~ (Word64 -> m ()), MonadIO m) => MethodInfo IOChannelSetBufferSizeMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelSetBufferSize
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffered", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -771,9 +915,9 @@
 
 iOChannelSetBuffered ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Bool ->                                 -- buffered
-    m ()
+    IOChannel                               -- _obj
+    -> Bool                                 -- buffered
+    -> m ()                                 -- result
 iOChannelSetBuffered _obj buffered = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let buffered' = (fromIntegral . fromEnum) buffered
@@ -781,11 +925,14 @@
     touchManagedPtr _obj
     return ()
 
+data IOChannelSetBufferedMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m) => MethodInfo IOChannelSetBufferedMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelSetBuffered
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "do_close", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -798,21 +945,24 @@
 
 iOChannelSetCloseOnUnref ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Bool ->                                 -- do_close
-    m ()
-iOChannelSetCloseOnUnref _obj do_close = liftIO $ do
+    IOChannel                               -- _obj
+    -> Bool                                 -- doClose
+    -> m ()                                 -- result
+iOChannelSetCloseOnUnref _obj doClose = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let do_close' = (fromIntegral . fromEnum) do_close
-    g_io_channel_set_close_on_unref _obj' do_close'
+    let doClose' = (fromIntegral . fromEnum) doClose
+    g_io_channel_set_close_on_unref _obj' doClose'
     touchManagedPtr _obj
     return ()
 
+data IOChannelSetCloseOnUnrefMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m) => MethodInfo IOChannelSetCloseOnUnrefMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelSetCloseOnUnref
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "encoding", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -826,9 +976,9 @@
 
 iOChannelSetEncoding ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Maybe (T.Text) ->                       -- encoding
-    m IOStatus
+    IOChannel                               -- _obj
+    -> Maybe (T.Text)                       -- encoding
+    -> m IOStatus                           -- result
 iOChannelSetEncoding _obj encoding = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeEncoding <- case encoding of
@@ -846,11 +996,14 @@
         freeMem maybeEncoding
      )
 
+data IOChannelSetEncodingMethodInfo
+instance (signature ~ (Maybe (T.Text) -> m IOStatus), MonadIO m) => MethodInfo IOChannelSetEncodingMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelSetEncoding
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "IOFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -864,9 +1017,9 @@
 
 iOChannelSetFlags ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    [IOFlags] ->                            -- flags
-    m IOStatus
+    IOChannel                               -- _obj
+    -> [IOFlags]                            -- flags
+    -> m IOStatus                           -- result
 iOChannelSetFlags _obj flags = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let flags' = gflagsToWord flags
@@ -879,11 +1032,14 @@
         return ()
      )
 
+data IOChannelSetFlagsMethodInfo
+instance (signature ~ ([IOFlags] -> m IOStatus), MonadIO m) => MethodInfo IOChannelSetFlagsMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelSetFlags
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "line_term", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -897,27 +1053,30 @@
 
 iOChannelSetLineTerm ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Maybe (T.Text) ->                       -- line_term
-    Int32 ->                                -- length
-    m ()
-iOChannelSetLineTerm _obj line_term length_ = liftIO $ do
+    IOChannel                               -- _obj
+    -> Maybe (T.Text)                       -- lineTerm
+    -> Int32                                -- length_
+    -> m ()                                 -- result
+iOChannelSetLineTerm _obj lineTerm length_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    maybeLine_term <- case line_term of
+    maybeLineTerm <- case lineTerm 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_
+        Just jLineTerm -> do
+            jLineTerm' <- textToCString jLineTerm
+            return jLineTerm'
+    g_io_channel_set_line_term _obj' maybeLineTerm length_
     touchManagedPtr _obj
-    freeMem maybeLine_term
+    freeMem maybeLineTerm
     return ()
 
+data IOChannelSetLineTermMethodInfo
+instance (signature ~ (Maybe (T.Text) -> Int32 -> m ()), MonadIO m) => MethodInfo IOChannelSetLineTermMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelSetLineTerm
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flush", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -931,9 +1090,9 @@
 
 iOChannelShutdown ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Bool ->                                 -- flush
-    m IOStatus
+    IOChannel                               -- _obj
+    -> Bool                                 -- flush
+    -> m IOStatus                           -- result
 iOChannelShutdown _obj flush = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let flush' = (fromIntegral . fromEnum) flush
@@ -946,11 +1105,14 @@
         return ()
      )
 
+data IOChannelShutdownMethodInfo
+instance (signature ~ (Bool -> m IOStatus), MonadIO m) => MethodInfo IOChannelShutdownMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelShutdown
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -962,19 +1124,22 @@
 
 iOChannelUnixGetFd ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m Int32
+    IOChannel                               -- _obj
+    -> m Int32                              -- result
 iOChannelUnixGetFd _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_io_channel_unix_get_fd _obj'
     touchManagedPtr _obj
     return result
 
+data IOChannelUnixGetFdMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo IOChannelUnixGetFdMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelUnixGetFd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -986,19 +1151,22 @@
 
 iOChannelUnref ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    m ()
+    IOChannel                               -- _obj
+    -> m ()                                 -- result
 iOChannelUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_io_channel_unref _obj'
     touchManagedPtr _obj
     return ()
 
+data IOChannelUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo IOChannelUnrefMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelUnref
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1013,25 +1181,28 @@
 {-# 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
+    IOChannel                               -- _obj
+    -> T.Text                               -- buf
+    -> Word64                               -- count
+    -> Word64                               -- bytesWritten
+    -> m IOError                            -- result
+iOChannelWrite _obj buf count bytesWritten = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     buf' <- textToCString buf
-    result <- g_io_channel_write _obj' buf' count bytes_written
+    result <- g_io_channel_write _obj' buf' count bytesWritten
     let result' = (toEnum . fromIntegral) result
     touchManagedPtr _obj
     freeMem buf'
     return result'
 
+data IOChannelWriteMethodInfo
+instance (signature ~ (T.Text -> Word64 -> Word64 -> m IOError), MonadIO m) => MethodInfo IOChannelWriteMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelWrite
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buf", argType = TCArray False (-1) (-1) (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes_written", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1047,29 +1218,32 @@
 
 iOChannelWriteChars ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Ptr Word8 ->                            -- buf
-    Int64 ->                                -- count
-    m (IOStatus,Word64)
+    IOChannel                               -- _obj
+    -> Ptr Word8                            -- buf
+    -> Int64                                -- count
+    -> m (IOStatus,Word64)                  -- result
 iOChannelWriteChars _obj buf count = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    bytes_written <- allocMem :: IO (Ptr Word64)
+    bytesWritten <- allocMem :: IO (Ptr Word64)
     onException (do
-        result <- propagateGError $ g_io_channel_write_chars _obj' buf count bytes_written
+        result <- propagateGError $ g_io_channel_write_chars _obj' buf count bytesWritten
         let result' = (toEnum . fromIntegral) result
-        bytes_written' <- peek bytes_written
+        bytesWritten' <- peek bytesWritten
         touchManagedPtr _obj
-        freeMem bytes_written
-        return (result', bytes_written')
+        freeMem bytesWritten
+        return (result', bytesWritten')
      ) (do
-        freeMem bytes_written
+        freeMem bytesWritten
      )
 
+data IOChannelWriteCharsMethodInfo
+instance (signature ~ (Ptr Word8 -> Int64 -> m (IOStatus,Word64)), MonadIO m) => MethodInfo IOChannelWriteCharsMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelWriteChars
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "IOChannel", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "thechar", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -1083,9 +1257,9 @@
 
 iOChannelWriteUnichar ::
     (MonadIO m) =>
-    IOChannel ->                            -- _obj
-    Char ->                                 -- thechar
-    m IOStatus
+    IOChannel                               -- _obj
+    -> Char                                 -- thechar
+    -> m IOStatus                           -- result
 iOChannelWriteUnichar _obj thechar = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let thechar' = (fromIntegral . ord) thechar
@@ -1097,5 +1271,91 @@
      ) (do
         return ()
      )
+
+data IOChannelWriteUnicharMethodInfo
+instance (signature ~ (Char -> m IOStatus), MonadIO m) => MethodInfo IOChannelWriteUnicharMethodInfo IOChannel signature where
+    overloadedMethod _ = iOChannelWriteUnichar
+
+-- method IOChannel::error_from_errno
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "en", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                     -- result
+iOChannelErrorFromErrno en = liftIO $ do
+    result <- g_io_channel_error_from_errno en
+    let result' = (toEnum . fromIntegral) result
+    return result'
+
+-- method IOChannel::error_quark
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+iOChannelErrorQuark  = liftIO $ do
+    result <- g_io_channel_error_quark
+    return result
+
+type family ResolveIOChannelMethod (t :: Symbol) (o :: *) :: * where
+    ResolveIOChannelMethod "close" o = IOChannelCloseMethodInfo
+    ResolveIOChannelMethod "flush" o = IOChannelFlushMethodInfo
+    ResolveIOChannelMethod "init" o = IOChannelInitMethodInfo
+    ResolveIOChannelMethod "read" o = IOChannelReadMethodInfo
+    ResolveIOChannelMethod "readChars" o = IOChannelReadCharsMethodInfo
+    ResolveIOChannelMethod "readLine" o = IOChannelReadLineMethodInfo
+    ResolveIOChannelMethod "readToEnd" o = IOChannelReadToEndMethodInfo
+    ResolveIOChannelMethod "readUnichar" o = IOChannelReadUnicharMethodInfo
+    ResolveIOChannelMethod "ref" o = IOChannelRefMethodInfo
+    ResolveIOChannelMethod "seek" o = IOChannelSeekMethodInfo
+    ResolveIOChannelMethod "seekPosition" o = IOChannelSeekPositionMethodInfo
+    ResolveIOChannelMethod "shutdown" o = IOChannelShutdownMethodInfo
+    ResolveIOChannelMethod "unixGetFd" o = IOChannelUnixGetFdMethodInfo
+    ResolveIOChannelMethod "unref" o = IOChannelUnrefMethodInfo
+    ResolveIOChannelMethod "write" o = IOChannelWriteMethodInfo
+    ResolveIOChannelMethod "writeChars" o = IOChannelWriteCharsMethodInfo
+    ResolveIOChannelMethod "writeUnichar" o = IOChannelWriteUnicharMethodInfo
+    ResolveIOChannelMethod "getBufferCondition" o = IOChannelGetBufferConditionMethodInfo
+    ResolveIOChannelMethod "getBufferSize" o = IOChannelGetBufferSizeMethodInfo
+    ResolveIOChannelMethod "getBuffered" o = IOChannelGetBufferedMethodInfo
+    ResolveIOChannelMethod "getCloseOnUnref" o = IOChannelGetCloseOnUnrefMethodInfo
+    ResolveIOChannelMethod "getEncoding" o = IOChannelGetEncodingMethodInfo
+    ResolveIOChannelMethod "getFlags" o = IOChannelGetFlagsMethodInfo
+    ResolveIOChannelMethod "getLineTerm" o = IOChannelGetLineTermMethodInfo
+    ResolveIOChannelMethod "setBufferSize" o = IOChannelSetBufferSizeMethodInfo
+    ResolveIOChannelMethod "setBuffered" o = IOChannelSetBufferedMethodInfo
+    ResolveIOChannelMethod "setCloseOnUnref" o = IOChannelSetCloseOnUnrefMethodInfo
+    ResolveIOChannelMethod "setEncoding" o = IOChannelSetEncodingMethodInfo
+    ResolveIOChannelMethod "setFlags" o = IOChannelSetFlagsMethodInfo
+    ResolveIOChannelMethod "setLineTerm" o = IOChannelSetLineTermMethodInfo
+    ResolveIOChannelMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveIOChannelMethod t IOChannel, MethodInfo info IOChannel p) => IsLabelProxy t (IOChannel -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveIOChannelMethod t IOChannel, MethodInfo info IOChannel p) => IsLabel t (IOChannel -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/IOChannel.hs-boot b/GI/GLib/Structs/IOChannel.hs-boot
--- a/GI/GLib/Structs/IOChannel.hs-boot
+++ b/GI/GLib/Structs/IOChannel.hs-boot
@@ -9,3 +9,33 @@
 
 newtype IOChannel = IOChannel (ForeignPtr IOChannel)
 instance BoxedObject IOChannel where
+data IOChannelCloseMethodInfo
+data IOChannelFlushMethodInfo
+data IOChannelGetBufferConditionMethodInfo
+data IOChannelGetBufferSizeMethodInfo
+data IOChannelGetBufferedMethodInfo
+data IOChannelGetCloseOnUnrefMethodInfo
+data IOChannelGetEncodingMethodInfo
+data IOChannelGetFlagsMethodInfo
+data IOChannelGetLineTermMethodInfo
+data IOChannelInitMethodInfo
+data IOChannelReadMethodInfo
+data IOChannelReadCharsMethodInfo
+data IOChannelReadLineMethodInfo
+data IOChannelReadToEndMethodInfo
+data IOChannelReadUnicharMethodInfo
+data IOChannelRefMethodInfo
+data IOChannelSeekMethodInfo
+data IOChannelSeekPositionMethodInfo
+data IOChannelSetBufferSizeMethodInfo
+data IOChannelSetBufferedMethodInfo
+data IOChannelSetCloseOnUnrefMethodInfo
+data IOChannelSetEncodingMethodInfo
+data IOChannelSetFlagsMethodInfo
+data IOChannelSetLineTermMethodInfo
+data IOChannelShutdownMethodInfo
+data IOChannelUnixGetFdMethodInfo
+data IOChannelUnrefMethodInfo
+data IOChannelWriteMethodInfo
+data IOChannelWriteCharsMethodInfo
+data IOChannelWriteUnicharMethodInfo
diff --git a/GI/GLib/Structs/IOFuncs.hs b/GI/GLib/Structs/IOFuncs.hs
--- a/GI/GLib/Structs/IOFuncs.hs
+++ b/GI/GLib/Structs/IOFuncs.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -13,6 +14,7 @@
 
 -- * Exported types
     IOFuncs(..)                             ,
+    newZeroIOFuncs                          ,
     noIOFuncs                               ,
 
 
@@ -29,6 +31,10 @@
 import GI.GLib.Callbacks
 
 newtype IOFuncs = IOFuncs (ForeignPtr IOFuncs)
+-- | Construct a `IOFuncs` struct initialized to zero.
+newZeroIOFuncs :: MonadIO m => m IOFuncs
+newZeroIOFuncs = liftIO $ callocBytes 64 >>= wrapPtr IOFuncs
+
 noIOFuncs :: Maybe IOFuncs
 noIOFuncs = Nothing
 
@@ -47,5 +53,16 @@
 -- 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"
+
+type family ResolveIOFuncsMethod (t :: Symbol) (o :: *) :: * where
+    ResolveIOFuncsMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveIOFuncsMethod t IOFuncs, MethodInfo info IOFuncs p) => IsLabelProxy t (IOFuncs -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveIOFuncsMethod t IOFuncs, MethodInfo info IOFuncs p) => IsLabel t (IOFuncs -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/KeyFile.hs b/GI/GLib/Structs/KeyFile.hs
--- a/GI/GLib/Structs/KeyFile.hs
+++ b/GI/GLib/Structs/KeyFile.hs
@@ -1,1915 +1,2164 @@
 
-{- |
-Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
-License    : LGPL-2.1
-Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
-
-The GKeyFile struct contains only private data
-and should not be accessed directly.
--}
-
-module GI.GLib.Structs.KeyFile
-    ( 
-
--- * Exported types
-    KeyFile(..)                             ,
-    noKeyFile                               ,
-
-
- -- * Methods
--- ** keyFileGetBoolean
-    keyFileGetBoolean                       ,
-
-
--- ** keyFileGetBooleanList
-    keyFileGetBooleanList                   ,
-
-
--- ** keyFileGetComment
-    keyFileGetComment                       ,
-
-
--- ** keyFileGetDouble
-    keyFileGetDouble                        ,
-
-
--- ** keyFileGetDoubleList
-    keyFileGetDoubleList                    ,
-
-
--- ** keyFileGetGroups
-    keyFileGetGroups                        ,
-
-
--- ** keyFileGetInt64
-    keyFileGetInt64                         ,
-
-
--- ** keyFileGetInteger
-    keyFileGetInteger                       ,
-
-
--- ** keyFileGetIntegerList
-    keyFileGetIntegerList                   ,
-
-
--- ** keyFileGetKeys
-    keyFileGetKeys                          ,
-
-
--- ** keyFileGetLocaleString
-    keyFileGetLocaleString                  ,
-
-
--- ** keyFileGetLocaleStringList
-    keyFileGetLocaleStringList              ,
-
-
--- ** keyFileGetStartGroup
-    keyFileGetStartGroup                    ,
-
-
--- ** keyFileGetString
-    keyFileGetString                        ,
-
-
--- ** keyFileGetStringList
-    keyFileGetStringList                    ,
-
-
--- ** keyFileGetUint64
-    keyFileGetUint64                        ,
-
-
--- ** keyFileGetValue
-    keyFileGetValue                         ,
-
-
--- ** keyFileHasGroup
-    keyFileHasGroup                         ,
-
-
--- ** keyFileLoadFromData
-    keyFileLoadFromData                     ,
-
-
--- ** keyFileLoadFromDataDirs
-    keyFileLoadFromDataDirs                 ,
-
-
--- ** keyFileLoadFromDirs
-    keyFileLoadFromDirs                     ,
-
-
--- ** keyFileLoadFromFile
-    keyFileLoadFromFile                     ,
-
-
--- ** keyFileNew
-    keyFileNew                              ,
-
-
--- ** keyFileRemoveComment
-    keyFileRemoveComment                    ,
-
-
--- ** keyFileRemoveGroup
-    keyFileRemoveGroup                      ,
-
-
--- ** keyFileRemoveKey
-    keyFileRemoveKey                        ,
-
-
--- ** keyFileSaveToFile
-    keyFileSaveToFile                       ,
-
-
--- ** keyFileSetBoolean
-    keyFileSetBoolean                       ,
-
-
--- ** keyFileSetBooleanList
-    keyFileSetBooleanList                   ,
-
-
--- ** keyFileSetComment
-    keyFileSetComment                       ,
-
-
--- ** keyFileSetDouble
-    keyFileSetDouble                        ,
-
-
--- ** keyFileSetDoubleList
-    keyFileSetDoubleList                    ,
-
-
--- ** keyFileSetInt64
-    keyFileSetInt64                         ,
-
-
--- ** keyFileSetInteger
-    keyFileSetInteger                       ,
-
-
--- ** keyFileSetIntegerList
-    keyFileSetIntegerList                   ,
-
-
--- ** keyFileSetListSeparator
-    keyFileSetListSeparator                 ,
-
-
--- ** keyFileSetLocaleString
-    keyFileSetLocaleString                  ,
-
-
--- ** keyFileSetLocaleStringList
-    keyFileSetLocaleStringList              ,
-
-
--- ** keyFileSetString
-    keyFileSetString                        ,
-
-
--- ** keyFileSetStringList
-    keyFileSetStringList                    ,
-
-
--- ** keyFileSetUint64
-    keyFileSetUint64                        ,
-
-
--- ** keyFileSetValue
-    keyFileSetValue                         ,
-
-
--- ** keyFileToData
-    keyFileToData                           ,
-
-
--- ** keyFileUnref
-    keyFileUnref                            ,
-
-
-
-
-    ) where
-
-import Prelude ()
-import Data.GI.Base.ShortPrelude
-
-import qualified Data.Text as T
-import qualified Data.ByteString.Char8 as B
-import qualified Data.Map as Map
-
-import GI.GLib.Types
-import GI.GLib.Callbacks
-
-newtype KeyFile = KeyFile (ForeignPtr KeyFile)
-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
-
-noKeyFile :: Maybe KeyFile
-noKeyFile = Nothing
-
--- 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
-    checkUnexpectedReturnNULL "g_key_file_new" result
-    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_
-        checkUnexpectedReturnNULL "g_key_file_get_boolean_list" result
-        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'
-        checkUnexpectedReturnNULL "g_key_file_get_comment" result
-        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_
-        checkUnexpectedReturnNULL "g_key_file_get_double_list" result
-        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_
-    checkUnexpectedReturnNULL "g_key_file_get_groups" result
-    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_
-        checkUnexpectedReturnNULL "g_key_file_get_integer_list" result
-        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_
-        checkUnexpectedReturnNULL "g_key_file_get_keys" result
-        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
-        checkUnexpectedReturnNULL "g_key_file_get_locale_string" result
-        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_
-        checkUnexpectedReturnNULL "g_key_file_get_locale_string_list" result
-        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'
-    checkUnexpectedReturnNULL "g_key_file_get_start_group" result
-    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'
-        checkUnexpectedReturnNULL "g_key_file_get_string" result
-        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_
-        checkUnexpectedReturnNULL "g_key_file_get_string_list" result
-        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'
-        checkUnexpectedReturnNULL "g_key_file_get_value" result
-        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_
-        checkUnexpectedReturnNULL "g_key_file_to_data" result
-        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 ()
+
+{- |
+Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
+License    : LGPL-2.1
+Maintainer : Iñaki García Etxebarria (garetxe@gmail.com)
+
+The GKeyFile struct contains only private data
+and should not be accessed directly.
+-}
+
+module GI.GLib.Structs.KeyFile
+    ( 
+
+-- * Exported types
+    KeyFile(..)                             ,
+    noKeyFile                               ,
+
+
+ -- * Methods
+-- ** keyFileErrorQuark
+    keyFileErrorQuark                       ,
+
+
+-- ** keyFileGetBoolean
+    KeyFileGetBooleanMethodInfo             ,
+    keyFileGetBoolean                       ,
+
+
+-- ** keyFileGetBooleanList
+    KeyFileGetBooleanListMethodInfo         ,
+    keyFileGetBooleanList                   ,
+
+
+-- ** keyFileGetComment
+    KeyFileGetCommentMethodInfo             ,
+    keyFileGetComment                       ,
+
+
+-- ** keyFileGetDouble
+    KeyFileGetDoubleMethodInfo              ,
+    keyFileGetDouble                        ,
+
+
+-- ** keyFileGetDoubleList
+    KeyFileGetDoubleListMethodInfo          ,
+    keyFileGetDoubleList                    ,
+
+
+-- ** keyFileGetGroups
+    KeyFileGetGroupsMethodInfo              ,
+    keyFileGetGroups                        ,
+
+
+-- ** keyFileGetInt64
+    KeyFileGetInt64MethodInfo               ,
+    keyFileGetInt64                         ,
+
+
+-- ** keyFileGetInteger
+    KeyFileGetIntegerMethodInfo             ,
+    keyFileGetInteger                       ,
+
+
+-- ** keyFileGetIntegerList
+    KeyFileGetIntegerListMethodInfo         ,
+    keyFileGetIntegerList                   ,
+
+
+-- ** keyFileGetKeys
+    KeyFileGetKeysMethodInfo                ,
+    keyFileGetKeys                          ,
+
+
+-- ** keyFileGetLocaleString
+    KeyFileGetLocaleStringMethodInfo        ,
+    keyFileGetLocaleString                  ,
+
+
+-- ** keyFileGetLocaleStringList
+    KeyFileGetLocaleStringListMethodInfo    ,
+    keyFileGetLocaleStringList              ,
+
+
+-- ** keyFileGetStartGroup
+    KeyFileGetStartGroupMethodInfo          ,
+    keyFileGetStartGroup                    ,
+
+
+-- ** keyFileGetString
+    KeyFileGetStringMethodInfo              ,
+    keyFileGetString                        ,
+
+
+-- ** keyFileGetStringList
+    KeyFileGetStringListMethodInfo          ,
+    keyFileGetStringList                    ,
+
+
+-- ** keyFileGetUint64
+    KeyFileGetUint64MethodInfo              ,
+    keyFileGetUint64                        ,
+
+
+-- ** keyFileGetValue
+    KeyFileGetValueMethodInfo               ,
+    keyFileGetValue                         ,
+
+
+-- ** keyFileHasGroup
+    KeyFileHasGroupMethodInfo               ,
+    keyFileHasGroup                         ,
+
+
+-- ** keyFileLoadFromData
+    KeyFileLoadFromDataMethodInfo           ,
+    keyFileLoadFromData                     ,
+
+
+-- ** keyFileLoadFromDataDirs
+    KeyFileLoadFromDataDirsMethodInfo       ,
+    keyFileLoadFromDataDirs                 ,
+
+
+-- ** keyFileLoadFromDirs
+    KeyFileLoadFromDirsMethodInfo           ,
+    keyFileLoadFromDirs                     ,
+
+
+-- ** keyFileLoadFromFile
+    KeyFileLoadFromFileMethodInfo           ,
+    keyFileLoadFromFile                     ,
+
+
+-- ** keyFileNew
+    keyFileNew                              ,
+
+
+-- ** keyFileRemoveComment
+    KeyFileRemoveCommentMethodInfo          ,
+    keyFileRemoveComment                    ,
+
+
+-- ** keyFileRemoveGroup
+    KeyFileRemoveGroupMethodInfo            ,
+    keyFileRemoveGroup                      ,
+
+
+-- ** keyFileRemoveKey
+    KeyFileRemoveKeyMethodInfo              ,
+    keyFileRemoveKey                        ,
+
+
+-- ** keyFileSaveToFile
+    KeyFileSaveToFileMethodInfo             ,
+    keyFileSaveToFile                       ,
+
+
+-- ** keyFileSetBoolean
+    KeyFileSetBooleanMethodInfo             ,
+    keyFileSetBoolean                       ,
+
+
+-- ** keyFileSetBooleanList
+    KeyFileSetBooleanListMethodInfo         ,
+    keyFileSetBooleanList                   ,
+
+
+-- ** keyFileSetComment
+    KeyFileSetCommentMethodInfo             ,
+    keyFileSetComment                       ,
+
+
+-- ** keyFileSetDouble
+    KeyFileSetDoubleMethodInfo              ,
+    keyFileSetDouble                        ,
+
+
+-- ** keyFileSetDoubleList
+    KeyFileSetDoubleListMethodInfo          ,
+    keyFileSetDoubleList                    ,
+
+
+-- ** keyFileSetInt64
+    KeyFileSetInt64MethodInfo               ,
+    keyFileSetInt64                         ,
+
+
+-- ** keyFileSetInteger
+    KeyFileSetIntegerMethodInfo             ,
+    keyFileSetInteger                       ,
+
+
+-- ** keyFileSetIntegerList
+    KeyFileSetIntegerListMethodInfo         ,
+    keyFileSetIntegerList                   ,
+
+
+-- ** keyFileSetListSeparator
+    KeyFileSetListSeparatorMethodInfo       ,
+    keyFileSetListSeparator                 ,
+
+
+-- ** keyFileSetLocaleString
+    KeyFileSetLocaleStringMethodInfo        ,
+    keyFileSetLocaleString                  ,
+
+
+-- ** keyFileSetLocaleStringList
+    KeyFileSetLocaleStringListMethodInfo    ,
+    keyFileSetLocaleStringList              ,
+
+
+-- ** keyFileSetString
+    KeyFileSetStringMethodInfo              ,
+    keyFileSetString                        ,
+
+
+-- ** keyFileSetStringList
+    KeyFileSetStringListMethodInfo          ,
+    keyFileSetStringList                    ,
+
+
+-- ** keyFileSetUint64
+    KeyFileSetUint64MethodInfo              ,
+    keyFileSetUint64                        ,
+
+
+-- ** keyFileSetValue
+    KeyFileSetValueMethodInfo               ,
+    keyFileSetValue                         ,
+
+
+-- ** keyFileToData
+    KeyFileToDataMethodInfo                 ,
+    keyFileToData                           ,
+
+
+-- ** keyFileUnref
+    KeyFileUnrefMethodInfo                  ,
+    keyFileUnref                            ,
+
+
+
+
+    ) where
+
+import Prelude ()
+import Data.GI.Base.ShortPrelude
+
+import qualified Data.Text as T
+import qualified Data.ByteString.Char8 as B
+import qualified Data.Map as Map
+
+import GI.GLib.Types
+import GI.GLib.Callbacks
+
+newtype KeyFile = KeyFile (ForeignPtr KeyFile)
+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
+
+noKeyFile :: Maybe KeyFile
+noKeyFile = Nothing
+
+-- method KeyFile::new
+-- method type : Constructor
+-- Args : []
+-- Lengths : []
+-- 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                               -- result
+keyFileNew  = liftIO $ do
+    result <- g_key_file_new
+    checkUnexpectedReturnNULL "g_key_file_new" result
+    result' <- (wrapBoxed KeyFile) result
+    return result'
+
+-- method KeyFile::get_boolean
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m ()                                 -- result
+keyFileGetBoolean _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    onException (do
+        _ <- propagateGError $ g_key_file_get_boolean _obj' groupName' key'
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        return ()
+     ) (do
+        freeMem groupName'
+        freeMem key'
+     )
+
+data KeyFileGetBooleanMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo KeyFileGetBooleanMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetBoolean
+
+-- method KeyFile::get_boolean_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m [Bool]                             -- result
+keyFileGetBooleanList _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_boolean_list _obj' groupName' key' length_
+        length_' <- peek length_
+        checkUnexpectedReturnNULL "g_key_file_get_boolean_list" result
+        result' <- (unpackMapStorableArrayWithLength (/= 0) length_') result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        freeMem length_
+        return result'
+     ) (do
+        freeMem groupName'
+        freeMem key'
+        freeMem length_
+     )
+
+data KeyFileGetBooleanListMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m [Bool]), MonadIO m) => MethodInfo KeyFileGetBooleanListMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetBooleanList
+
+-- method KeyFile::get_comment
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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)                       -- groupName
+    -> T.Text                               -- key
+    -> m T.Text                             -- result
+keyFileGetComment _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeGroupName <- case groupName of
+        Nothing -> return nullPtr
+        Just jGroupName -> do
+            jGroupName' <- textToCString jGroupName
+            return jGroupName'
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_comment _obj' maybeGroupName key'
+        checkUnexpectedReturnNULL "g_key_file_get_comment" result
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem maybeGroupName
+        freeMem key'
+        return result'
+     ) (do
+        freeMem maybeGroupName
+        freeMem key'
+     )
+
+data KeyFileGetCommentMethodInfo
+instance (signature ~ (Maybe (T.Text) -> T.Text -> m T.Text), MonadIO m) => MethodInfo KeyFileGetCommentMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetComment
+
+-- method KeyFile::get_double
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m Double                             -- result
+keyFileGetDouble _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_double _obj' groupName' key'
+        let result' = realToFrac result
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        return result'
+     ) (do
+        freeMem groupName'
+        freeMem key'
+     )
+
+data KeyFileGetDoubleMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m Double), MonadIO m) => MethodInfo KeyFileGetDoubleMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetDouble
+
+-- method KeyFile::get_double_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m [Double]                           -- result
+keyFileGetDoubleList _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_double_list _obj' groupName' key' length_
+        length_' <- peek length_
+        checkUnexpectedReturnNULL "g_key_file_get_double_list" result
+        result' <- (unpackMapStorableArrayWithLength realToFrac length_') result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        freeMem length_
+        return result'
+     ) (do
+        freeMem groupName'
+        freeMem key'
+        freeMem length_
+     )
+
+data KeyFileGetDoubleListMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m [Double]), MonadIO m) => MethodInfo KeyFileGetDoubleListMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetDoubleList
+
+-- method KeyFile::get_groups
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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)                  -- result
+keyFileGetGroups _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    length_ <- allocMem :: IO (Ptr Word64)
+    result <- g_key_file_get_groups _obj' length_
+    checkUnexpectedReturnNULL "g_key_file_get_groups" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    length_' <- peek length_
+    touchManagedPtr _obj
+    freeMem length_
+    return (result', length_')
+
+data KeyFileGetGroupsMethodInfo
+instance (signature ~ (m ([T.Text],Word64)), MonadIO m) => MethodInfo KeyFileGetGroupsMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetGroups
+
+-- method KeyFile::get_int64
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m Int64                              -- result
+keyFileGetInt64 _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_int64 _obj' groupName' key'
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        return result
+     ) (do
+        freeMem groupName'
+        freeMem key'
+     )
+
+data KeyFileGetInt64MethodInfo
+instance (signature ~ (T.Text -> T.Text -> m Int64), MonadIO m) => MethodInfo KeyFileGetInt64MethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetInt64
+
+-- method KeyFile::get_integer
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m Int32                              -- result
+keyFileGetInteger _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_integer _obj' groupName' key'
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        return result
+     ) (do
+        freeMem groupName'
+        freeMem key'
+     )
+
+data KeyFileGetIntegerMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m Int32), MonadIO m) => MethodInfo KeyFileGetIntegerMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetInteger
+
+-- method KeyFile::get_integer_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m [Int32]                            -- result
+keyFileGetIntegerList _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_integer_list _obj' groupName' key' length_
+        length_' <- peek length_
+        checkUnexpectedReturnNULL "g_key_file_get_integer_list" result
+        result' <- (unpackStorableArrayWithLength length_') result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        freeMem length_
+        return result'
+     ) (do
+        freeMem groupName'
+        freeMem key'
+        freeMem length_
+     )
+
+data KeyFileGetIntegerListMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m [Int32]), MonadIO m) => MethodInfo KeyFileGetIntegerListMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetIntegerList
+
+-- method KeyFile::get_keys
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> m ([T.Text],Word64)                  -- result
+keyFileGetKeys _obj groupName = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_keys _obj' groupName' length_
+        checkUnexpectedReturnNULL "g_key_file_get_keys" result
+        result' <- unpackZeroTerminatedUTF8CArray result
+        mapZeroTerminatedCArray freeMem result
+        freeMem result
+        length_' <- peek length_
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem length_
+        return (result', length_')
+     ) (do
+        freeMem groupName'
+        freeMem length_
+     )
+
+data KeyFileGetKeysMethodInfo
+instance (signature ~ (T.Text -> m ([T.Text],Word64)), MonadIO m) => MethodInfo KeyFileGetKeysMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetKeys
+
+-- method KeyFile::get_locale_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> Maybe (T.Text)                       -- locale
+    -> m T.Text                             -- result
+keyFileGetLocaleString _obj groupName key locale = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    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' groupName' key' maybeLocale
+        checkUnexpectedReturnNULL "g_key_file_get_locale_string" result
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        freeMem maybeLocale
+        return result'
+     ) (do
+        freeMem groupName'
+        freeMem key'
+        freeMem maybeLocale
+     )
+
+data KeyFileGetLocaleStringMethodInfo
+instance (signature ~ (T.Text -> T.Text -> Maybe (T.Text) -> m T.Text), MonadIO m) => MethodInfo KeyFileGetLocaleStringMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetLocaleString
+
+-- method KeyFile::get_locale_string_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> Maybe (T.Text)                       -- locale
+    -> m ([T.Text],Word64)                  -- result
+keyFileGetLocaleStringList _obj groupName key locale = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    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' groupName' key' maybeLocale length_
+        checkUnexpectedReturnNULL "g_key_file_get_locale_string_list" result
+        result' <- unpackZeroTerminatedUTF8CArray result
+        mapZeroTerminatedCArray freeMem result
+        freeMem result
+        length_' <- peek length_
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        freeMem maybeLocale
+        freeMem length_
+        return (result', length_')
+     ) (do
+        freeMem groupName'
+        freeMem key'
+        freeMem maybeLocale
+        freeMem length_
+     )
+
+data KeyFileGetLocaleStringListMethodInfo
+instance (signature ~ (T.Text -> T.Text -> Maybe (T.Text) -> m ([T.Text],Word64)), MonadIO m) => MethodInfo KeyFileGetLocaleStringListMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetLocaleStringList
+
+-- method KeyFile::get_start_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+keyFileGetStartGroup _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    result <- g_key_file_get_start_group _obj'
+    checkUnexpectedReturnNULL "g_key_file_get_start_group" result
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr _obj
+    return result'
+
+data KeyFileGetStartGroupMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo KeyFileGetStartGroupMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetStartGroup
+
+-- method KeyFile::get_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m T.Text                             -- result
+keyFileGetString _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_string _obj' groupName' key'
+        checkUnexpectedReturnNULL "g_key_file_get_string" result
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        return result'
+     ) (do
+        freeMem groupName'
+        freeMem key'
+     )
+
+data KeyFileGetStringMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m T.Text), MonadIO m) => MethodInfo KeyFileGetStringMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetString
+
+-- method KeyFile::get_string_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m ([T.Text],Word64)                  -- result
+keyFileGetStringList _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_get_string_list _obj' groupName' key' length_
+        checkUnexpectedReturnNULL "g_key_file_get_string_list" result
+        result' <- unpackZeroTerminatedUTF8CArray result
+        mapZeroTerminatedCArray freeMem result
+        freeMem result
+        length_' <- peek length_
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        freeMem length_
+        return (result', length_')
+     ) (do
+        freeMem groupName'
+        freeMem key'
+        freeMem length_
+     )
+
+data KeyFileGetStringListMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m ([T.Text],Word64)), MonadIO m) => MethodInfo KeyFileGetStringListMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetStringList
+
+-- method KeyFile::get_uint64
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m Word64                             -- result
+keyFileGetUint64 _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_uint64 _obj' groupName' key'
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        return result
+     ) (do
+        freeMem groupName'
+        freeMem key'
+     )
+
+data KeyFileGetUint64MethodInfo
+instance (signature ~ (T.Text -> T.Text -> m Word64), MonadIO m) => MethodInfo KeyFileGetUint64MethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetUint64
+
+-- method KeyFile::get_value
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m T.Text                             -- result
+keyFileGetValue _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    onException (do
+        result <- propagateGError $ g_key_file_get_value _obj' groupName' key'
+        checkUnexpectedReturnNULL "g_key_file_get_value" result
+        result' <- cstringToText result
+        freeMem result
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        return result'
+     ) (do
+        freeMem groupName'
+        freeMem key'
+     )
+
+data KeyFileGetValueMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m T.Text), MonadIO m) => MethodInfo KeyFileGetValueMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileGetValue
+
+-- method KeyFile::has_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> m Bool                               -- result
+keyFileHasGroup _obj groupName = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    result <- g_key_file_has_group _obj' groupName'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    freeMem groupName'
+    return result'
+
+data KeyFileHasGroupMethodInfo
+instance (signature ~ (T.Text -> m Bool), MonadIO m) => MethodInfo KeyFileHasGroupMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileHasGroup
+
+-- method KeyFile::load_from_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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_'
+     )
+
+data KeyFileLoadFromDataMethodInfo
+instance (signature ~ (T.Text -> Word64 -> [KeyFileFlags] -> m ()), MonadIO m) => MethodInfo KeyFileLoadFromDataMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileLoadFromData
+
+-- method KeyFile::load_from_data_dirs
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "full_path", argType = TBasicType TFileName, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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])                           -- result
+keyFileLoadFromDataDirs _obj file flags = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    file' <- stringToCString file
+    fullPath <- allocMem :: IO (Ptr CString)
+    let flags' = gflagsToWord flags
+    onException (do
+        _ <- propagateGError $ g_key_file_load_from_data_dirs _obj' file' fullPath flags'
+        fullPath' <- peek fullPath
+        fullPath'' <- cstringToString fullPath'
+        freeMem fullPath'
+        touchManagedPtr _obj
+        freeMem file'
+        freeMem fullPath
+        return fullPath''
+     ) (do
+        freeMem file'
+        freeMem fullPath
+     )
+
+data KeyFileLoadFromDataDirsMethodInfo
+instance (signature ~ ([Char] -> [KeyFileFlags] -> m ([Char])), MonadIO m) => MethodInfo KeyFileLoadFromDataDirsMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileLoadFromDataDirs
+
+-- method KeyFile::load_from_dirs
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "search_dirs", argType = TCArray True (-1) (-1) (TBasicType TFileName), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "full_path", argType = TBasicType TFileName, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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]]                             -- searchDirs
+    -> [KeyFileFlags]                       -- flags
+    -> m ([Char])                           -- result
+keyFileLoadFromDirs _obj file searchDirs flags = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    file' <- stringToCString file
+    searchDirs' <- packZeroTerminatedFileNameArray searchDirs
+    fullPath <- allocMem :: IO (Ptr CString)
+    let flags' = gflagsToWord flags
+    onException (do
+        _ <- propagateGError $ g_key_file_load_from_dirs _obj' file' searchDirs' fullPath flags'
+        fullPath' <- peek fullPath
+        fullPath'' <- cstringToString fullPath'
+        freeMem fullPath'
+        touchManagedPtr _obj
+        freeMem file'
+        mapZeroTerminatedCArray freeMem searchDirs'
+        freeMem searchDirs'
+        freeMem fullPath
+        return fullPath''
+     ) (do
+        freeMem file'
+        mapZeroTerminatedCArray freeMem searchDirs'
+        freeMem searchDirs'
+        freeMem fullPath
+     )
+
+data KeyFileLoadFromDirsMethodInfo
+instance (signature ~ ([Char] -> [[Char]] -> [KeyFileFlags] -> m ([Char])), MonadIO m) => MethodInfo KeyFileLoadFromDirsMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileLoadFromDirs
+
+-- method KeyFile::load_from_file
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "file", argType = TBasicType TFileName, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "KeyFileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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'
+     )
+
+data KeyFileLoadFromFileMethodInfo
+instance (signature ~ ([Char] -> [KeyFileFlags] -> m ()), MonadIO m) => MethodInfo KeyFileLoadFromFileMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileLoadFromFile
+
+-- method KeyFile::remove_comment
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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)                       -- groupName
+    -> Maybe (T.Text)                       -- key
+    -> m ()                                 -- result
+keyFileRemoveComment _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeGroupName <- case groupName of
+        Nothing -> return nullPtr
+        Just jGroupName -> do
+            jGroupName' <- textToCString jGroupName
+            return jGroupName'
+    maybeKey <- case key of
+        Nothing -> return nullPtr
+        Just jKey -> do
+            jKey' <- textToCString jKey
+            return jKey'
+    onException (do
+        _ <- propagateGError $ g_key_file_remove_comment _obj' maybeGroupName maybeKey
+        touchManagedPtr _obj
+        freeMem maybeGroupName
+        freeMem maybeKey
+        return ()
+     ) (do
+        freeMem maybeGroupName
+        freeMem maybeKey
+     )
+
+data KeyFileRemoveCommentMethodInfo
+instance (signature ~ (Maybe (T.Text) -> Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo KeyFileRemoveCommentMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileRemoveComment
+
+-- method KeyFile::remove_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> m ()                                 -- result
+keyFileRemoveGroup _obj groupName = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    onException (do
+        _ <- propagateGError $ g_key_file_remove_group _obj' groupName'
+        touchManagedPtr _obj
+        freeMem groupName'
+        return ()
+     ) (do
+        freeMem groupName'
+     )
+
+data KeyFileRemoveGroupMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo KeyFileRemoveGroupMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileRemoveGroup
+
+-- method KeyFile::remove_key
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> m ()                                 -- result
+keyFileRemoveKey _obj groupName key = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    onException (do
+        _ <- propagateGError $ g_key_file_remove_key _obj' groupName' key'
+        touchManagedPtr _obj
+        freeMem groupName'
+        freeMem key'
+        return ()
+     ) (do
+        freeMem groupName'
+        freeMem key'
+     )
+
+data KeyFileRemoveKeyMethodInfo
+instance (signature ~ (T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo KeyFileRemoveKeyMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileRemoveKey
+
+-- method KeyFile::save_to_file
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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'
+     )
+
+data KeyFileSaveToFileMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo KeyFileSaveToFileMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSaveToFile
+
+-- method KeyFile::set_boolean
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> Bool                                 -- value
+    -> m ()                                 -- result
+keyFileSetBoolean _obj groupName key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    let value' = (fromIntegral . fromEnum) value
+    g_key_file_set_boolean _obj' groupName' key' value'
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    return ()
+
+data KeyFileSetBooleanMethodInfo
+instance (signature ~ (T.Text -> T.Text -> Bool -> m ()), MonadIO m) => MethodInfo KeyFileSetBooleanMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetBoolean
+
+-- method KeyFile::set_boolean_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray False (-1) 4 (TBasicType TBoolean), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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                               -- groupName
+    -> T.Text                               -- key
+    -> [Bool]                               -- list
+    -> m ()                                 -- result
+keyFileSetBooleanList _obj groupName key list = liftIO $ do
+    let length_ = fromIntegral $ length list
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    list' <- (packMapStorableArray (fromIntegral . fromEnum)) list
+    g_key_file_set_boolean_list _obj' groupName' key' list' length_
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    freeMem list'
+    return ()
+
+data KeyFileSetBooleanListMethodInfo
+instance (signature ~ (T.Text -> T.Text -> [Bool] -> m ()), MonadIO m) => MethodInfo KeyFileSetBooleanListMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetBooleanList
+
+-- method KeyFile::set_comment
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "comment", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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)                       -- groupName
+    -> Maybe (T.Text)                       -- key
+    -> T.Text                               -- comment
+    -> m ()                                 -- result
+keyFileSetComment _obj groupName key comment = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    maybeGroupName <- case groupName of
+        Nothing -> return nullPtr
+        Just jGroupName -> do
+            jGroupName' <- textToCString jGroupName
+            return jGroupName'
+    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' maybeGroupName maybeKey comment'
+        touchManagedPtr _obj
+        freeMem maybeGroupName
+        freeMem maybeKey
+        freeMem comment'
+        return ()
+     ) (do
+        freeMem maybeGroupName
+        freeMem maybeKey
+        freeMem comment'
+     )
+
+data KeyFileSetCommentMethodInfo
+instance (signature ~ (Maybe (T.Text) -> Maybe (T.Text) -> T.Text -> m ()), MonadIO m) => MethodInfo KeyFileSetCommentMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetComment
+
+-- method KeyFile::set_double
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> Double                               -- value
+    -> m ()                                 -- result
+keyFileSetDouble _obj groupName key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    let value' = realToFrac value
+    g_key_file_set_double _obj' groupName' key' value'
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    return ()
+
+data KeyFileSetDoubleMethodInfo
+instance (signature ~ (T.Text -> T.Text -> Double -> m ()), MonadIO m) => MethodInfo KeyFileSetDoubleMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetDouble
+
+-- method KeyFile::set_double_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray False (-1) 4 (TBasicType TDouble), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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                               -- groupName
+    -> T.Text                               -- key
+    -> [Double]                             -- list
+    -> m ()                                 -- result
+keyFileSetDoubleList _obj groupName key list = liftIO $ do
+    let length_ = fromIntegral $ length list
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    list' <- (packMapStorableArray realToFrac) list
+    g_key_file_set_double_list _obj' groupName' key' list' length_
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    freeMem list'
+    return ()
+
+data KeyFileSetDoubleListMethodInfo
+instance (signature ~ (T.Text -> T.Text -> [Double] -> m ()), MonadIO m) => MethodInfo KeyFileSetDoubleListMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetDoubleList
+
+-- method KeyFile::set_int64
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> Int64                                -- value
+    -> m ()                                 -- result
+keyFileSetInt64 _obj groupName key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    g_key_file_set_int64 _obj' groupName' key' value
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    return ()
+
+data KeyFileSetInt64MethodInfo
+instance (signature ~ (T.Text -> T.Text -> Int64 -> m ()), MonadIO m) => MethodInfo KeyFileSetInt64MethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetInt64
+
+-- method KeyFile::set_integer
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> Int32                                -- value
+    -> m ()                                 -- result
+keyFileSetInteger _obj groupName key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    g_key_file_set_integer _obj' groupName' key' value
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    return ()
+
+data KeyFileSetIntegerMethodInfo
+instance (signature ~ (T.Text -> T.Text -> Int32 -> m ()), MonadIO m) => MethodInfo KeyFileSetIntegerMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetInteger
+
+-- method KeyFile::set_integer_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray False (-1) 4 (TBasicType TInt32), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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                               -- groupName
+    -> T.Text                               -- key
+    -> [Int32]                              -- list
+    -> m ()                                 -- result
+keyFileSetIntegerList _obj groupName key list = liftIO $ do
+    let length_ = fromIntegral $ length list
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    list' <- packStorableArray list
+    g_key_file_set_integer_list _obj' groupName' key' list' length_
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    freeMem list'
+    return ()
+
+data KeyFileSetIntegerListMethodInfo
+instance (signature ~ (T.Text -> T.Text -> [Int32] -> m ()), MonadIO m) => MethodInfo KeyFileSetIntegerListMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetIntegerList
+
+-- method KeyFile::set_list_separator
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "separator", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+keyFileSetListSeparator _obj separator = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_key_file_set_list_separator _obj' separator
+    touchManagedPtr _obj
+    return ()
+
+data KeyFileSetListSeparatorMethodInfo
+instance (signature ~ (Int8 -> m ()), MonadIO m) => MethodInfo KeyFileSetListSeparatorMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetListSeparator
+
+-- method KeyFile::set_locale_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> T.Text                               -- locale
+    -> T.Text                               -- string
+    -> m ()                                 -- result
+keyFileSetLocaleString _obj groupName key locale string = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    locale' <- textToCString locale
+    string' <- textToCString string
+    g_key_file_set_locale_string _obj' groupName' key' locale' string'
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    freeMem locale'
+    freeMem string'
+    return ()
+
+data KeyFileSetLocaleStringMethodInfo
+instance (signature ~ (T.Text -> T.Text -> T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo KeyFileSetLocaleStringMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetLocaleString
+
+-- method KeyFile::set_locale_string_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "locale", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray True (-1) 5 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> T.Text                               -- locale
+    -> [T.Text]                             -- list
+    -> Word64                               -- length_
+    -> m ()                                 -- result
+keyFileSetLocaleStringList _obj groupName key locale list length_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    locale' <- textToCString locale
+    list' <- packZeroTerminatedUTF8CArray list
+    g_key_file_set_locale_string_list _obj' groupName' key' locale' list' length_
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    freeMem locale'
+    mapZeroTerminatedCArray freeMem list'
+    freeMem list'
+    return ()
+
+data KeyFileSetLocaleStringListMethodInfo
+instance (signature ~ (T.Text -> T.Text -> T.Text -> [T.Text] -> Word64 -> m ()), MonadIO m) => MethodInfo KeyFileSetLocaleStringListMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetLocaleStringList
+
+-- method KeyFile::set_string
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> T.Text                               -- string
+    -> m ()                                 -- result
+keyFileSetString _obj groupName key string = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    string' <- textToCString string
+    g_key_file_set_string _obj' groupName' key' string'
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    freeMem string'
+    return ()
+
+data KeyFileSetStringMethodInfo
+instance (signature ~ (T.Text -> T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo KeyFileSetStringMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetString
+
+-- method KeyFile::set_string_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray True (-1) 4 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> [T.Text]                             -- list
+    -> Word64                               -- length_
+    -> m ()                                 -- result
+keyFileSetStringList _obj groupName key list length_ = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    list' <- packZeroTerminatedUTF8CArray list
+    g_key_file_set_string_list _obj' groupName' key' list' length_
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    mapZeroTerminatedCArray freeMem list'
+    freeMem list'
+    return ()
+
+data KeyFileSetStringListMethodInfo
+instance (signature ~ (T.Text -> T.Text -> [T.Text] -> Word64 -> m ()), MonadIO m) => MethodInfo KeyFileSetStringListMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetStringList
+
+-- method KeyFile::set_uint64
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> Word64                               -- value
+    -> m ()                                 -- result
+keyFileSetUint64 _obj groupName key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    g_key_file_set_uint64 _obj' groupName' key' value
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    return ()
+
+data KeyFileSetUint64MethodInfo
+instance (signature ~ (T.Text -> T.Text -> Word64 -> m ()), MonadIO m) => MethodInfo KeyFileSetUint64MethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetUint64
+
+-- method KeyFile::set_value
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- groupName
+    -> T.Text                               -- key
+    -> T.Text                               -- value
+    -> m ()                                 -- result
+keyFileSetValue _obj groupName key value = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    groupName' <- textToCString groupName
+    key' <- textToCString key
+    value' <- textToCString value
+    g_key_file_set_value _obj' groupName' key' value'
+    touchManagedPtr _obj
+    freeMem groupName'
+    freeMem key'
+    freeMem value'
+    return ()
+
+data KeyFileSetValueMethodInfo
+instance (signature ~ (T.Text -> T.Text -> T.Text -> m ()), MonadIO m) => MethodInfo KeyFileSetValueMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileSetValue
+
+-- method KeyFile::to_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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)                    -- result
+keyFileToData _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    length_ <- allocMem :: IO (Ptr Word64)
+    onException (do
+        result <- propagateGError $ g_key_file_to_data _obj' length_
+        checkUnexpectedReturnNULL "g_key_file_to_data" result
+        result' <- cstringToText result
+        freeMem result
+        length_' <- peek length_
+        touchManagedPtr _obj
+        freeMem length_
+        return (result', length_')
+     ) (do
+        freeMem length_
+     )
+
+data KeyFileToDataMethodInfo
+instance (signature ~ (m (T.Text,Word64)), MonadIO m) => MethodInfo KeyFileToDataMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileToData
+
+-- method KeyFile::unref
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "KeyFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+keyFileUnref _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrGetPtr _obj
+    g_key_file_unref _obj'
+    touchManagedPtr _obj
+    return ()
+
+data KeyFileUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo KeyFileUnrefMethodInfo KeyFile signature where
+    overloadedMethod _ = keyFileUnref
+
+-- method KeyFile::error_quark
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+keyFileErrorQuark  = liftIO $ do
+    result <- g_key_file_error_quark
+    return result
+
+type family ResolveKeyFileMethod (t :: Symbol) (o :: *) :: * where
+    ResolveKeyFileMethod "hasGroup" o = KeyFileHasGroupMethodInfo
+    ResolveKeyFileMethod "loadFromData" o = KeyFileLoadFromDataMethodInfo
+    ResolveKeyFileMethod "loadFromDataDirs" o = KeyFileLoadFromDataDirsMethodInfo
+    ResolveKeyFileMethod "loadFromDirs" o = KeyFileLoadFromDirsMethodInfo
+    ResolveKeyFileMethod "loadFromFile" o = KeyFileLoadFromFileMethodInfo
+    ResolveKeyFileMethod "removeComment" o = KeyFileRemoveCommentMethodInfo
+    ResolveKeyFileMethod "removeGroup" o = KeyFileRemoveGroupMethodInfo
+    ResolveKeyFileMethod "removeKey" o = KeyFileRemoveKeyMethodInfo
+    ResolveKeyFileMethod "saveToFile" o = KeyFileSaveToFileMethodInfo
+    ResolveKeyFileMethod "toData" o = KeyFileToDataMethodInfo
+    ResolveKeyFileMethod "unref" o = KeyFileUnrefMethodInfo
+    ResolveKeyFileMethod "getBoolean" o = KeyFileGetBooleanMethodInfo
+    ResolveKeyFileMethod "getBooleanList" o = KeyFileGetBooleanListMethodInfo
+    ResolveKeyFileMethod "getComment" o = KeyFileGetCommentMethodInfo
+    ResolveKeyFileMethod "getDouble" o = KeyFileGetDoubleMethodInfo
+    ResolveKeyFileMethod "getDoubleList" o = KeyFileGetDoubleListMethodInfo
+    ResolveKeyFileMethod "getGroups" o = KeyFileGetGroupsMethodInfo
+    ResolveKeyFileMethod "getInt64" o = KeyFileGetInt64MethodInfo
+    ResolveKeyFileMethod "getInteger" o = KeyFileGetIntegerMethodInfo
+    ResolveKeyFileMethod "getIntegerList" o = KeyFileGetIntegerListMethodInfo
+    ResolveKeyFileMethod "getKeys" o = KeyFileGetKeysMethodInfo
+    ResolveKeyFileMethod "getLocaleString" o = KeyFileGetLocaleStringMethodInfo
+    ResolveKeyFileMethod "getLocaleStringList" o = KeyFileGetLocaleStringListMethodInfo
+    ResolveKeyFileMethod "getStartGroup" o = KeyFileGetStartGroupMethodInfo
+    ResolveKeyFileMethod "getString" o = KeyFileGetStringMethodInfo
+    ResolveKeyFileMethod "getStringList" o = KeyFileGetStringListMethodInfo
+    ResolveKeyFileMethod "getUint64" o = KeyFileGetUint64MethodInfo
+    ResolveKeyFileMethod "getValue" o = KeyFileGetValueMethodInfo
+    ResolveKeyFileMethod "setBoolean" o = KeyFileSetBooleanMethodInfo
+    ResolveKeyFileMethod "setBooleanList" o = KeyFileSetBooleanListMethodInfo
+    ResolveKeyFileMethod "setComment" o = KeyFileSetCommentMethodInfo
+    ResolveKeyFileMethod "setDouble" o = KeyFileSetDoubleMethodInfo
+    ResolveKeyFileMethod "setDoubleList" o = KeyFileSetDoubleListMethodInfo
+    ResolveKeyFileMethod "setInt64" o = KeyFileSetInt64MethodInfo
+    ResolveKeyFileMethod "setInteger" o = KeyFileSetIntegerMethodInfo
+    ResolveKeyFileMethod "setIntegerList" o = KeyFileSetIntegerListMethodInfo
+    ResolveKeyFileMethod "setListSeparator" o = KeyFileSetListSeparatorMethodInfo
+    ResolveKeyFileMethod "setLocaleString" o = KeyFileSetLocaleStringMethodInfo
+    ResolveKeyFileMethod "setLocaleStringList" o = KeyFileSetLocaleStringListMethodInfo
+    ResolveKeyFileMethod "setString" o = KeyFileSetStringMethodInfo
+    ResolveKeyFileMethod "setStringList" o = KeyFileSetStringListMethodInfo
+    ResolveKeyFileMethod "setUint64" o = KeyFileSetUint64MethodInfo
+    ResolveKeyFileMethod "setValue" o = KeyFileSetValueMethodInfo
+    ResolveKeyFileMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveKeyFileMethod t KeyFile, MethodInfo info KeyFile p) => IsLabelProxy t (KeyFile -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveKeyFileMethod t KeyFile, MethodInfo info KeyFile p) => IsLabel t (KeyFile -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/KeyFile.hs-boot b/GI/GLib/Structs/KeyFile.hs-boot
--- a/GI/GLib/Structs/KeyFile.hs-boot
+++ b/GI/GLib/Structs/KeyFile.hs-boot
@@ -9,3 +9,46 @@
 
 newtype KeyFile = KeyFile (ForeignPtr KeyFile)
 instance BoxedObject KeyFile where
+data KeyFileGetBooleanMethodInfo
+data KeyFileGetBooleanListMethodInfo
+data KeyFileGetCommentMethodInfo
+data KeyFileGetDoubleMethodInfo
+data KeyFileGetDoubleListMethodInfo
+data KeyFileGetGroupsMethodInfo
+data KeyFileGetInt64MethodInfo
+data KeyFileGetIntegerMethodInfo
+data KeyFileGetIntegerListMethodInfo
+data KeyFileGetKeysMethodInfo
+data KeyFileGetLocaleStringMethodInfo
+data KeyFileGetLocaleStringListMethodInfo
+data KeyFileGetStartGroupMethodInfo
+data KeyFileGetStringMethodInfo
+data KeyFileGetStringListMethodInfo
+data KeyFileGetUint64MethodInfo
+data KeyFileGetValueMethodInfo
+data KeyFileHasGroupMethodInfo
+data KeyFileLoadFromDataMethodInfo
+data KeyFileLoadFromDataDirsMethodInfo
+data KeyFileLoadFromDirsMethodInfo
+data KeyFileLoadFromFileMethodInfo
+data KeyFileRemoveCommentMethodInfo
+data KeyFileRemoveGroupMethodInfo
+data KeyFileRemoveKeyMethodInfo
+data KeyFileSaveToFileMethodInfo
+data KeyFileSetBooleanMethodInfo
+data KeyFileSetBooleanListMethodInfo
+data KeyFileSetCommentMethodInfo
+data KeyFileSetDoubleMethodInfo
+data KeyFileSetDoubleListMethodInfo
+data KeyFileSetInt64MethodInfo
+data KeyFileSetIntegerMethodInfo
+data KeyFileSetIntegerListMethodInfo
+data KeyFileSetListSeparatorMethodInfo
+data KeyFileSetLocaleStringMethodInfo
+data KeyFileSetLocaleStringListMethodInfo
+data KeyFileSetStringMethodInfo
+data KeyFileSetStringListMethodInfo
+data KeyFileSetUint64MethodInfo
+data KeyFileSetValueMethodInfo
+data KeyFileToDataMethodInfo
+data KeyFileUnrefMethodInfo
diff --git a/GI/GLib/Structs/MainContext.hs b/GI/GLib/Structs/MainContext.hs
--- a/GI/GLib/Structs/MainContext.hs
+++ b/GI/GLib/Structs/MainContext.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,42 +19,60 @@
 
  -- * Methods
 -- ** mainContextAcquire
+    MainContextAcquireMethodInfo            ,
     mainContextAcquire                      ,
 
 
 -- ** mainContextAddPoll
+    MainContextAddPollMethodInfo            ,
     mainContextAddPoll                      ,
 
 
 -- ** mainContextCheck
+    MainContextCheckMethodInfo              ,
     mainContextCheck                        ,
 
 
+-- ** mainContextDefault
+    mainContextDefault                      ,
+
+
 -- ** mainContextDispatch
+    MainContextDispatchMethodInfo           ,
     mainContextDispatch                     ,
 
 
 -- ** mainContextFindSourceByFuncsUserData
+    MainContextFindSourceByFuncsUserDataMethodInfo,
     mainContextFindSourceByFuncsUserData    ,
 
 
 -- ** mainContextFindSourceById
+    MainContextFindSourceByIdMethodInfo     ,
     mainContextFindSourceById               ,
 
 
 -- ** mainContextFindSourceByUserData
+    MainContextFindSourceByUserDataMethodInfo,
     mainContextFindSourceByUserData         ,
 
 
+-- ** mainContextGetThreadDefault
+    mainContextGetThreadDefault             ,
+
+
 -- ** mainContextInvokeFull
+    MainContextInvokeFullMethodInfo         ,
     mainContextInvokeFull                   ,
 
 
 -- ** mainContextIsOwner
+    MainContextIsOwnerMethodInfo            ,
     mainContextIsOwner                      ,
 
 
 -- ** mainContextIteration
+    MainContextIterationMethodInfo          ,
     mainContextIteration                    ,
 
 
@@ -62,46 +81,61 @@
 
 
 -- ** mainContextPending
+    MainContextPendingMethodInfo            ,
     mainContextPending                      ,
 
 
 -- ** mainContextPopThreadDefault
+    MainContextPopThreadDefaultMethodInfo   ,
     mainContextPopThreadDefault             ,
 
 
 -- ** mainContextPrepare
+    MainContextPrepareMethodInfo            ,
     mainContextPrepare                      ,
 
 
 -- ** mainContextPushThreadDefault
+    MainContextPushThreadDefaultMethodInfo  ,
     mainContextPushThreadDefault            ,
 
 
 -- ** mainContextQuery
+    MainContextQueryMethodInfo              ,
     mainContextQuery                        ,
 
 
 -- ** mainContextRef
+    MainContextRefMethodInfo                ,
     mainContextRef                          ,
 
 
+-- ** mainContextRefThreadDefault
+    mainContextRefThreadDefault             ,
+
+
 -- ** mainContextRelease
+    MainContextReleaseMethodInfo            ,
     mainContextRelease                      ,
 
 
 -- ** mainContextRemovePoll
+    MainContextRemovePollMethodInfo         ,
     mainContextRemovePoll                   ,
 
 
 -- ** mainContextUnref
+    MainContextUnrefMethodInfo              ,
     mainContextUnref                        ,
 
 
 -- ** mainContextWait
+    MainContextWaitMethodInfo               ,
     mainContextWait                         ,
 
 
 -- ** mainContextWakeup
+    MainContextWakeupMethodInfo             ,
     mainContextWakeup                       ,
 
 
@@ -133,7 +167,6 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "GLib" "MainContext"
 -- throws : False
 -- Skip return : False
@@ -144,7 +177,7 @@
 
 mainContextNew ::
     (MonadIO m) =>
-    m MainContext
+    m MainContext                           -- result
 mainContextNew  = liftIO $ do
     result <- g_main_context_new
     checkUnexpectedReturnNULL "g_main_context_new" result
@@ -153,9 +186,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -167,8 +199,8 @@
 
 mainContextAcquire ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    m Bool
+    MainContext                             -- _obj
+    -> m Bool                               -- result
 mainContextAcquire _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_main_context_acquire _obj'
@@ -176,11 +208,14 @@
     touchManagedPtr _obj
     return result'
 
+data MainContextAcquireMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo MainContextAcquireMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextAcquire
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -194,10 +229,10 @@
 
 mainContextAddPoll ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    PollFD ->                               -- fd
-    Int32 ->                                -- priority
-    m ()
+    MainContext                             -- _obj
+    -> PollFD                               -- fd
+    -> Int32                                -- priority
+    -> m ()                                 -- result
 mainContextAddPoll _obj fd priority = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let fd' = unsafeManagedPtrGetPtr fd
@@ -206,11 +241,14 @@
     touchManagedPtr fd
     return ()
 
+data MainContextAddPollMethodInfo
+instance (signature ~ (PollFD -> Int32 -> m ()), MonadIO m) => MethodInfo MainContextAddPollMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextAddPoll
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fds", argType = TCArray False (-1) 3 (TInterface "GLib" "PollFD"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_fds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "n_fds", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -225,26 +263,29 @@
 
 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
+    MainContext                             -- _obj
+    -> Int32                                -- maxPriority
+    -> [PollFD]                             -- fds
+    -> m Int32                              -- result
+mainContextCheck _obj maxPriority fds = liftIO $ do
+    let nFds = 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
+    result <- g_main_context_check _obj' maxPriority fds'' nFds
     touchManagedPtr _obj
     mapM_ touchManagedPtr fds
     freeMem fds''
     return result
 
+data MainContextCheckMethodInfo
+instance (signature ~ (Int32 -> [PollFD] -> m Int32), MonadIO m) => MethodInfo MainContextCheckMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextCheck
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -256,19 +297,22 @@
 
 mainContextDispatch ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    m ()
+    MainContext                             -- _obj
+    -> m ()                                 -- result
 mainContextDispatch _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_main_context_dispatch _obj'
     touchManagedPtr _obj
     return ()
 
+data MainContextDispatchMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MainContextDispatchMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextDispatch
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -282,25 +326,28 @@
 
 mainContextFindSourceByFuncsUserData ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    SourceFuncs ->                          -- funcs
-    Ptr () ->                               -- user_data
-    m Source
-mainContextFindSourceByFuncsUserData _obj funcs user_data = liftIO $ do
+    MainContext                             -- _obj
+    -> SourceFuncs                          -- funcs
+    -> Ptr ()                               -- userData
+    -> m Source                             -- result
+mainContextFindSourceByFuncsUserData _obj funcs userData = 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 <- g_main_context_find_source_by_funcs_user_data _obj' funcs' userData
     checkUnexpectedReturnNULL "g_main_context_find_source_by_funcs_user_data" result
     result' <- (newBoxed Source) result
     touchManagedPtr _obj
     touchManagedPtr funcs
     return result'
 
+data MainContextFindSourceByFuncsUserDataMethodInfo
+instance (signature ~ (SourceFuncs -> Ptr () -> m Source), MonadIO m) => MethodInfo MainContextFindSourceByFuncsUserDataMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextFindSourceByFuncsUserData
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -313,22 +360,25 @@
 
 mainContextFindSourceById ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    Word32 ->                               -- source_id
-    m Source
-mainContextFindSourceById _obj source_id = liftIO $ do
+    MainContext                             -- _obj
+    -> Word32                               -- sourceId
+    -> m Source                             -- result
+mainContextFindSourceById _obj sourceId = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- g_main_context_find_source_by_id _obj' source_id
+    result <- g_main_context_find_source_by_id _obj' sourceId
     checkUnexpectedReturnNULL "g_main_context_find_source_by_id" result
     result' <- (newBoxed Source) result
     touchManagedPtr _obj
     return result'
 
+data MainContextFindSourceByIdMethodInfo
+instance (signature ~ (Word32 -> m Source), MonadIO m) => MethodInfo MainContextFindSourceByIdMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextFindSourceById
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -341,22 +391,25 @@
 
 mainContextFindSourceByUserData ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    Ptr () ->                               -- user_data
-    m Source
-mainContextFindSourceByUserData _obj user_data = liftIO $ do
+    MainContext                             -- _obj
+    -> Ptr ()                               -- userData
+    -> m Source                             -- result
+mainContextFindSourceByUserData _obj userData = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- g_main_context_find_source_by_user_data _obj' user_data
+    result <- g_main_context_find_source_by_user_data _obj' userData
     checkUnexpectedReturnNULL "g_main_context_find_source_by_user_data" result
     result' <- (newBoxed Source) result
     touchManagedPtr _obj
     return result'
 
+data MainContextFindSourceByUserDataMethodInfo
+instance (signature ~ (Ptr () -> m Source), MonadIO m) => MethodInfo MainContextFindSourceByUserDataMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextFindSourceByUserData
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -372,10 +425,10 @@
 
 mainContextInvokeFull ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    Int32 ->                                -- priority
-    SourceFunc ->                           -- function
-    m ()
+    MainContext                             -- _obj
+    -> Int32                                -- priority
+    -> SourceFunc                           -- function
+    -> m ()                                 -- result
 mainContextInvokeFull _obj priority function = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     function' <- mkSourceFunc (sourceFuncWrapper Nothing function)
@@ -385,11 +438,14 @@
     touchManagedPtr _obj
     return ()
 
+data MainContextInvokeFullMethodInfo
+instance (signature ~ (Int32 -> SourceFunc -> m ()), MonadIO m) => MethodInfo MainContextInvokeFullMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextInvokeFull
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -401,8 +457,8 @@
 
 mainContextIsOwner ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    m Bool
+    MainContext                             -- _obj
+    -> m Bool                               -- result
 mainContextIsOwner _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_main_context_is_owner _obj'
@@ -410,11 +466,14 @@
     touchManagedPtr _obj
     return result'
 
+data MainContextIsOwnerMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo MainContextIsOwnerMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextIsOwner
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "may_block", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -427,22 +486,25 @@
 
 mainContextIteration ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    Bool ->                                 -- may_block
-    m Bool
-mainContextIteration _obj may_block = liftIO $ do
+    MainContext                             -- _obj
+    -> Bool                                 -- mayBlock
+    -> m Bool                               -- result
+mainContextIteration _obj mayBlock = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let may_block' = (fromIntegral . fromEnum) may_block
-    result <- g_main_context_iteration _obj' may_block'
+    let mayBlock' = (fromIntegral . fromEnum) mayBlock
+    result <- g_main_context_iteration _obj' mayBlock'
     let result' = (/= 0) result
     touchManagedPtr _obj
     return result'
 
+data MainContextIterationMethodInfo
+instance (signature ~ (Bool -> m Bool), MonadIO m) => MethodInfo MainContextIterationMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextIteration
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -454,8 +516,8 @@
 
 mainContextPending ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    m Bool
+    MainContext                             -- _obj
+    -> m Bool                               -- result
 mainContextPending _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_main_context_pending _obj'
@@ -463,11 +525,14 @@
     touchManagedPtr _obj
     return result'
 
+data MainContextPendingMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo MainContextPendingMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextPending
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -479,19 +544,22 @@
 
 mainContextPopThreadDefault ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    m ()
+    MainContext                             -- _obj
+    -> m ()                                 -- result
 mainContextPopThreadDefault _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_main_context_pop_thread_default _obj'
     touchManagedPtr _obj
     return ()
 
+data MainContextPopThreadDefaultMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MainContextPopThreadDefaultMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextPopThreadDefault
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -504,9 +572,9 @@
 
 mainContextPrepare ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    Int32 ->                                -- priority
-    m Bool
+    MainContext                             -- _obj
+    -> Int32                                -- priority
+    -> m Bool                               -- result
 mainContextPrepare _obj priority = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_main_context_prepare _obj' priority
@@ -514,11 +582,14 @@
     touchManagedPtr _obj
     return result'
 
+data MainContextPrepareMethodInfo
+instance (signature ~ (Int32 -> m Bool), MonadIO m) => MethodInfo MainContextPrepareMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextPrepare
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -530,19 +601,22 @@
 
 mainContextPushThreadDefault ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    m ()
+    MainContext                             -- _obj
+    -> m ()                                 -- result
 mainContextPushThreadDefault _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_main_context_push_thread_default _obj'
     touchManagedPtr _obj
     return ()
 
+data MainContextPushThreadDefaultMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MainContextPushThreadDefaultMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextPushThreadDefault
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeout_", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "fds", argType = TCArray False (-1) 4 (TInterface "GLib" "PollFD"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "n_fds", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_fds", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -551,38 +625,41 @@
     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
+    Ptr PollFD ->                           -- fds : TCArray False (-1) 4 (TInterface "GLib" "PollFD")
+    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
+    MainContext                             -- _obj
+    -> Int32                                -- maxPriority
+    -> [PollFD]                             -- fds
+    -> m (Int32,Int32,[PollFD])             -- result
+mainContextQuery _obj maxPriority fds = liftIO $ do
+    let nFds = fromIntegral $ length fds
     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''
+    timeout <- allocMem :: IO (Ptr Int32)
+    let fds' = map unsafeManagedPtrGetPtr fds
+    fds'' <- packBlockArray 8 fds'
+    result <- g_main_context_query _obj' maxPriority timeout fds'' nFds
+    timeout' <- peek timeout
+    fds''' <- (unpackBoxedArrayWithLength 8 nFds) fds''
+    fds'''' <- mapM (newBoxed PollFD) fds'''
     touchManagedPtr _obj
-    freeMem timeout_
-    freeMem fds
-    freeMem n_fds
-    return (result, timeout_', fds''')
+    mapM_ touchManagedPtr fds
+    freeMem timeout
+    freeMem fds''
+    return (result, timeout', fds'''')
 
+data MainContextQueryMethodInfo
+instance (signature ~ (Int32 -> [PollFD] -> m (Int32,Int32,[PollFD])), MonadIO m) => MethodInfo MainContextQueryMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextQuery
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -594,8 +671,8 @@
 
 mainContextRef ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    m MainContext
+    MainContext                             -- _obj
+    -> m MainContext                        -- result
 mainContextRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_main_context_ref _obj'
@@ -604,11 +681,14 @@
     touchManagedPtr _obj
     return result'
 
+data MainContextRefMethodInfo
+instance (signature ~ (m MainContext), MonadIO m) => MethodInfo MainContextRefMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -620,19 +700,22 @@
 
 mainContextRelease ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    m ()
+    MainContext                             -- _obj
+    -> m ()                                 -- result
 mainContextRelease _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_main_context_release _obj'
     touchManagedPtr _obj
     return ()
 
+data MainContextReleaseMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MainContextReleaseMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextRelease
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -645,9 +728,9 @@
 
 mainContextRemovePoll ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    PollFD ->                               -- fd
-    m ()
+    MainContext                             -- _obj
+    -> PollFD                               -- fd
+    -> m ()                                 -- result
 mainContextRemovePoll _obj fd = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let fd' = unsafeManagedPtrGetPtr fd
@@ -656,11 +739,14 @@
     touchManagedPtr fd
     return ()
 
+data MainContextRemovePollMethodInfo
+instance (signature ~ (PollFD -> m ()), MonadIO m) => MethodInfo MainContextRemovePollMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextRemovePoll
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -672,19 +758,22 @@
 
 mainContextUnref ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    m ()
+    MainContext                             -- _obj
+    -> m ()                                 -- result
 mainContextUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_main_context_unref _obj'
     touchManagedPtr _obj
     return ()
 
+data MainContextUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MainContextUnrefMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextUnref
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cond", argType = TInterface "GLib" "Cond", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mutex", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -698,10 +787,10 @@
 
 mainContextWait ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    Cond ->                                 -- cond
-    Mutex ->                                -- mutex
-    m Bool
+    MainContext                             -- _obj
+    -> Cond                                 -- cond
+    -> Mutex                                -- mutex
+    -> m Bool                               -- result
 mainContextWait _obj cond mutex = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let cond' = unsafeManagedPtrGetPtr cond
@@ -713,11 +802,14 @@
     touchManagedPtr mutex
     return result'
 
+data MainContextWaitMethodInfo
+instance (signature ~ (Cond -> Mutex -> m Bool), MonadIO m) => MethodInfo MainContextWaitMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextWait
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -729,12 +821,111 @@
 
 mainContextWakeup ::
     (MonadIO m) =>
-    MainContext ->                          -- _obj
-    m ()
+    MainContext                             -- _obj
+    -> m ()                                 -- result
 mainContextWakeup _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_main_context_wakeup _obj'
     touchManagedPtr _obj
     return ()
+
+data MainContextWakeupMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MainContextWakeupMethodInfo MainContext signature where
+    overloadedMethod _ = mainContextWakeup
+
+-- method MainContext::default
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                           -- result
+mainContextDefault  = liftIO $ do
+    result <- g_main_context_default
+    checkUnexpectedReturnNULL "g_main_context_default" result
+    result' <- (newBoxed MainContext) result
+    return result'
+
+-- method MainContext::get_thread_default
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                           -- result
+mainContextGetThreadDefault  = liftIO $ do
+    result <- g_main_context_get_thread_default
+    checkUnexpectedReturnNULL "g_main_context_get_thread_default" result
+    result' <- (newBoxed MainContext) result
+    return result'
+
+-- method MainContext::ref_thread_default
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                           -- result
+mainContextRefThreadDefault  = liftIO $ do
+    result <- g_main_context_ref_thread_default
+    checkUnexpectedReturnNULL "g_main_context_ref_thread_default" result
+    result' <- (wrapBoxed MainContext) result
+    return result'
+
+type family ResolveMainContextMethod (t :: Symbol) (o :: *) :: * where
+    ResolveMainContextMethod "acquire" o = MainContextAcquireMethodInfo
+    ResolveMainContextMethod "addPoll" o = MainContextAddPollMethodInfo
+    ResolveMainContextMethod "check" o = MainContextCheckMethodInfo
+    ResolveMainContextMethod "dispatch" o = MainContextDispatchMethodInfo
+    ResolveMainContextMethod "findSourceByFuncsUserData" o = MainContextFindSourceByFuncsUserDataMethodInfo
+    ResolveMainContextMethod "findSourceById" o = MainContextFindSourceByIdMethodInfo
+    ResolveMainContextMethod "findSourceByUserData" o = MainContextFindSourceByUserDataMethodInfo
+    ResolveMainContextMethod "invokeFull" o = MainContextInvokeFullMethodInfo
+    ResolveMainContextMethod "isOwner" o = MainContextIsOwnerMethodInfo
+    ResolveMainContextMethod "iteration" o = MainContextIterationMethodInfo
+    ResolveMainContextMethod "pending" o = MainContextPendingMethodInfo
+    ResolveMainContextMethod "popThreadDefault" o = MainContextPopThreadDefaultMethodInfo
+    ResolveMainContextMethod "prepare" o = MainContextPrepareMethodInfo
+    ResolveMainContextMethod "pushThreadDefault" o = MainContextPushThreadDefaultMethodInfo
+    ResolveMainContextMethod "query" o = MainContextQueryMethodInfo
+    ResolveMainContextMethod "ref" o = MainContextRefMethodInfo
+    ResolveMainContextMethod "release" o = MainContextReleaseMethodInfo
+    ResolveMainContextMethod "removePoll" o = MainContextRemovePollMethodInfo
+    ResolveMainContextMethod "unref" o = MainContextUnrefMethodInfo
+    ResolveMainContextMethod "wait" o = MainContextWaitMethodInfo
+    ResolveMainContextMethod "wakeup" o = MainContextWakeupMethodInfo
+    ResolveMainContextMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveMainContextMethod t MainContext, MethodInfo info MainContext p) => IsLabelProxy t (MainContext -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveMainContextMethod t MainContext, MethodInfo info MainContext p) => IsLabel t (MainContext -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/MainContext.hs-boot b/GI/GLib/Structs/MainContext.hs-boot
--- a/GI/GLib/Structs/MainContext.hs-boot
+++ b/GI/GLib/Structs/MainContext.hs-boot
@@ -9,3 +9,24 @@
 
 newtype MainContext = MainContext (ForeignPtr MainContext)
 instance BoxedObject MainContext where
+data MainContextAcquireMethodInfo
+data MainContextAddPollMethodInfo
+data MainContextCheckMethodInfo
+data MainContextDispatchMethodInfo
+data MainContextFindSourceByFuncsUserDataMethodInfo
+data MainContextFindSourceByIdMethodInfo
+data MainContextFindSourceByUserDataMethodInfo
+data MainContextInvokeFullMethodInfo
+data MainContextIsOwnerMethodInfo
+data MainContextIterationMethodInfo
+data MainContextPendingMethodInfo
+data MainContextPopThreadDefaultMethodInfo
+data MainContextPrepareMethodInfo
+data MainContextPushThreadDefaultMethodInfo
+data MainContextQueryMethodInfo
+data MainContextRefMethodInfo
+data MainContextReleaseMethodInfo
+data MainContextRemovePollMethodInfo
+data MainContextUnrefMethodInfo
+data MainContextWaitMethodInfo
+data MainContextWakeupMethodInfo
diff --git a/GI/GLib/Structs/MainLoop.hs b/GI/GLib/Structs/MainLoop.hs
--- a/GI/GLib/Structs/MainLoop.hs
+++ b/GI/GLib/Structs/MainLoop.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,10 +19,12 @@
 
  -- * Methods
 -- ** mainLoopGetContext
+    MainLoopGetContextMethodInfo            ,
     mainLoopGetContext                      ,
 
 
 -- ** mainLoopIsRunning
+    MainLoopIsRunningMethodInfo             ,
     mainLoopIsRunning                       ,
 
 
@@ -30,18 +33,22 @@
 
 
 -- ** mainLoopQuit
+    MainLoopQuitMethodInfo                  ,
     mainLoopQuit                            ,
 
 
 -- ** mainLoopRef
+    MainLoopRefMethodInfo                   ,
     mainLoopRef                             ,
 
 
 -- ** mainLoopRun
+    MainLoopRunMethodInfo                   ,
     mainLoopRun                             ,
 
 
 -- ** mainLoopUnref
+    MainLoopUnrefMethodInfo                 ,
     mainLoopUnref                           ,
 
 
@@ -71,9 +78,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_running", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -86,17 +92,17 @@
 
 mainLoopNew ::
     (MonadIO m) =>
-    Maybe (MainContext) ->                  -- context
-    Bool ->                                 -- is_running
-    m MainLoop
-mainLoopNew context is_running = liftIO $ do
+    Maybe (MainContext)                     -- context
+    -> Bool                                 -- isRunning
+    -> m MainLoop                           -- result
+mainLoopNew context isRunning = 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'
+    let isRunning' = (fromIntegral . fromEnum) isRunning
+    result <- g_main_loop_new maybeContext isRunning'
     checkUnexpectedReturnNULL "g_main_loop_new" result
     result' <- (wrapBoxed MainLoop) result
     whenJust context touchManagedPtr
@@ -104,9 +110,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -118,8 +123,8 @@
 
 mainLoopGetContext ::
     (MonadIO m) =>
-    MainLoop ->                             -- _obj
-    m MainContext
+    MainLoop                                -- _obj
+    -> m MainContext                        -- result
 mainLoopGetContext _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_main_loop_get_context _obj'
@@ -128,11 +133,14 @@
     touchManagedPtr _obj
     return result'
 
+data MainLoopGetContextMethodInfo
+instance (signature ~ (m MainContext), MonadIO m) => MethodInfo MainLoopGetContextMethodInfo MainLoop signature where
+    overloadedMethod _ = mainLoopGetContext
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -144,8 +152,8 @@
 
 mainLoopIsRunning ::
     (MonadIO m) =>
-    MainLoop ->                             -- _obj
-    m Bool
+    MainLoop                                -- _obj
+    -> m Bool                               -- result
 mainLoopIsRunning _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_main_loop_is_running _obj'
@@ -153,11 +161,14 @@
     touchManagedPtr _obj
     return result'
 
+data MainLoopIsRunningMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo MainLoopIsRunningMethodInfo MainLoop signature where
+    overloadedMethod _ = mainLoopIsRunning
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -169,19 +180,22 @@
 
 mainLoopQuit ::
     (MonadIO m) =>
-    MainLoop ->                             -- _obj
-    m ()
+    MainLoop                                -- _obj
+    -> m ()                                 -- result
 mainLoopQuit _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_main_loop_quit _obj'
     touchManagedPtr _obj
     return ()
 
+data MainLoopQuitMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MainLoopQuitMethodInfo MainLoop signature where
+    overloadedMethod _ = mainLoopQuit
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -193,8 +207,8 @@
 
 mainLoopRef ::
     (MonadIO m) =>
-    MainLoop ->                             -- _obj
-    m MainLoop
+    MainLoop                                -- _obj
+    -> m MainLoop                           -- result
 mainLoopRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_main_loop_ref _obj'
@@ -203,11 +217,14 @@
     touchManagedPtr _obj
     return result'
 
+data MainLoopRefMethodInfo
+instance (signature ~ (m MainLoop), MonadIO m) => MethodInfo MainLoopRefMethodInfo MainLoop signature where
+    overloadedMethod _ = mainLoopRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -219,19 +236,22 @@
 
 mainLoopRun ::
     (MonadIO m) =>
-    MainLoop ->                             -- _obj
-    m ()
+    MainLoop                                -- _obj
+    -> m ()                                 -- result
 mainLoopRun _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_main_loop_run _obj'
     touchManagedPtr _obj
     return ()
 
+data MainLoopRunMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MainLoopRunMethodInfo MainLoop signature where
+    overloadedMethod _ = mainLoopRun
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MainLoop", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -243,12 +263,33 @@
 
 mainLoopUnref ::
     (MonadIO m) =>
-    MainLoop ->                             -- _obj
-    m ()
+    MainLoop                                -- _obj
+    -> m ()                                 -- result
 mainLoopUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_main_loop_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data MainLoopUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MainLoopUnrefMethodInfo MainLoop signature where
+    overloadedMethod _ = mainLoopUnref
+
+type family ResolveMainLoopMethod (t :: Symbol) (o :: *) :: * where
+    ResolveMainLoopMethod "isRunning" o = MainLoopIsRunningMethodInfo
+    ResolveMainLoopMethod "quit" o = MainLoopQuitMethodInfo
+    ResolveMainLoopMethod "ref" o = MainLoopRefMethodInfo
+    ResolveMainLoopMethod "run" o = MainLoopRunMethodInfo
+    ResolveMainLoopMethod "unref" o = MainLoopUnrefMethodInfo
+    ResolveMainLoopMethod "getContext" o = MainLoopGetContextMethodInfo
+    ResolveMainLoopMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveMainLoopMethod t MainLoop, MethodInfo info MainLoop p) => IsLabelProxy t (MainLoop -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveMainLoopMethod t MainLoop, MethodInfo info MainLoop p) => IsLabel t (MainLoop -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/MainLoop.hs-boot b/GI/GLib/Structs/MainLoop.hs-boot
--- a/GI/GLib/Structs/MainLoop.hs-boot
+++ b/GI/GLib/Structs/MainLoop.hs-boot
@@ -9,3 +9,9 @@
 
 newtype MainLoop = MainLoop (ForeignPtr MainLoop)
 instance BoxedObject MainLoop where
+data MainLoopGetContextMethodInfo
+data MainLoopIsRunningMethodInfo
+data MainLoopQuitMethodInfo
+data MainLoopRefMethodInfo
+data MainLoopRunMethodInfo
+data MainLoopUnrefMethodInfo
diff --git a/GI/GLib/Structs/MappedFile.hs b/GI/GLib/Structs/MappedFile.hs
--- a/GI/GLib/Structs/MappedFile.hs
+++ b/GI/GLib/Structs/MappedFile.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -19,18 +20,22 @@
 
  -- * Methods
 -- ** mappedFileFree
+    MappedFileFreeMethodInfo                ,
     mappedFileFree                          ,
 
 
 -- ** mappedFileGetBytes
+    MappedFileGetBytesMethodInfo            ,
     mappedFileGetBytes                      ,
 
 
 -- ** mappedFileGetContents
+    MappedFileGetContentsMethodInfo         ,
     mappedFileGetContents                   ,
 
 
 -- ** mappedFileGetLength
+    MappedFileGetLengthMethodInfo           ,
     mappedFileGetLength                     ,
 
 
@@ -43,10 +48,12 @@
 
 
 -- ** mappedFileRef
+    MappedFileRefMethodInfo                 ,
     mappedFileRef                           ,
 
 
 -- ** mappedFileUnref
+    MappedFileUnrefMethodInfo               ,
     mappedFileUnref                         ,
 
 
@@ -76,9 +83,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "filename", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "writable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -92,9 +98,9 @@
 
 mappedFileNew ::
     (MonadIO m) =>
-    T.Text ->                               -- filename
-    Bool ->                                 -- writable
-    m MappedFile
+    T.Text                                  -- filename
+    -> Bool                                 -- writable
+    -> m MappedFile                         -- result
 mappedFileNew filename writable = liftIO $ do
     filename' <- textToCString filename
     let writable' = (fromIntegral . fromEnum) writable
@@ -110,9 +116,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "writable", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -126,9 +131,9 @@
 
 mappedFileNewFromFd ::
     (MonadIO m) =>
-    Int32 ->                                -- fd
-    Bool ->                                 -- writable
-    m MappedFile
+    Int32                                   -- fd
+    -> Bool                                 -- writable
+    -> m MappedFile                         -- result
 mappedFileNewFromFd fd writable = liftIO $ do
     let writable' = (fromIntegral . fromEnum) writable
     onException (do
@@ -142,9 +147,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -156,19 +160,22 @@
 {-# DEPRECATED mappedFileFree ["(Since version 2.22)","Use g_mapped_file_unref() instead."]#-}
 mappedFileFree ::
     (MonadIO m) =>
-    MappedFile ->                           -- _obj
-    m ()
+    MappedFile                              -- _obj
+    -> m ()                                 -- result
 mappedFileFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_mapped_file_free _obj'
     touchManagedPtr _obj
     return ()
 
+data MappedFileFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MappedFileFreeMethodInfo MappedFile signature where
+    overloadedMethod _ = mappedFileFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -180,8 +187,8 @@
 
 mappedFileGetBytes ::
     (MonadIO m) =>
-    MappedFile ->                           -- _obj
-    m Bytes
+    MappedFile                              -- _obj
+    -> m Bytes                              -- result
 mappedFileGetBytes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_mapped_file_get_bytes _obj'
@@ -190,11 +197,14 @@
     touchManagedPtr _obj
     return result'
 
+data MappedFileGetBytesMethodInfo
+instance (signature ~ (m Bytes), MonadIO m) => MethodInfo MappedFileGetBytesMethodInfo MappedFile signature where
+    overloadedMethod _ = mappedFileGetBytes
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -206,8 +216,8 @@
 
 mappedFileGetContents ::
     (MonadIO m) =>
-    MappedFile ->                           -- _obj
-    m T.Text
+    MappedFile                              -- _obj
+    -> m T.Text                             -- result
 mappedFileGetContents _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_mapped_file_get_contents _obj'
@@ -217,11 +227,14 @@
     touchManagedPtr _obj
     return result'
 
+data MappedFileGetContentsMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo MappedFileGetContentsMethodInfo MappedFile signature where
+    overloadedMethod _ = mappedFileGetContents
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -233,19 +246,22 @@
 
 mappedFileGetLength ::
     (MonadIO m) =>
-    MappedFile ->                           -- _obj
-    m Word64
+    MappedFile                              -- _obj
+    -> m Word64                             -- result
 mappedFileGetLength _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_mapped_file_get_length _obj'
     touchManagedPtr _obj
     return result
 
+data MappedFileGetLengthMethodInfo
+instance (signature ~ (m Word64), MonadIO m) => MethodInfo MappedFileGetLengthMethodInfo MappedFile signature where
+    overloadedMethod _ = mappedFileGetLength
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -257,8 +273,8 @@
 
 mappedFileRef ::
     (MonadIO m) =>
-    MappedFile ->                           -- _obj
-    m MappedFile
+    MappedFile                              -- _obj
+    -> m MappedFile                         -- result
 mappedFileRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_mapped_file_ref _obj'
@@ -267,11 +283,14 @@
     touchManagedPtr _obj
     return result'
 
+data MappedFileRefMethodInfo
+instance (signature ~ (m MappedFile), MonadIO m) => MethodInfo MappedFileRefMethodInfo MappedFile signature where
+    overloadedMethod _ = mappedFileRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MappedFile", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -283,12 +302,33 @@
 
 mappedFileUnref ::
     (MonadIO m) =>
-    MappedFile ->                           -- _obj
-    m ()
+    MappedFile                              -- _obj
+    -> m ()                                 -- result
 mappedFileUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_mapped_file_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data MappedFileUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MappedFileUnrefMethodInfo MappedFile signature where
+    overloadedMethod _ = mappedFileUnref
+
+type family ResolveMappedFileMethod (t :: Symbol) (o :: *) :: * where
+    ResolveMappedFileMethod "free" o = MappedFileFreeMethodInfo
+    ResolveMappedFileMethod "ref" o = MappedFileRefMethodInfo
+    ResolveMappedFileMethod "unref" o = MappedFileUnrefMethodInfo
+    ResolveMappedFileMethod "getBytes" o = MappedFileGetBytesMethodInfo
+    ResolveMappedFileMethod "getContents" o = MappedFileGetContentsMethodInfo
+    ResolveMappedFileMethod "getLength" o = MappedFileGetLengthMethodInfo
+    ResolveMappedFileMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveMappedFileMethod t MappedFile, MethodInfo info MappedFile p) => IsLabelProxy t (MappedFile -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveMappedFileMethod t MappedFile, MethodInfo info MappedFile p) => IsLabel t (MappedFile -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/MappedFile.hs-boot b/GI/GLib/Structs/MappedFile.hs-boot
--- a/GI/GLib/Structs/MappedFile.hs-boot
+++ b/GI/GLib/Structs/MappedFile.hs-boot
@@ -9,3 +9,9 @@
 
 newtype MappedFile = MappedFile (ForeignPtr MappedFile)
 instance BoxedObject MappedFile where
+data MappedFileFreeMethodInfo
+data MappedFileGetBytesMethodInfo
+data MappedFileGetContentsMethodInfo
+data MappedFileGetLengthMethodInfo
+data MappedFileRefMethodInfo
+data MappedFileUnrefMethodInfo
diff --git a/GI/GLib/Structs/MarkupParseContext.hs b/GI/GLib/Structs/MarkupParseContext.hs
--- a/GI/GLib/Structs/MarkupParseContext.hs
+++ b/GI/GLib/Structs/MarkupParseContext.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -21,14 +22,17 @@
 
  -- * Methods
 -- ** markupParseContextEndParse
+    MarkupParseContextEndParseMethodInfo    ,
     markupParseContextEndParse              ,
 
 
 -- ** markupParseContextFree
+    MarkupParseContextFreeMethodInfo        ,
     markupParseContextFree                  ,
 
 
 -- ** markupParseContextGetElement
+    MarkupParseContextGetElementMethodInfo  ,
     markupParseContextGetElement            ,
 
 
@@ -37,18 +41,22 @@
 
 
 -- ** markupParseContextParse
+    MarkupParseContextParseMethodInfo       ,
     markupParseContextParse                 ,
 
 
 -- ** markupParseContextPush
+    MarkupParseContextPushMethodInfo        ,
     markupParseContextPush                  ,
 
 
 -- ** markupParseContextRef
+    MarkupParseContextRefMethodInfo         ,
     markupParseContextRef                   ,
 
 
 -- ** markupParseContextUnref
+    MarkupParseContextUnrefMethodInfo       ,
     markupParseContextUnref                 ,
 
 
@@ -78,9 +86,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "parser", argType = TInterface "GLib" "MarkupParser", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "MarkupParseFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data_dnotify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -95,18 +102,18 @@
 
 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
+    MarkupParser                            -- parser
+    -> [MarkupParseFlags]                   -- flags
+    -> Ptr ()                               -- userData
+    -> DestroyNotify                        -- userDataDnotify
+    -> m MarkupParseContext                 -- result
+markupParseContextNew parser flags userData userDataDnotify = liftIO $ do
     let parser' = unsafeManagedPtrGetPtr parser
     let flags' = gflagsToWord flags
-    ptruser_data_dnotify <- callocMem :: IO (Ptr (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'
+    ptruserDataDnotify <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    userDataDnotify' <- mkDestroyNotify (destroyNotifyWrapper (Just ptruserDataDnotify) userDataDnotify)
+    poke ptruserDataDnotify userDataDnotify'
+    result <- g_markup_parse_context_new parser' flags' userData userDataDnotify'
     checkUnexpectedReturnNULL "g_markup_parse_context_new" result
     result' <- (wrapBoxed MarkupParseContext) result
     touchManagedPtr parser
@@ -114,9 +121,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -129,8 +135,8 @@
 
 markupParseContextEndParse ::
     (MonadIO m) =>
-    MarkupParseContext ->                   -- _obj
-    m ()
+    MarkupParseContext                      -- _obj
+    -> m ()                                 -- result
 markupParseContextEndParse _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     onException (do
@@ -141,11 +147,14 @@
         return ()
      )
 
+data MarkupParseContextEndParseMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MarkupParseContextEndParseMethodInfo MarkupParseContext signature where
+    overloadedMethod _ = markupParseContextEndParse
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -157,19 +166,22 @@
 
 markupParseContextFree ::
     (MonadIO m) =>
-    MarkupParseContext ->                   -- _obj
-    m ()
+    MarkupParseContext                      -- _obj
+    -> m ()                                 -- result
 markupParseContextFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_markup_parse_context_free _obj'
     touchManagedPtr _obj
     return ()
 
+data MarkupParseContextFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MarkupParseContextFreeMethodInfo MarkupParseContext signature where
+    overloadedMethod _ = markupParseContextFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -181,8 +193,8 @@
 
 markupParseContextGetElement ::
     (MonadIO m) =>
-    MarkupParseContext ->                   -- _obj
-    m T.Text
+    MarkupParseContext                      -- _obj
+    -> m T.Text                             -- result
 markupParseContextGetElement _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_markup_parse_context_get_element _obj'
@@ -191,11 +203,14 @@
     touchManagedPtr _obj
     return result'
 
+data MarkupParseContextGetElementMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo MarkupParseContextGetElementMethodInfo MarkupParseContext signature where
+    overloadedMethod _ = markupParseContextGetElement
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -210,15 +225,15 @@
 
 markupParseContextParse ::
     (MonadIO m) =>
-    MarkupParseContext ->                   -- _obj
-    T.Text ->                               -- text
-    Int64 ->                                -- text_len
-    m ()
-markupParseContextParse _obj text text_len = liftIO $ do
+    MarkupParseContext                      -- _obj
+    -> T.Text                               -- text
+    -> Int64                                -- textLen
+    -> m ()                                 -- result
+markupParseContextParse _obj text textLen = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     text' <- textToCString text
     onException (do
-        _ <- propagateGError $ g_markup_parse_context_parse _obj' text' text_len
+        _ <- propagateGError $ g_markup_parse_context_parse _obj' text' textLen
         touchManagedPtr _obj
         freeMem text'
         return ()
@@ -226,11 +241,14 @@
         freeMem text'
      )
 
+data MarkupParseContextParseMethodInfo
+instance (signature ~ (T.Text -> Int64 -> m ()), MonadIO m) => MethodInfo MarkupParseContextParseMethodInfo MarkupParseContext signature where
+    overloadedMethod _ = markupParseContextParse
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parser", argType = TInterface "GLib" "MarkupParser", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -244,23 +262,26 @@
 
 markupParseContextPush ::
     (MonadIO m) =>
-    MarkupParseContext ->                   -- _obj
-    MarkupParser ->                         -- parser
-    Ptr () ->                               -- user_data
-    m ()
-markupParseContextPush _obj parser user_data = liftIO $ do
+    MarkupParseContext                      -- _obj
+    -> MarkupParser                         -- parser
+    -> Ptr ()                               -- userData
+    -> m ()                                 -- result
+markupParseContextPush _obj parser userData = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let parser' = unsafeManagedPtrGetPtr parser
-    g_markup_parse_context_push _obj' parser' user_data
+    g_markup_parse_context_push _obj' parser' userData
     touchManagedPtr _obj
     touchManagedPtr parser
     return ()
 
+data MarkupParseContextPushMethodInfo
+instance (signature ~ (MarkupParser -> Ptr () -> m ()), MonadIO m) => MethodInfo MarkupParseContextPushMethodInfo MarkupParseContext signature where
+    overloadedMethod _ = markupParseContextPush
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -272,8 +293,8 @@
 
 markupParseContextRef ::
     (MonadIO m) =>
-    MarkupParseContext ->                   -- _obj
-    m MarkupParseContext
+    MarkupParseContext                      -- _obj
+    -> m MarkupParseContext                 -- result
 markupParseContextRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_markup_parse_context_ref _obj'
@@ -282,11 +303,14 @@
     touchManagedPtr _obj
     return result'
 
+data MarkupParseContextRefMethodInfo
+instance (signature ~ (m MarkupParseContext), MonadIO m) => MethodInfo MarkupParseContextRefMethodInfo MarkupParseContext signature where
+    overloadedMethod _ = markupParseContextRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MarkupParseContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -298,12 +322,34 @@
 
 markupParseContextUnref ::
     (MonadIO m) =>
-    MarkupParseContext ->                   -- _obj
-    m ()
+    MarkupParseContext                      -- _obj
+    -> m ()                                 -- result
 markupParseContextUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_markup_parse_context_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data MarkupParseContextUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MarkupParseContextUnrefMethodInfo MarkupParseContext signature where
+    overloadedMethod _ = markupParseContextUnref
+
+type family ResolveMarkupParseContextMethod (t :: Symbol) (o :: *) :: * where
+    ResolveMarkupParseContextMethod "endParse" o = MarkupParseContextEndParseMethodInfo
+    ResolveMarkupParseContextMethod "free" o = MarkupParseContextFreeMethodInfo
+    ResolveMarkupParseContextMethod "parse" o = MarkupParseContextParseMethodInfo
+    ResolveMarkupParseContextMethod "push" o = MarkupParseContextPushMethodInfo
+    ResolveMarkupParseContextMethod "ref" o = MarkupParseContextRefMethodInfo
+    ResolveMarkupParseContextMethod "unref" o = MarkupParseContextUnrefMethodInfo
+    ResolveMarkupParseContextMethod "getElement" o = MarkupParseContextGetElementMethodInfo
+    ResolveMarkupParseContextMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveMarkupParseContextMethod t MarkupParseContext, MethodInfo info MarkupParseContext p) => IsLabelProxy t (MarkupParseContext -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveMarkupParseContextMethod t MarkupParseContext, MethodInfo info MarkupParseContext p) => IsLabel t (MarkupParseContext -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/MarkupParseContext.hs-boot b/GI/GLib/Structs/MarkupParseContext.hs-boot
--- a/GI/GLib/Structs/MarkupParseContext.hs-boot
+++ b/GI/GLib/Structs/MarkupParseContext.hs-boot
@@ -9,3 +9,10 @@
 
 newtype MarkupParseContext = MarkupParseContext (ForeignPtr MarkupParseContext)
 instance BoxedObject MarkupParseContext where
+data MarkupParseContextEndParseMethodInfo
+data MarkupParseContextFreeMethodInfo
+data MarkupParseContextGetElementMethodInfo
+data MarkupParseContextParseMethodInfo
+data MarkupParseContextPushMethodInfo
+data MarkupParseContextRefMethodInfo
+data MarkupParseContextUnrefMethodInfo
diff --git a/GI/GLib/Structs/MarkupParser.hs b/GI/GLib/Structs/MarkupParser.hs
--- a/GI/GLib/Structs/MarkupParser.hs
+++ b/GI/GLib/Structs/MarkupParser.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,6 +19,7 @@
 
 -- * Exported types
     MarkupParser(..)                        ,
+    newZeroMarkupParser                     ,
     noMarkupParser                          ,
 
 
@@ -34,6 +36,10 @@
 import GI.GLib.Callbacks
 
 newtype MarkupParser = MarkupParser (ForeignPtr MarkupParser)
+-- | Construct a `MarkupParser` struct initialized to zero.
+newZeroMarkupParser :: MonadIO m => m MarkupParser
+newZeroMarkupParser = liftIO $ callocBytes 40 >>= wrapPtr MarkupParser
+
 noMarkupParser :: Maybe MarkupParser
 noMarkupParser = Nothing
 
@@ -46,5 +52,16 @@
 -- 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"
+
+type family ResolveMarkupParserMethod (t :: Symbol) (o :: *) :: * where
+    ResolveMarkupParserMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveMarkupParserMethod t MarkupParser, MethodInfo info MarkupParser p) => IsLabelProxy t (MarkupParser -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveMarkupParserMethod t MarkupParser, MethodInfo info MarkupParser p) => IsLabel t (MarkupParser -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/MatchInfo.hs b/GI/GLib/Structs/MatchInfo.hs
--- a/GI/GLib/Structs/MatchInfo.hs
+++ b/GI/GLib/Structs/MatchInfo.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,62 +19,77 @@
 
  -- * Methods
 -- ** matchInfoExpandReferences
+    MatchInfoExpandReferencesMethodInfo     ,
     matchInfoExpandReferences               ,
 
 
 -- ** matchInfoFetch
+    MatchInfoFetchMethodInfo                ,
     matchInfoFetch                          ,
 
 
 -- ** matchInfoFetchAll
+    MatchInfoFetchAllMethodInfo             ,
     matchInfoFetchAll                       ,
 
 
 -- ** matchInfoFetchNamed
+    MatchInfoFetchNamedMethodInfo           ,
     matchInfoFetchNamed                     ,
 
 
 -- ** matchInfoFetchNamedPos
+    MatchInfoFetchNamedPosMethodInfo        ,
     matchInfoFetchNamedPos                  ,
 
 
 -- ** matchInfoFetchPos
+    MatchInfoFetchPosMethodInfo             ,
     matchInfoFetchPos                       ,
 
 
 -- ** matchInfoFree
+    MatchInfoFreeMethodInfo                 ,
     matchInfoFree                           ,
 
 
 -- ** matchInfoGetMatchCount
+    MatchInfoGetMatchCountMethodInfo        ,
     matchInfoGetMatchCount                  ,
 
 
 -- ** matchInfoGetRegex
+    MatchInfoGetRegexMethodInfo             ,
     matchInfoGetRegex                       ,
 
 
 -- ** matchInfoGetString
+    MatchInfoGetStringMethodInfo            ,
     matchInfoGetString                      ,
 
 
 -- ** matchInfoIsPartialMatch
+    MatchInfoIsPartialMatchMethodInfo       ,
     matchInfoIsPartialMatch                 ,
 
 
 -- ** matchInfoMatches
+    MatchInfoMatchesMethodInfo              ,
     matchInfoMatches                        ,
 
 
 -- ** matchInfoNext
+    MatchInfoNextMethodInfo                 ,
     matchInfoNext                           ,
 
 
 -- ** matchInfoRef
+    MatchInfoRefMethodInfo                  ,
     matchInfoRef                            ,
 
 
 -- ** matchInfoUnref
+    MatchInfoUnrefMethodInfo                ,
     matchInfoUnref                          ,
 
 
@@ -103,9 +119,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_to_expand", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -119,29 +134,32 @@
 
 matchInfoExpandReferences ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    T.Text ->                               -- string_to_expand
-    m T.Text
-matchInfoExpandReferences _obj string_to_expand = liftIO $ do
+    MatchInfo                               -- _obj
+    -> T.Text                               -- stringToExpand
+    -> m T.Text                             -- result
+matchInfoExpandReferences _obj stringToExpand = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    string_to_expand' <- textToCString string_to_expand
+    stringToExpand' <- textToCString stringToExpand
     onException (do
-        result <- propagateGError $ g_match_info_expand_references _obj' string_to_expand'
+        result <- propagateGError $ g_match_info_expand_references _obj' stringToExpand'
         checkUnexpectedReturnNULL "g_match_info_expand_references" result
         result' <- cstringToText result
         freeMem result
         touchManagedPtr _obj
-        freeMem string_to_expand'
+        freeMem stringToExpand'
         return result'
      ) (do
-        freeMem string_to_expand'
+        freeMem stringToExpand'
      )
 
+data MatchInfoExpandReferencesMethodInfo
+instance (signature ~ (T.Text -> m T.Text), MonadIO m) => MethodInfo MatchInfoExpandReferencesMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoExpandReferences
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -154,23 +172,26 @@
 
 matchInfoFetch ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    Int32 ->                                -- match_num
-    m T.Text
-matchInfoFetch _obj match_num = liftIO $ do
+    MatchInfo                               -- _obj
+    -> Int32                                -- matchNum
+    -> m T.Text                             -- result
+matchInfoFetch _obj matchNum = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- g_match_info_fetch _obj' match_num
+    result <- g_match_info_fetch _obj' matchNum
     checkUnexpectedReturnNULL "g_match_info_fetch" result
     result' <- cstringToText result
     freeMem result
     touchManagedPtr _obj
     return result'
 
+data MatchInfoFetchMethodInfo
+instance (signature ~ (Int32 -> m T.Text), MonadIO m) => MethodInfo MatchInfoFetchMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoFetch
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -182,8 +203,8 @@
 
 matchInfoFetchAll ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    m [T.Text]
+    MatchInfo                               -- _obj
+    -> m [T.Text]                           -- result
 matchInfoFetchAll _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_match_info_fetch_all _obj'
@@ -194,11 +215,14 @@
     touchManagedPtr _obj
     return result'
 
+data MatchInfoFetchAllMethodInfo
+instance (signature ~ (m [T.Text]), MonadIO m) => MethodInfo MatchInfoFetchAllMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoFetchAll
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -211,9 +235,9 @@
 
 matchInfoFetchNamed ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    T.Text ->                               -- name
-    m T.Text
+    MatchInfo                               -- _obj
+    -> T.Text                               -- name
+    -> m T.Text                             -- result
 matchInfoFetchNamed _obj name = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     name' <- textToCString name
@@ -225,11 +249,14 @@
     freeMem name'
     return result'
 
+data MatchInfoFetchNamedMethodInfo
+instance (signature ~ (T.Text -> m T.Text), MonadIO m) => MethodInfo MatchInfoFetchNamedMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoFetchNamed
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -244,29 +271,32 @@
 
 matchInfoFetchNamedPos ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    T.Text ->                               -- name
-    m (Bool,Int32,Int32)
+    MatchInfo                               -- _obj
+    -> T.Text                               -- name
+    -> m (Bool,Int32,Int32)                 -- result
 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
+    startPos <- allocMem :: IO (Ptr Int32)
+    endPos <- allocMem :: IO (Ptr Int32)
+    result <- g_match_info_fetch_named_pos _obj' name' startPos endPos
     let result' = (/= 0) result
-    start_pos' <- peek start_pos
-    end_pos' <- peek end_pos
+    startPos' <- peek startPos
+    endPos' <- peek endPos
     touchManagedPtr _obj
     freeMem name'
-    freeMem start_pos
-    freeMem end_pos
-    return (result', start_pos', end_pos')
+    freeMem startPos
+    freeMem endPos
+    return (result', startPos', endPos')
 
+data MatchInfoFetchNamedPosMethodInfo
+instance (signature ~ (T.Text -> m (Bool,Int32,Int32)), MonadIO m) => MethodInfo MatchInfoFetchNamedPosMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoFetchNamedPos
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "end_pos", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -281,27 +311,30 @@
 
 matchInfoFetchPos ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    Int32 ->                                -- match_num
-    m (Bool,Int32,Int32)
-matchInfoFetchPos _obj match_num = liftIO $ do
+    MatchInfo                               -- _obj
+    -> Int32                                -- matchNum
+    -> m (Bool,Int32,Int32)                 -- result
+matchInfoFetchPos _obj matchNum = 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
+    startPos <- allocMem :: IO (Ptr Int32)
+    endPos <- allocMem :: IO (Ptr Int32)
+    result <- g_match_info_fetch_pos _obj' matchNum startPos endPos
     let result' = (/= 0) result
-    start_pos' <- peek start_pos
-    end_pos' <- peek end_pos
+    startPos' <- peek startPos
+    endPos' <- peek endPos
     touchManagedPtr _obj
-    freeMem start_pos
-    freeMem end_pos
-    return (result', start_pos', end_pos')
+    freeMem startPos
+    freeMem endPos
+    return (result', startPos', endPos')
 
+data MatchInfoFetchPosMethodInfo
+instance (signature ~ (Int32 -> m (Bool,Int32,Int32)), MonadIO m) => MethodInfo MatchInfoFetchPosMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoFetchPos
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -313,19 +346,22 @@
 
 matchInfoFree ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    m ()
+    MatchInfo                               -- _obj
+    -> m ()                                 -- result
 matchInfoFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_match_info_free _obj'
     touchManagedPtr _obj
     return ()
 
+data MatchInfoFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MatchInfoFreeMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -337,19 +373,22 @@
 
 matchInfoGetMatchCount ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    m Int32
+    MatchInfo                               -- _obj
+    -> m Int32                              -- result
 matchInfoGetMatchCount _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_match_info_get_match_count _obj'
     touchManagedPtr _obj
     return result
 
+data MatchInfoGetMatchCountMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo MatchInfoGetMatchCountMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoGetMatchCount
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -361,8 +400,8 @@
 
 matchInfoGetRegex ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    m Regex
+    MatchInfo                               -- _obj
+    -> m Regex                              -- result
 matchInfoGetRegex _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_match_info_get_regex _obj'
@@ -371,11 +410,14 @@
     touchManagedPtr _obj
     return result'
 
+data MatchInfoGetRegexMethodInfo
+instance (signature ~ (m Regex), MonadIO m) => MethodInfo MatchInfoGetRegexMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoGetRegex
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -387,8 +429,8 @@
 
 matchInfoGetString ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    m T.Text
+    MatchInfo                               -- _obj
+    -> m T.Text                             -- result
 matchInfoGetString _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_match_info_get_string _obj'
@@ -397,11 +439,14 @@
     touchManagedPtr _obj
     return result'
 
+data MatchInfoGetStringMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo MatchInfoGetStringMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoGetString
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -413,8 +458,8 @@
 
 matchInfoIsPartialMatch ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    m Bool
+    MatchInfo                               -- _obj
+    -> m Bool                               -- result
 matchInfoIsPartialMatch _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_match_info_is_partial_match _obj'
@@ -422,11 +467,14 @@
     touchManagedPtr _obj
     return result'
 
+data MatchInfoIsPartialMatchMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo MatchInfoIsPartialMatchMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoIsPartialMatch
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -438,8 +486,8 @@
 
 matchInfoMatches ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    m Bool
+    MatchInfo                               -- _obj
+    -> m Bool                               -- result
 matchInfoMatches _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_match_info_matches _obj'
@@ -447,11 +495,14 @@
     touchManagedPtr _obj
     return result'
 
+data MatchInfoMatchesMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo MatchInfoMatchesMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoMatches
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -464,8 +515,8 @@
 
 matchInfoNext ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    m ()
+    MatchInfo                               -- _obj
+    -> m ()                                 -- result
 matchInfoNext _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     onException (do
@@ -476,11 +527,14 @@
         return ()
      )
 
+data MatchInfoNextMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MatchInfoNextMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoNext
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -492,8 +546,8 @@
 
 matchInfoRef ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    m MatchInfo
+    MatchInfo                               -- _obj
+    -> m MatchInfo                          -- result
 matchInfoRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_match_info_ref _obj'
@@ -502,11 +556,14 @@
     touchManagedPtr _obj
     return result'
 
+data MatchInfoRefMethodInfo
+instance (signature ~ (m MatchInfo), MonadIO m) => MethodInfo MatchInfoRefMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "MatchInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -518,12 +575,42 @@
 
 matchInfoUnref ::
     (MonadIO m) =>
-    MatchInfo ->                            -- _obj
-    m ()
+    MatchInfo                               -- _obj
+    -> m ()                                 -- result
 matchInfoUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_match_info_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data MatchInfoUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MatchInfoUnrefMethodInfo MatchInfo signature where
+    overloadedMethod _ = matchInfoUnref
+
+type family ResolveMatchInfoMethod (t :: Symbol) (o :: *) :: * where
+    ResolveMatchInfoMethod "expandReferences" o = MatchInfoExpandReferencesMethodInfo
+    ResolveMatchInfoMethod "fetch" o = MatchInfoFetchMethodInfo
+    ResolveMatchInfoMethod "fetchAll" o = MatchInfoFetchAllMethodInfo
+    ResolveMatchInfoMethod "fetchNamed" o = MatchInfoFetchNamedMethodInfo
+    ResolveMatchInfoMethod "fetchNamedPos" o = MatchInfoFetchNamedPosMethodInfo
+    ResolveMatchInfoMethod "fetchPos" o = MatchInfoFetchPosMethodInfo
+    ResolveMatchInfoMethod "free" o = MatchInfoFreeMethodInfo
+    ResolveMatchInfoMethod "isPartialMatch" o = MatchInfoIsPartialMatchMethodInfo
+    ResolveMatchInfoMethod "matches" o = MatchInfoMatchesMethodInfo
+    ResolveMatchInfoMethod "next" o = MatchInfoNextMethodInfo
+    ResolveMatchInfoMethod "ref" o = MatchInfoRefMethodInfo
+    ResolveMatchInfoMethod "unref" o = MatchInfoUnrefMethodInfo
+    ResolveMatchInfoMethod "getMatchCount" o = MatchInfoGetMatchCountMethodInfo
+    ResolveMatchInfoMethod "getRegex" o = MatchInfoGetRegexMethodInfo
+    ResolveMatchInfoMethod "getString" o = MatchInfoGetStringMethodInfo
+    ResolveMatchInfoMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveMatchInfoMethod t MatchInfo, MethodInfo info MatchInfo p) => IsLabelProxy t (MatchInfo -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveMatchInfoMethod t MatchInfo, MethodInfo info MatchInfo p) => IsLabel t (MatchInfo -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/MatchInfo.hs-boot b/GI/GLib/Structs/MatchInfo.hs-boot
--- a/GI/GLib/Structs/MatchInfo.hs-boot
+++ b/GI/GLib/Structs/MatchInfo.hs-boot
@@ -9,3 +9,18 @@
 
 newtype MatchInfo = MatchInfo (ForeignPtr MatchInfo)
 instance BoxedObject MatchInfo where
+data MatchInfoExpandReferencesMethodInfo
+data MatchInfoFetchMethodInfo
+data MatchInfoFetchAllMethodInfo
+data MatchInfoFetchNamedMethodInfo
+data MatchInfoFetchNamedPosMethodInfo
+data MatchInfoFetchPosMethodInfo
+data MatchInfoFreeMethodInfo
+data MatchInfoGetMatchCountMethodInfo
+data MatchInfoGetRegexMethodInfo
+data MatchInfoGetStringMethodInfo
+data MatchInfoIsPartialMatchMethodInfo
+data MatchInfoMatchesMethodInfo
+data MatchInfoNextMethodInfo
+data MatchInfoRefMethodInfo
+data MatchInfoUnrefMethodInfo
diff --git a/GI/GLib/Structs/MemVTable.hs b/GI/GLib/Structs/MemVTable.hs
--- a/GI/GLib/Structs/MemVTable.hs
+++ b/GI/GLib/Structs/MemVTable.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -16,6 +17,7 @@
 
 -- * Exported types
     MemVTable(..)                           ,
+    newZeroMemVTable                        ,
     noMemVTable                             ,
 
 
@@ -32,9 +34,24 @@
 import GI.GLib.Callbacks
 
 newtype MemVTable = MemVTable (ForeignPtr MemVTable)
+-- | Construct a `MemVTable` struct initialized to zero.
+newZeroMemVTable :: MonadIO m => m MemVTable
+newZeroMemVTable = liftIO $ callocBytes 48 >>= wrapPtr MemVTable
+
 noMemVTable :: Maybe MemVTable
 noMemVTable = Nothing
 
 -- XXX Skipped getter for "MemVTable:free" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+type family ResolveMemVTableMethod (t :: Symbol) (o :: *) :: * where
+    ResolveMemVTableMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveMemVTableMethod t MemVTable, MethodInfo info MemVTable p) => IsLabelProxy t (MemVTable -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveMemVTableMethod t MemVTable, MethodInfo info MemVTable p) => IsLabel t (MemVTable -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Node.hs b/GI/GLib/Structs/Node.hs
--- a/GI/GLib/Structs/Node.hs
+++ b/GI/GLib/Structs/Node.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -12,47 +13,58 @@
 
 -- * Exported types
     Node(..)                                ,
+    newZeroNode                             ,
     noNode                                  ,
 
 
  -- * Methods
 -- ** nodeChildIndex
+    NodeChildIndexMethodInfo                ,
     nodeChildIndex                          ,
 
 
 -- ** nodeChildPosition
+    NodeChildPositionMethodInfo             ,
     nodeChildPosition                       ,
 
 
 -- ** nodeDepth
+    NodeDepthMethodInfo                     ,
     nodeDepth                               ,
 
 
 -- ** nodeDestroy
+    NodeDestroyMethodInfo                   ,
     nodeDestroy                             ,
 
 
 -- ** nodeIsAncestor
+    NodeIsAncestorMethodInfo                ,
     nodeIsAncestor                          ,
 
 
 -- ** nodeMaxHeight
+    NodeMaxHeightMethodInfo                 ,
     nodeMaxHeight                           ,
 
 
 -- ** nodeNChildren
+    NodeNChildrenMethodInfo                 ,
     nodeNChildren                           ,
 
 
 -- ** nodeNNodes
+    NodeNNodesMethodInfo                    ,
     nodeNNodes                              ,
 
 
 -- ** nodeReverseChildren
+    NodeReverseChildrenMethodInfo           ,
     nodeReverseChildren                     ,
 
 
 -- ** nodeUnlink
+    NodeUnlinkMethodInfo                    ,
     nodeUnlink                              ,
 
 
@@ -94,6 +106,10 @@
 import GI.GLib.Callbacks
 
 newtype Node = Node (ForeignPtr Node)
+-- | Construct a `Node` struct initialized to zero.
+newZeroNode :: MonadIO m => m Node
+newZeroNode = liftIO $ callocBytes 40 >>= wrapPtr Node
+
 noNode :: Maybe Node
 noNode = Nothing
 
@@ -128,9 +144,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -143,20 +158,23 @@
 
 nodeChildIndex ::
     (MonadIO m) =>
-    Node ->                                 -- _obj
-    Ptr () ->                               -- data
-    m Int32
+    Node                                    -- _obj
+    -> Ptr ()                               -- data_
+    -> m Int32                              -- result
 nodeChildIndex _obj data_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_node_child_index _obj' data_
     touchManagedPtr _obj
     return result
 
+data NodeChildIndexMethodInfo
+instance (signature ~ (Ptr () -> m Int32), MonadIO m) => MethodInfo NodeChildIndexMethodInfo Node signature where
+    overloadedMethod _ = nodeChildIndex
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -169,9 +187,9 @@
 
 nodeChildPosition ::
     (MonadIO m) =>
-    Node ->                                 -- _obj
-    Node ->                                 -- child
-    m Int32
+    Node                                    -- _obj
+    -> Node                                 -- child
+    -> m Int32                              -- result
 nodeChildPosition _obj child = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let child' = unsafeManagedPtrGetPtr child
@@ -180,11 +198,14 @@
     touchManagedPtr child
     return result
 
+data NodeChildPositionMethodInfo
+instance (signature ~ (Node -> m Int32), MonadIO m) => MethodInfo NodeChildPositionMethodInfo Node signature where
+    overloadedMethod _ = nodeChildPosition
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -196,19 +217,22 @@
 
 nodeDepth ::
     (MonadIO m) =>
-    Node ->                                 -- _obj
-    m Word32
+    Node                                    -- _obj
+    -> m Word32                             -- result
 nodeDepth _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_node_depth _obj'
     touchManagedPtr _obj
     return result
 
+data NodeDepthMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo NodeDepthMethodInfo Node signature where
+    overloadedMethod _ = nodeDepth
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -220,19 +244,22 @@
 
 nodeDestroy ::
     (MonadIO m) =>
-    Node ->                                 -- _obj
-    m ()
+    Node                                    -- _obj
+    -> m ()                                 -- result
 nodeDestroy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_node_destroy _obj'
     touchManagedPtr _obj
     return ()
 
+data NodeDestroyMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo NodeDestroyMethodInfo Node signature where
+    overloadedMethod _ = nodeDestroy
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "descendant", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -245,9 +272,9 @@
 
 nodeIsAncestor ::
     (MonadIO m) =>
-    Node ->                                 -- _obj
-    Node ->                                 -- descendant
-    m Bool
+    Node                                    -- _obj
+    -> Node                                 -- descendant
+    -> m Bool                               -- result
 nodeIsAncestor _obj descendant = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let descendant' = unsafeManagedPtrGetPtr descendant
@@ -257,11 +284,14 @@
     touchManagedPtr descendant
     return result'
 
+data NodeIsAncestorMethodInfo
+instance (signature ~ (Node -> m Bool), MonadIO m) => MethodInfo NodeIsAncestorMethodInfo Node signature where
+    overloadedMethod _ = nodeIsAncestor
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -273,19 +303,22 @@
 
 nodeMaxHeight ::
     (MonadIO m) =>
-    Node ->                                 -- _obj
-    m Word32
+    Node                                    -- _obj
+    -> m Word32                             -- result
 nodeMaxHeight _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_node_max_height _obj'
     touchManagedPtr _obj
     return result
 
+data NodeMaxHeightMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo NodeMaxHeightMethodInfo Node signature where
+    overloadedMethod _ = nodeMaxHeight
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -297,19 +330,22 @@
 
 nodeNChildren ::
     (MonadIO m) =>
-    Node ->                                 -- _obj
-    m Word32
+    Node                                    -- _obj
+    -> m Word32                             -- result
 nodeNChildren _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_node_n_children _obj'
     touchManagedPtr _obj
     return result
 
+data NodeNChildrenMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo NodeNChildrenMethodInfo Node signature where
+    overloadedMethod _ = nodeNChildren
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GLib" "TraverseFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -322,9 +358,9 @@
 
 nodeNNodes ::
     (MonadIO m) =>
-    Node ->                                 -- _obj
-    [TraverseFlags] ->                      -- flags
-    m Word32
+    Node                                    -- _obj
+    -> [TraverseFlags]                      -- flags
+    -> m Word32                             -- result
 nodeNNodes _obj flags = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let flags' = gflagsToWord flags
@@ -332,11 +368,14 @@
     touchManagedPtr _obj
     return result
 
+data NodeNNodesMethodInfo
+instance (signature ~ ([TraverseFlags] -> m Word32), MonadIO m) => MethodInfo NodeNNodesMethodInfo Node signature where
+    overloadedMethod _ = nodeNNodes
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -348,19 +387,22 @@
 
 nodeReverseChildren ::
     (MonadIO m) =>
-    Node ->                                 -- _obj
-    m ()
+    Node                                    -- _obj
+    -> m ()                                 -- result
 nodeReverseChildren _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_node_reverse_children _obj'
     touchManagedPtr _obj
     return ()
 
+data NodeReverseChildrenMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo NodeReverseChildrenMethodInfo Node signature where
+    overloadedMethod _ = nodeReverseChildren
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Node", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -372,12 +414,37 @@
 
 nodeUnlink ::
     (MonadIO m) =>
-    Node ->                                 -- _obj
-    m ()
+    Node                                    -- _obj
+    -> m ()                                 -- result
 nodeUnlink _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_node_unlink _obj'
     touchManagedPtr _obj
     return ()
+
+data NodeUnlinkMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo NodeUnlinkMethodInfo Node signature where
+    overloadedMethod _ = nodeUnlink
+
+type family ResolveNodeMethod (t :: Symbol) (o :: *) :: * where
+    ResolveNodeMethod "childIndex" o = NodeChildIndexMethodInfo
+    ResolveNodeMethod "childPosition" o = NodeChildPositionMethodInfo
+    ResolveNodeMethod "depth" o = NodeDepthMethodInfo
+    ResolveNodeMethod "destroy" o = NodeDestroyMethodInfo
+    ResolveNodeMethod "isAncestor" o = NodeIsAncestorMethodInfo
+    ResolveNodeMethod "maxHeight" o = NodeMaxHeightMethodInfo
+    ResolveNodeMethod "nChildren" o = NodeNChildrenMethodInfo
+    ResolveNodeMethod "nNodes" o = NodeNNodesMethodInfo
+    ResolveNodeMethod "reverseChildren" o = NodeReverseChildrenMethodInfo
+    ResolveNodeMethod "unlink" o = NodeUnlinkMethodInfo
+    ResolveNodeMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveNodeMethod t Node, MethodInfo info Node p) => IsLabelProxy t (Node -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveNodeMethod t Node, MethodInfo info Node p) => IsLabel t (Node -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Node.hs-boot b/GI/GLib/Structs/Node.hs-boot
--- a/GI/GLib/Structs/Node.hs-boot
+++ b/GI/GLib/Structs/Node.hs-boot
@@ -8,3 +8,13 @@
 import qualified Data.Map as Map
 
 newtype Node = Node (ForeignPtr Node)
+data NodeChildIndexMethodInfo
+data NodeChildPositionMethodInfo
+data NodeDepthMethodInfo
+data NodeDestroyMethodInfo
+data NodeIsAncestorMethodInfo
+data NodeMaxHeightMethodInfo
+data NodeNChildrenMethodInfo
+data NodeNNodesMethodInfo
+data NodeReverseChildrenMethodInfo
+data NodeUnlinkMethodInfo
diff --git a/GI/GLib/Structs/Once.hs b/GI/GLib/Structs/Once.hs
--- a/GI/GLib/Structs/Once.hs
+++ b/GI/GLib/Structs/Once.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -14,9 +15,21 @@
 
 -- * Exported types
     Once(..)                                ,
+    newZeroOnce                             ,
     noOnce                                  ,
 
 
+ -- * Methods
+-- ** onceInitEnter
+    onceInitEnter                           ,
+
+
+-- ** onceInitLeave
+    onceInitLeave                           ,
+
+
+
+
  -- * Properties
 -- ** Retval
     onceReadRetval                          ,
@@ -41,6 +54,10 @@
 import GI.GLib.Callbacks
 
 newtype Once = Once (ForeignPtr Once)
+-- | Construct a `Once` struct initialized to zero.
+newZeroOnce :: MonadIO m => m Once
+newZeroOnce = liftIO $ callocBytes 16 >>= wrapPtr Once
+
 noOnce :: Maybe Once
 noOnce = Nothing
 
@@ -54,5 +71,61 @@
 onceReadRetval s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO (Ptr ())
     return val
+
+-- method Once::init_enter
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+onceInitEnter location = liftIO $ do
+    result <- g_once_init_enter location
+    let result' = (/= 0) result
+    return result'
+
+-- method Once::init_leave
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "location", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "result", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+onceInitLeave location result_ = liftIO $ do
+    g_once_init_leave location result_
+    return ()
+
+type family ResolveOnceMethod (t :: Symbol) (o :: *) :: * where
+    ResolveOnceMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveOnceMethod t Once, MethodInfo info Once p) => IsLabelProxy t (Once -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveOnceMethod t Once, MethodInfo info Once p) => IsLabel t (Once -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/OptionContext.hs b/GI/GLib/Structs/OptionContext.hs
--- a/GI/GLib/Structs/OptionContext.hs
+++ b/GI/GLib/Structs/OptionContext.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -19,78 +20,97 @@
 
  -- * Methods
 -- ** optionContextAddGroup
+    OptionContextAddGroupMethodInfo         ,
     optionContextAddGroup                   ,
 
 
 -- ** optionContextAddMainEntries
+    OptionContextAddMainEntriesMethodInfo   ,
     optionContextAddMainEntries             ,
 
 
 -- ** optionContextFree
+    OptionContextFreeMethodInfo             ,
     optionContextFree                       ,
 
 
 -- ** optionContextGetDescription
+    OptionContextGetDescriptionMethodInfo   ,
     optionContextGetDescription             ,
 
 
 -- ** optionContextGetHelp
+    OptionContextGetHelpMethodInfo          ,
     optionContextGetHelp                    ,
 
 
 -- ** optionContextGetHelpEnabled
+    OptionContextGetHelpEnabledMethodInfo   ,
     optionContextGetHelpEnabled             ,
 
 
 -- ** optionContextGetIgnoreUnknownOptions
+    OptionContextGetIgnoreUnknownOptionsMethodInfo,
     optionContextGetIgnoreUnknownOptions    ,
 
 
 -- ** optionContextGetMainGroup
+    OptionContextGetMainGroupMethodInfo     ,
     optionContextGetMainGroup               ,
 
 
 -- ** optionContextGetStrictPosix
+    OptionContextGetStrictPosixMethodInfo   ,
     optionContextGetStrictPosix             ,
 
 
 -- ** optionContextGetSummary
+    OptionContextGetSummaryMethodInfo       ,
     optionContextGetSummary                 ,
 
 
 -- ** optionContextParseStrv
+    OptionContextParseStrvMethodInfo        ,
     optionContextParseStrv                  ,
 
 
 -- ** optionContextSetDescription
+    OptionContextSetDescriptionMethodInfo   ,
     optionContextSetDescription             ,
 
 
 -- ** optionContextSetHelpEnabled
+    OptionContextSetHelpEnabledMethodInfo   ,
     optionContextSetHelpEnabled             ,
 
 
 -- ** optionContextSetIgnoreUnknownOptions
+    OptionContextSetIgnoreUnknownOptionsMethodInfo,
     optionContextSetIgnoreUnknownOptions    ,
 
 
 -- ** optionContextSetMainGroup
+    OptionContextSetMainGroupMethodInfo     ,
     optionContextSetMainGroup               ,
 
 
 -- ** optionContextSetStrictPosix
+    OptionContextSetStrictPosixMethodInfo   ,
     optionContextSetStrictPosix             ,
 
 
 -- ** optionContextSetSummary
+    OptionContextSetSummaryMethodInfo       ,
     optionContextSetSummary                 ,
 
 
 -- ** optionContextSetTranslateFunc
+    OptionContextSetTranslateFuncMethodInfo ,
     optionContextSetTranslateFunc           ,
 
 
 -- ** optionContextSetTranslationDomain
+    OptionContextSetTranslationDomainMethodInfo,
     optionContextSetTranslationDomain       ,
 
 
@@ -114,9 +134,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -129,9 +148,9 @@
 
 optionContextAddGroup ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    OptionGroup ->                          -- group
-    m ()
+    OptionContext                           -- _obj
+    -> OptionGroup                          -- group
+    -> m ()                                 -- result
 optionContextAddGroup _obj group = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     group' <- copyBoxed group
@@ -140,11 +159,14 @@
     touchManagedPtr group
     return ()
 
+data OptionContextAddGroupMethodInfo
+instance (signature ~ (OptionGroup -> m ()), MonadIO m) => MethodInfo OptionContextAddGroupMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextAddGroup
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "entries", argType = TInterface "GLib" "OptionEntry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "translation_domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -158,29 +180,32 @@
 
 optionContextAddMainEntries ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    OptionEntry ->                          -- entries
-    Maybe (T.Text) ->                       -- translation_domain
-    m ()
-optionContextAddMainEntries _obj entries translation_domain = liftIO $ do
+    OptionContext                           -- _obj
+    -> OptionEntry                          -- entries
+    -> Maybe (T.Text)                       -- translationDomain
+    -> m ()                                 -- result
+optionContextAddMainEntries _obj entries translationDomain = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let entries' = unsafeManagedPtrGetPtr entries
-    maybeTranslation_domain <- case translation_domain of
+    maybeTranslationDomain <- case translationDomain 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
+        Just jTranslationDomain -> do
+            jTranslationDomain' <- textToCString jTranslationDomain
+            return jTranslationDomain'
+    g_option_context_add_main_entries _obj' entries' maybeTranslationDomain
     touchManagedPtr _obj
     touchManagedPtr entries
-    freeMem maybeTranslation_domain
+    freeMem maybeTranslationDomain
     return ()
 
+data OptionContextAddMainEntriesMethodInfo
+instance (signature ~ (OptionEntry -> Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo OptionContextAddMainEntriesMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextAddMainEntries
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -192,19 +217,22 @@
 
 optionContextFree ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    m ()
+    OptionContext                           -- _obj
+    -> m ()                                 -- result
 optionContextFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_option_context_free _obj'
     touchManagedPtr _obj
     return ()
 
+data OptionContextFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo OptionContextFreeMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -216,8 +244,8 @@
 
 optionContextGetDescription ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    m T.Text
+    OptionContext                           -- _obj
+    -> m T.Text                             -- result
 optionContextGetDescription _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_option_context_get_description _obj'
@@ -226,11 +254,14 @@
     touchManagedPtr _obj
     return result'
 
+data OptionContextGetDescriptionMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo OptionContextGetDescriptionMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextGetDescription
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "main_help", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -244,19 +275,19 @@
 
 optionContextGetHelp ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    Bool ->                                 -- main_help
-    Maybe (OptionGroup) ->                  -- group
-    m T.Text
-optionContextGetHelp _obj main_help group = liftIO $ do
+    OptionContext                           -- _obj
+    -> Bool                                 -- mainHelp
+    -> Maybe (OptionGroup)                  -- group
+    -> m T.Text                             -- result
+optionContextGetHelp _obj mainHelp group = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let main_help' = (fromIntegral . fromEnum) main_help
+    let mainHelp' = (fromIntegral . fromEnum) mainHelp
     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 <- g_option_context_get_help _obj' mainHelp' maybeGroup
     checkUnexpectedReturnNULL "g_option_context_get_help" result
     result' <- cstringToText result
     freeMem result
@@ -264,11 +295,14 @@
     whenJust group touchManagedPtr
     return result'
 
+data OptionContextGetHelpMethodInfo
+instance (signature ~ (Bool -> Maybe (OptionGroup) -> m T.Text), MonadIO m) => MethodInfo OptionContextGetHelpMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextGetHelp
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -280,8 +314,8 @@
 
 optionContextGetHelpEnabled ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    m Bool
+    OptionContext                           -- _obj
+    -> m Bool                               -- result
 optionContextGetHelpEnabled _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_option_context_get_help_enabled _obj'
@@ -289,11 +323,14 @@
     touchManagedPtr _obj
     return result'
 
+data OptionContextGetHelpEnabledMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo OptionContextGetHelpEnabledMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextGetHelpEnabled
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -305,8 +342,8 @@
 
 optionContextGetIgnoreUnknownOptions ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    m Bool
+    OptionContext                           -- _obj
+    -> m Bool                               -- result
 optionContextGetIgnoreUnknownOptions _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_option_context_get_ignore_unknown_options _obj'
@@ -314,11 +351,14 @@
     touchManagedPtr _obj
     return result'
 
+data OptionContextGetIgnoreUnknownOptionsMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo OptionContextGetIgnoreUnknownOptionsMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextGetIgnoreUnknownOptions
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -330,8 +370,8 @@
 
 optionContextGetMainGroup ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    m OptionGroup
+    OptionContext                           -- _obj
+    -> m OptionGroup                        -- result
 optionContextGetMainGroup _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_option_context_get_main_group _obj'
@@ -340,11 +380,14 @@
     touchManagedPtr _obj
     return result'
 
+data OptionContextGetMainGroupMethodInfo
+instance (signature ~ (m OptionGroup), MonadIO m) => MethodInfo OptionContextGetMainGroupMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextGetMainGroup
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -356,8 +399,8 @@
 
 optionContextGetStrictPosix ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    m Bool
+    OptionContext                           -- _obj
+    -> m Bool                               -- result
 optionContextGetStrictPosix _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_option_context_get_strict_posix _obj'
@@ -365,11 +408,14 @@
     touchManagedPtr _obj
     return result'
 
+data OptionContextGetStrictPosixMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo OptionContextGetStrictPosixMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextGetStrictPosix
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -381,8 +427,8 @@
 
 optionContextGetSummary ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    m T.Text
+    OptionContext                           -- _obj
+    -> m T.Text                             -- result
 optionContextGetSummary _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_option_context_get_summary _obj'
@@ -391,13 +437,16 @@
     touchManagedPtr _obj
     return result'
 
+data OptionContextGetSummaryMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo OptionContextGetSummaryMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextGetSummary
+
 -- XXX Could not generate method OptionContext::parse
 -- Error was : Bad introspection data: "argument \"argc\" is not of nullable type (TBasicType TInt32), 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "arguments", argType = TCArray False (-1) (-1) (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -411,9 +460,9 @@
 
 optionContextParseStrv ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    Ptr CString ->                          -- arguments
-    m ((Ptr CString))
+    OptionContext                           -- _obj
+    -> Ptr CString                          -- arguments
+    -> m ((Ptr CString))                    -- result
 optionContextParseStrv _obj arguments = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     arguments' <- allocMem :: IO (Ptr (Ptr CString))
@@ -428,11 +477,14 @@
         freeMem arguments'
      )
 
+data OptionContextParseStrvMethodInfo
+instance (signature ~ (Ptr CString -> m ((Ptr CString))), MonadIO m) => MethodInfo OptionContextParseStrvMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextParseStrv
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -445,9 +497,9 @@
 
 optionContextSetDescription ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    Maybe (T.Text) ->                       -- description
-    m ()
+    OptionContext                           -- _obj
+    -> Maybe (T.Text)                       -- description
+    -> m ()                                 -- result
 optionContextSetDescription _obj description = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeDescription <- case description of
@@ -460,11 +512,14 @@
     freeMem maybeDescription
     return ()
 
+data OptionContextSetDescriptionMethodInfo
+instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo OptionContextSetDescriptionMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextSetDescription
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "help_enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -477,21 +532,24 @@
 
 optionContextSetHelpEnabled ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    Bool ->                                 -- help_enabled
-    m ()
-optionContextSetHelpEnabled _obj help_enabled = liftIO $ do
+    OptionContext                           -- _obj
+    -> Bool                                 -- helpEnabled
+    -> m ()                                 -- result
+optionContextSetHelpEnabled _obj helpEnabled = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let help_enabled' = (fromIntegral . fromEnum) help_enabled
-    g_option_context_set_help_enabled _obj' help_enabled'
+    let helpEnabled' = (fromIntegral . fromEnum) helpEnabled
+    g_option_context_set_help_enabled _obj' helpEnabled'
     touchManagedPtr _obj
     return ()
 
+data OptionContextSetHelpEnabledMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m) => MethodInfo OptionContextSetHelpEnabledMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextSetHelpEnabled
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ignore_unknown", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -504,21 +562,24 @@
 
 optionContextSetIgnoreUnknownOptions ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    Bool ->                                 -- ignore_unknown
-    m ()
-optionContextSetIgnoreUnknownOptions _obj ignore_unknown = liftIO $ do
+    OptionContext                           -- _obj
+    -> Bool                                 -- ignoreUnknown
+    -> m ()                                 -- result
+optionContextSetIgnoreUnknownOptions _obj ignoreUnknown = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let ignore_unknown' = (fromIntegral . fromEnum) ignore_unknown
-    g_option_context_set_ignore_unknown_options _obj' ignore_unknown'
+    let ignoreUnknown' = (fromIntegral . fromEnum) ignoreUnknown
+    g_option_context_set_ignore_unknown_options _obj' ignoreUnknown'
     touchManagedPtr _obj
     return ()
 
+data OptionContextSetIgnoreUnknownOptionsMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m) => MethodInfo OptionContextSetIgnoreUnknownOptionsMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextSetIgnoreUnknownOptions
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -531,9 +592,9 @@
 
 optionContextSetMainGroup ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    OptionGroup ->                          -- group
-    m ()
+    OptionContext                           -- _obj
+    -> OptionGroup                          -- group
+    -> m ()                                 -- result
 optionContextSetMainGroup _obj group = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     group' <- copyBoxed group
@@ -542,11 +603,14 @@
     touchManagedPtr group
     return ()
 
+data OptionContextSetMainGroupMethodInfo
+instance (signature ~ (OptionGroup -> m ()), MonadIO m) => MethodInfo OptionContextSetMainGroupMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextSetMainGroup
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "strict_posix", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -559,21 +623,24 @@
 
 optionContextSetStrictPosix ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    Bool ->                                 -- strict_posix
-    m ()
-optionContextSetStrictPosix _obj strict_posix = liftIO $ do
+    OptionContext                           -- _obj
+    -> Bool                                 -- strictPosix
+    -> m ()                                 -- result
+optionContextSetStrictPosix _obj strictPosix = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let strict_posix' = (fromIntegral . fromEnum) strict_posix
-    g_option_context_set_strict_posix _obj' strict_posix'
+    let strictPosix' = (fromIntegral . fromEnum) strictPosix
+    g_option_context_set_strict_posix _obj' strictPosix'
     touchManagedPtr _obj
     return ()
 
+data OptionContextSetStrictPosixMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m) => MethodInfo OptionContextSetStrictPosixMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextSetStrictPosix
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "summary", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -586,9 +653,9 @@
 
 optionContextSetSummary ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    Maybe (T.Text) ->                       -- summary
-    m ()
+    OptionContext                           -- _obj
+    -> Maybe (T.Text)                       -- summary
+    -> m ()                                 -- result
 optionContextSetSummary _obj summary = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeSummary <- case summary of
@@ -601,11 +668,14 @@
     freeMem maybeSummary
     return ()
 
+data OptionContextSetSummaryMethodInfo
+instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m) => MethodInfo OptionContextSetSummaryMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextSetSummary
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "TranslateFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -620,9 +690,9 @@
 
 optionContextSetTranslateFunc ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    Maybe (TranslateFunc) ->                -- func
-    m ()
+    OptionContext                           -- _obj
+    -> Maybe (TranslateFunc)                -- func
+    -> m ()                                 -- result
 optionContextSetTranslateFunc _obj func = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeFunc <- case func of
@@ -631,16 +701,19 @@
             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
+    let destroyNotify = safeFreeFunPtrPtr
+    g_option_context_set_translate_func _obj' maybeFunc data_ destroyNotify
     touchManagedPtr _obj
     return ()
 
+data OptionContextSetTranslateFuncMethodInfo
+instance (signature ~ (Maybe (TranslateFunc) -> m ()), MonadIO m) => MethodInfo OptionContextSetTranslateFuncMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextSetTranslateFunc
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -653,9 +726,9 @@
 
 optionContextSetTranslationDomain ::
     (MonadIO m) =>
-    OptionContext ->                        -- _obj
-    T.Text ->                               -- domain
-    m ()
+    OptionContext                           -- _obj
+    -> T.Text                               -- domain
+    -> m ()                                 -- result
 optionContextSetTranslationDomain _obj domain = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     domain' <- textToCString domain
@@ -663,5 +736,39 @@
     touchManagedPtr _obj
     freeMem domain'
     return ()
+
+data OptionContextSetTranslationDomainMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo OptionContextSetTranslationDomainMethodInfo OptionContext signature where
+    overloadedMethod _ = optionContextSetTranslationDomain
+
+type family ResolveOptionContextMethod (t :: Symbol) (o :: *) :: * where
+    ResolveOptionContextMethod "addGroup" o = OptionContextAddGroupMethodInfo
+    ResolveOptionContextMethod "addMainEntries" o = OptionContextAddMainEntriesMethodInfo
+    ResolveOptionContextMethod "free" o = OptionContextFreeMethodInfo
+    ResolveOptionContextMethod "parseStrv" o = OptionContextParseStrvMethodInfo
+    ResolveOptionContextMethod "getDescription" o = OptionContextGetDescriptionMethodInfo
+    ResolveOptionContextMethod "getHelp" o = OptionContextGetHelpMethodInfo
+    ResolveOptionContextMethod "getHelpEnabled" o = OptionContextGetHelpEnabledMethodInfo
+    ResolveOptionContextMethod "getIgnoreUnknownOptions" o = OptionContextGetIgnoreUnknownOptionsMethodInfo
+    ResolveOptionContextMethod "getMainGroup" o = OptionContextGetMainGroupMethodInfo
+    ResolveOptionContextMethod "getStrictPosix" o = OptionContextGetStrictPosixMethodInfo
+    ResolveOptionContextMethod "getSummary" o = OptionContextGetSummaryMethodInfo
+    ResolveOptionContextMethod "setDescription" o = OptionContextSetDescriptionMethodInfo
+    ResolveOptionContextMethod "setHelpEnabled" o = OptionContextSetHelpEnabledMethodInfo
+    ResolveOptionContextMethod "setIgnoreUnknownOptions" o = OptionContextSetIgnoreUnknownOptionsMethodInfo
+    ResolveOptionContextMethod "setMainGroup" o = OptionContextSetMainGroupMethodInfo
+    ResolveOptionContextMethod "setStrictPosix" o = OptionContextSetStrictPosixMethodInfo
+    ResolveOptionContextMethod "setSummary" o = OptionContextSetSummaryMethodInfo
+    ResolveOptionContextMethod "setTranslateFunc" o = OptionContextSetTranslateFuncMethodInfo
+    ResolveOptionContextMethod "setTranslationDomain" o = OptionContextSetTranslationDomainMethodInfo
+    ResolveOptionContextMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveOptionContextMethod t OptionContext, MethodInfo info OptionContext p) => IsLabelProxy t (OptionContext -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveOptionContextMethod t OptionContext, MethodInfo info OptionContext p) => IsLabel t (OptionContext -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/OptionContext.hs-boot b/GI/GLib/Structs/OptionContext.hs-boot
--- a/GI/GLib/Structs/OptionContext.hs-boot
+++ b/GI/GLib/Structs/OptionContext.hs-boot
@@ -8,3 +8,22 @@
 import qualified Data.Map as Map
 
 newtype OptionContext = OptionContext (ForeignPtr OptionContext)
+data OptionContextAddGroupMethodInfo
+data OptionContextAddMainEntriesMethodInfo
+data OptionContextFreeMethodInfo
+data OptionContextGetDescriptionMethodInfo
+data OptionContextGetHelpMethodInfo
+data OptionContextGetHelpEnabledMethodInfo
+data OptionContextGetIgnoreUnknownOptionsMethodInfo
+data OptionContextGetMainGroupMethodInfo
+data OptionContextGetStrictPosixMethodInfo
+data OptionContextGetSummaryMethodInfo
+data OptionContextParseStrvMethodInfo
+data OptionContextSetDescriptionMethodInfo
+data OptionContextSetHelpEnabledMethodInfo
+data OptionContextSetIgnoreUnknownOptionsMethodInfo
+data OptionContextSetMainGroupMethodInfo
+data OptionContextSetStrictPosixMethodInfo
+data OptionContextSetSummaryMethodInfo
+data OptionContextSetTranslateFuncMethodInfo
+data OptionContextSetTranslationDomainMethodInfo
diff --git a/GI/GLib/Structs/OptionEntry.hs b/GI/GLib/Structs/OptionEntry.hs
--- a/GI/GLib/Structs/OptionEntry.hs
+++ b/GI/GLib/Structs/OptionEntry.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -14,6 +15,7 @@
 
 -- * Exported types
     OptionEntry(..)                         ,
+    newZeroOptionEntry                      ,
     noOptionEntry                           ,
 
 
@@ -61,6 +63,10 @@
 import GI.GLib.Callbacks
 
 newtype OptionEntry = OptionEntry (ForeignPtr OptionEntry)
+-- | Construct a `OptionEntry` struct initialized to zero.
+newZeroOptionEntry :: MonadIO m => m OptionEntry
+newZeroOptionEntry = liftIO $ callocBytes 48 >>= wrapPtr OptionEntry
+
 noOptionEntry :: Maybe OptionEntry
 noOptionEntry = Nothing
 
@@ -102,5 +108,16 @@
     val <- peek (ptr `plusPtr` 40) :: IO CString
     val' <- cstringToText val
     return val'
+
+type family ResolveOptionEntryMethod (t :: Symbol) (o :: *) :: * where
+    ResolveOptionEntryMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveOptionEntryMethod t OptionEntry, MethodInfo info OptionEntry p) => IsLabelProxy t (OptionEntry -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveOptionEntryMethod t OptionEntry, MethodInfo info OptionEntry p) => IsLabel t (OptionEntry -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/OptionGroup.hs b/GI/GLib/Structs/OptionGroup.hs
--- a/GI/GLib/Structs/OptionGroup.hs
+++ b/GI/GLib/Structs/OptionGroup.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -23,10 +24,12 @@
 
  -- * Methods
 -- ** optionGroupAddEntries
+    OptionGroupAddEntriesMethodInfo         ,
     optionGroupAddEntries                   ,
 
 
 -- ** optionGroupFree
+    OptionGroupFreeMethodInfo               ,
     optionGroupFree                         ,
 
 
@@ -35,18 +38,22 @@
 
 
 -- ** optionGroupRef
+    OptionGroupRefMethodInfo                ,
     optionGroupRef                          ,
 
 
 -- ** optionGroupSetTranslateFunc
+    OptionGroupSetTranslateFuncMethodInfo   ,
     optionGroupSetTranslateFunc             ,
 
 
 -- ** optionGroupSetTranslationDomain
+    OptionGroupSetTranslationDomainMethodInfo,
     optionGroupSetTranslationDomain         ,
 
 
 -- ** optionGroupUnref
+    OptionGroupUnrefMethodInfo              ,
     optionGroupUnref                        ,
 
 
@@ -76,9 +83,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "help_description", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -94,20 +100,20 @@
 
 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
+    T.Text                                  -- name
+    -> T.Text                               -- description
+    -> T.Text                               -- helpDescription
+    -> Maybe (Ptr ())                       -- userData
+    -> Maybe (DestroyNotify)                -- destroy
+    -> m OptionGroup                        -- result
+optionGroupNew name description helpDescription userData destroy = liftIO $ do
     name' <- textToCString name
     description' <- textToCString description
-    help_description' <- textToCString help_description
-    maybeUser_data <- case user_data of
+    helpDescription' <- textToCString helpDescription
+    maybeUserData <- case userData of
         Nothing -> return nullPtr
-        Just jUser_data -> do
-            return jUser_data
+        Just jUserData -> do
+            return jUserData
     ptrdestroy <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
     maybeDestroy <- case destroy of
         Nothing -> return (castPtrToFunPtr nullPtr)
@@ -115,19 +121,18 @@
             jDestroy' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrdestroy) jDestroy)
             poke ptrdestroy jDestroy'
             return jDestroy'
-    result <- g_option_group_new name' description' help_description' maybeUser_data maybeDestroy
+    result <- g_option_group_new name' description' helpDescription' maybeUserData maybeDestroy
     checkUnexpectedReturnNULL "g_option_group_new" result
     result' <- (wrapBoxed OptionGroup) result
     freeMem name'
     freeMem description'
-    freeMem help_description'
+    freeMem helpDescription'
     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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "entries", argType = TInterface "GLib" "OptionEntry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -140,9 +145,9 @@
 
 optionGroupAddEntries ::
     (MonadIO m) =>
-    OptionGroup ->                          -- _obj
-    OptionEntry ->                          -- entries
-    m ()
+    OptionGroup                             -- _obj
+    -> OptionEntry                          -- entries
+    -> m ()                                 -- result
 optionGroupAddEntries _obj entries = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let entries' = unsafeManagedPtrGetPtr entries
@@ -151,11 +156,14 @@
     touchManagedPtr entries
     return ()
 
+data OptionGroupAddEntriesMethodInfo
+instance (signature ~ (OptionEntry -> m ()), MonadIO m) => MethodInfo OptionGroupAddEntriesMethodInfo OptionGroup signature where
+    overloadedMethod _ = optionGroupAddEntries
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -167,19 +175,22 @@
 {-# DEPRECATED optionGroupFree ["(Since version 2.44)","Use g_option_group_unref() instead."]#-}
 optionGroupFree ::
     (MonadIO m) =>
-    OptionGroup ->                          -- _obj
-    m ()
+    OptionGroup                             -- _obj
+    -> m ()                                 -- result
 optionGroupFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_option_group_free _obj'
     touchManagedPtr _obj
     return ()
 
+data OptionGroupFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo OptionGroupFreeMethodInfo OptionGroup signature where
+    overloadedMethod _ = optionGroupFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -191,8 +202,8 @@
 
 optionGroupRef ::
     (MonadIO m) =>
-    OptionGroup ->                          -- _obj
-    m OptionGroup
+    OptionGroup                             -- _obj
+    -> m OptionGroup                        -- result
 optionGroupRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_option_group_ref _obj'
@@ -201,11 +212,14 @@
     touchManagedPtr _obj
     return result'
 
+data OptionGroupRefMethodInfo
+instance (signature ~ (m OptionGroup), MonadIO m) => MethodInfo OptionGroupRefMethodInfo OptionGroup signature where
+    overloadedMethod _ = optionGroupRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "TranslateFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "destroy_notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -220,9 +234,9 @@
 
 optionGroupSetTranslateFunc ::
     (MonadIO m) =>
-    OptionGroup ->                          -- _obj
-    Maybe (TranslateFunc) ->                -- func
-    m ()
+    OptionGroup                             -- _obj
+    -> Maybe (TranslateFunc)                -- func
+    -> m ()                                 -- result
 optionGroupSetTranslateFunc _obj func = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeFunc <- case func of
@@ -231,16 +245,19 @@
             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
+    let destroyNotify = safeFreeFunPtrPtr
+    g_option_group_set_translate_func _obj' maybeFunc data_ destroyNotify
     touchManagedPtr _obj
     return ()
 
+data OptionGroupSetTranslateFuncMethodInfo
+instance (signature ~ (Maybe (TranslateFunc) -> m ()), MonadIO m) => MethodInfo OptionGroupSetTranslateFuncMethodInfo OptionGroup signature where
+    overloadedMethod _ = optionGroupSetTranslateFunc
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "domain", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -253,9 +270,9 @@
 
 optionGroupSetTranslationDomain ::
     (MonadIO m) =>
-    OptionGroup ->                          -- _obj
-    T.Text ->                               -- domain
-    m ()
+    OptionGroup                             -- _obj
+    -> T.Text                               -- domain
+    -> m ()                                 -- result
 optionGroupSetTranslationDomain _obj domain = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     domain' <- textToCString domain
@@ -264,11 +281,14 @@
     freeMem domain'
     return ()
 
+data OptionGroupSetTranslationDomainMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo OptionGroupSetTranslationDomainMethodInfo OptionGroup signature where
+    overloadedMethod _ = optionGroupSetTranslationDomain
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -280,12 +300,33 @@
 
 optionGroupUnref ::
     (MonadIO m) =>
-    OptionGroup ->                          -- _obj
-    m ()
+    OptionGroup                             -- _obj
+    -> m ()                                 -- result
 optionGroupUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_option_group_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data OptionGroupUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo OptionGroupUnrefMethodInfo OptionGroup signature where
+    overloadedMethod _ = optionGroupUnref
+
+type family ResolveOptionGroupMethod (t :: Symbol) (o :: *) :: * where
+    ResolveOptionGroupMethod "addEntries" o = OptionGroupAddEntriesMethodInfo
+    ResolveOptionGroupMethod "free" o = OptionGroupFreeMethodInfo
+    ResolveOptionGroupMethod "ref" o = OptionGroupRefMethodInfo
+    ResolveOptionGroupMethod "unref" o = OptionGroupUnrefMethodInfo
+    ResolveOptionGroupMethod "setTranslateFunc" o = OptionGroupSetTranslateFuncMethodInfo
+    ResolveOptionGroupMethod "setTranslationDomain" o = OptionGroupSetTranslationDomainMethodInfo
+    ResolveOptionGroupMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveOptionGroupMethod t OptionGroup, MethodInfo info OptionGroup p) => IsLabelProxy t (OptionGroup -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveOptionGroupMethod t OptionGroup, MethodInfo info OptionGroup p) => IsLabel t (OptionGroup -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/OptionGroup.hs-boot b/GI/GLib/Structs/OptionGroup.hs-boot
--- a/GI/GLib/Structs/OptionGroup.hs-boot
+++ b/GI/GLib/Structs/OptionGroup.hs-boot
@@ -9,3 +9,9 @@
 
 newtype OptionGroup = OptionGroup (ForeignPtr OptionGroup)
 instance BoxedObject OptionGroup where
+data OptionGroupAddEntriesMethodInfo
+data OptionGroupFreeMethodInfo
+data OptionGroupRefMethodInfo
+data OptionGroupSetTranslateFuncMethodInfo
+data OptionGroupSetTranslationDomainMethodInfo
+data OptionGroupUnrefMethodInfo
diff --git a/GI/GLib/Structs/PatternSpec.hs b/GI/GLib/Structs/PatternSpec.hs
--- a/GI/GLib/Structs/PatternSpec.hs
+++ b/GI/GLib/Structs/PatternSpec.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,10 +19,12 @@
 
  -- * Methods
 -- ** patternSpecEqual
+    PatternSpecEqualMethodInfo              ,
     patternSpecEqual                        ,
 
 
 -- ** patternSpecFree
+    PatternSpecFreeMethodInfo               ,
     patternSpecFree                         ,
 
 
@@ -45,9 +48,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pspec2", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -60,9 +62,9 @@
 
 patternSpecEqual ::
     (MonadIO m) =>
-    PatternSpec ->                          -- _obj
-    PatternSpec ->                          -- pspec2
-    m Bool
+    PatternSpec                             -- _obj
+    -> PatternSpec                          -- pspec2
+    -> m Bool                               -- result
 patternSpecEqual _obj pspec2 = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let pspec2' = unsafeManagedPtrGetPtr pspec2
@@ -72,11 +74,14 @@
     touchManagedPtr pspec2
     return result'
 
+data PatternSpecEqualMethodInfo
+instance (signature ~ (PatternSpec -> m Bool), MonadIO m) => MethodInfo PatternSpecEqualMethodInfo PatternSpec signature where
+    overloadedMethod _ = patternSpecEqual
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "PatternSpec", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -88,12 +93,29 @@
 
 patternSpecFree ::
     (MonadIO m) =>
-    PatternSpec ->                          -- _obj
-    m ()
+    PatternSpec                             -- _obj
+    -> m ()                                 -- result
 patternSpecFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_pattern_spec_free _obj'
     touchManagedPtr _obj
     return ()
+
+data PatternSpecFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo PatternSpecFreeMethodInfo PatternSpec signature where
+    overloadedMethod _ = patternSpecFree
+
+type family ResolvePatternSpecMethod (t :: Symbol) (o :: *) :: * where
+    ResolvePatternSpecMethod "equal" o = PatternSpecEqualMethodInfo
+    ResolvePatternSpecMethod "free" o = PatternSpecFreeMethodInfo
+    ResolvePatternSpecMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolvePatternSpecMethod t PatternSpec, MethodInfo info PatternSpec p) => IsLabelProxy t (PatternSpec -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolvePatternSpecMethod t PatternSpec, MethodInfo info PatternSpec p) => IsLabel t (PatternSpec -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/PatternSpec.hs-boot b/GI/GLib/Structs/PatternSpec.hs-boot
--- a/GI/GLib/Structs/PatternSpec.hs-boot
+++ b/GI/GLib/Structs/PatternSpec.hs-boot
@@ -8,3 +8,5 @@
 import qualified Data.Map as Map
 
 newtype PatternSpec = PatternSpec (ForeignPtr PatternSpec)
+data PatternSpecEqualMethodInfo
+data PatternSpecFreeMethodInfo
diff --git a/GI/GLib/Structs/PollFD.hs b/GI/GLib/Structs/PollFD.hs
--- a/GI/GLib/Structs/PollFD.hs
+++ b/GI/GLib/Structs/PollFD.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -13,6 +14,7 @@
 
 -- * Exported types
     PollFD(..)                              ,
+    newZeroPollFD                           ,
     noPollFD                                ,
 
 
@@ -50,6 +52,10 @@
 instance BoxedObject PollFD where
     boxedType _ = c_g_pollfd_get_type
 
+-- | Construct a `PollFD` struct initialized to zero.
+newZeroPollFD :: MonadIO m => m PollFD
+newZeroPollFD = liftIO $ callocBoxedBytes 8 >>= wrapBoxed PollFD
+
 noPollFD :: Maybe PollFD
 noPollFD = Nothing
 
@@ -67,5 +73,16 @@
 pollFDReadRevents s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 6) :: IO Word16
     return val
+
+type family ResolvePollFDMethod (t :: Symbol) (o :: *) :: * where
+    ResolvePollFDMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolvePollFDMethod t PollFD, MethodInfo info PollFD p) => IsLabelProxy t (PollFD -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolvePollFDMethod t PollFD, MethodInfo info PollFD p) => IsLabel t (PollFD -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/PtrArray.hs b/GI/GLib/Structs/PtrArray.hs
--- a/GI/GLib/Structs/PtrArray.hs
+++ b/GI/GLib/Structs/PtrArray.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -12,6 +13,7 @@
 
 -- * Exported types
     PtrArray(..)                            ,
+    newZeroPtrArray                         ,
     noPtrArray                              ,
 
 
@@ -45,6 +47,10 @@
 instance BoxedObject PtrArray where
     boxedType _ = c_g_ptr_array_get_type
 
+-- | Construct a `PtrArray` struct initialized to zero.
+newZeroPtrArray :: MonadIO m => m PtrArray
+newZeroPtrArray = liftIO $ callocBoxedBytes 16 >>= wrapBoxed PtrArray
+
 noPtrArray :: Maybe PtrArray
 noPtrArray = Nothing
 
@@ -57,5 +63,16 @@
 ptrArrayReadLen s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Word32
     return val
+
+type family ResolvePtrArrayMethod (t :: Symbol) (o :: *) :: * where
+    ResolvePtrArrayMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolvePtrArrayMethod t PtrArray, MethodInfo info PtrArray p) => IsLabelProxy t (PtrArray -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolvePtrArrayMethod t PtrArray, MethodInfo info PtrArray p) => IsLabel t (PtrArray -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Queue.hs b/GI/GLib/Structs/Queue.hs
--- a/GI/GLib/Structs/Queue.hs
+++ b/GI/GLib/Structs/Queue.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -13,59 +14,73 @@
 
 -- * Exported types
     Queue(..)                               ,
+    newZeroQueue                            ,
     noQueue                                 ,
 
 
  -- * Methods
 -- ** queueClear
+    QueueClearMethodInfo                    ,
     queueClear                              ,
 
 
 -- ** queueFree
+    QueueFreeMethodInfo                     ,
     queueFree                               ,
 
 
 -- ** queueFreeFull
+    QueueFreeFullMethodInfo                 ,
     queueFreeFull                           ,
 
 
 -- ** queueGetLength
+    QueueGetLengthMethodInfo                ,
     queueGetLength                          ,
 
 
 -- ** queueIndex
+    QueueIndexMethodInfo                    ,
     queueIndex                              ,
 
 
 -- ** queueInit
+    QueueInitMethodInfo                     ,
     queueInit                               ,
 
 
 -- ** queueIsEmpty
+    QueueIsEmptyMethodInfo                  ,
     queueIsEmpty                            ,
 
 
 -- ** queuePushHead
+    QueuePushHeadMethodInfo                 ,
     queuePushHead                           ,
 
 
 -- ** queuePushNth
+    QueuePushNthMethodInfo                  ,
     queuePushNth                            ,
 
 
 -- ** queuePushTail
+    QueuePushTailMethodInfo                 ,
     queuePushTail                           ,
 
 
 -- ** queueRemove
+    QueueRemoveMethodInfo                   ,
     queueRemove                             ,
 
 
 -- ** queueRemoveAll
+    QueueRemoveAllMethodInfo                ,
     queueRemoveAll                          ,
 
 
 -- ** queueReverse
+    QueueReverseMethodInfo                  ,
     queueReverse                            ,
 
 
@@ -99,6 +114,10 @@
 import GI.GLib.Callbacks
 
 newtype Queue = Queue (ForeignPtr Queue)
+-- | Construct a `Queue` struct initialized to zero.
+newZeroQueue :: MonadIO m => m Queue
+newZeroQueue = liftIO $ callocBytes 24 >>= wrapPtr Queue
+
 noQueue :: Maybe Queue
 noQueue = Nothing
 
@@ -121,9 +140,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -135,19 +153,22 @@
 
 queueClear ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    m ()
+    Queue                                   -- _obj
+    -> m ()                                 -- result
 queueClear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_queue_clear _obj'
     touchManagedPtr _obj
     return ()
 
+data QueueClearMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo QueueClearMethodInfo Queue signature where
+    overloadedMethod _ = queueClear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -159,19 +180,22 @@
 
 queueFree ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    m ()
+    Queue                                   -- _obj
+    -> m ()                                 -- result
 queueFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_queue_free _obj'
     touchManagedPtr _obj
     return ()
 
+data QueueFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo QueueFreeMethodInfo Queue signature where
+    overloadedMethod _ = queueFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "free_func", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -184,23 +208,26 @@
 
 queueFreeFull ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    DestroyNotify ->                        -- free_func
-    m ()
-queueFreeFull _obj free_func = liftIO $ do
+    Queue                                   -- _obj
+    -> DestroyNotify                        -- freeFunc
+    -> m ()                                 -- result
+queueFreeFull _obj freeFunc = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    ptrfree_func <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
-    free_func' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrfree_func) free_func)
-    poke ptrfree_func free_func'
-    g_queue_free_full _obj' free_func'
+    ptrfreeFunc <- callocMem :: IO (Ptr (FunPtr DestroyNotifyC))
+    freeFunc' <- mkDestroyNotify (destroyNotifyWrapper (Just ptrfreeFunc) freeFunc)
+    poke ptrfreeFunc freeFunc'
+    g_queue_free_full _obj' freeFunc'
     touchManagedPtr _obj
     return ()
 
+data QueueFreeFullMethodInfo
+instance (signature ~ (DestroyNotify -> m ()), MonadIO m) => MethodInfo QueueFreeFullMethodInfo Queue signature where
+    overloadedMethod _ = queueFreeFull
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -212,19 +239,22 @@
 
 queueGetLength ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    m Word32
+    Queue                                   -- _obj
+    -> m Word32                             -- result
 queueGetLength _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_queue_get_length _obj'
     touchManagedPtr _obj
     return result
 
+data QueueGetLengthMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo QueueGetLengthMethodInfo Queue signature where
+    overloadedMethod _ = queueGetLength
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -237,20 +267,23 @@
 
 queueIndex ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    Ptr () ->                               -- data
-    m Int32
+    Queue                                   -- _obj
+    -> Ptr ()                               -- data_
+    -> m Int32                              -- result
 queueIndex _obj data_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_queue_index _obj' data_
     touchManagedPtr _obj
     return result
 
+data QueueIndexMethodInfo
+instance (signature ~ (Ptr () -> m Int32), MonadIO m) => MethodInfo QueueIndexMethodInfo Queue signature where
+    overloadedMethod _ = queueIndex
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -262,19 +295,22 @@
 
 queueInit ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    m ()
+    Queue                                   -- _obj
+    -> m ()                                 -- result
 queueInit _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_queue_init _obj'
     touchManagedPtr _obj
     return ()
 
+data QueueInitMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo QueueInitMethodInfo Queue signature where
+    overloadedMethod _ = queueInit
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -286,8 +322,8 @@
 
 queueIsEmpty ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    m Bool
+    Queue                                   -- _obj
+    -> m Bool                               -- result
 queueIsEmpty _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_queue_is_empty _obj'
@@ -295,11 +331,14 @@
     touchManagedPtr _obj
     return result'
 
+data QueueIsEmptyMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo QueueIsEmptyMethodInfo Queue signature where
+    overloadedMethod _ = queueIsEmpty
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -312,20 +351,23 @@
 
 queuePushHead ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    Ptr () ->                               -- data
-    m ()
+    Queue                                   -- _obj
+    -> Ptr ()                               -- data_
+    -> m ()                                 -- result
 queuePushHead _obj data_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_queue_push_head _obj' data_
     touchManagedPtr _obj
     return ()
 
+data QueuePushHeadMethodInfo
+instance (signature ~ (Ptr () -> m ()), MonadIO m) => MethodInfo QueuePushHeadMethodInfo Queue signature where
+    overloadedMethod _ = queuePushHead
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -339,21 +381,24 @@
 
 queuePushNth ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    Ptr () ->                               -- data
-    Int32 ->                                -- n
-    m ()
+    Queue                                   -- _obj
+    -> Ptr ()                               -- data_
+    -> Int32                                -- n
+    -> m ()                                 -- result
 queuePushNth _obj data_ n = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_queue_push_nth _obj' data_ n
     touchManagedPtr _obj
     return ()
 
+data QueuePushNthMethodInfo
+instance (signature ~ (Ptr () -> Int32 -> m ()), MonadIO m) => MethodInfo QueuePushNthMethodInfo Queue signature where
+    overloadedMethod _ = queuePushNth
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -366,20 +411,23 @@
 
 queuePushTail ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    Ptr () ->                               -- data
-    m ()
+    Queue                                   -- _obj
+    -> Ptr ()                               -- data_
+    -> m ()                                 -- result
 queuePushTail _obj data_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_queue_push_tail _obj' data_
     touchManagedPtr _obj
     return ()
 
+data QueuePushTailMethodInfo
+instance (signature ~ (Ptr () -> m ()), MonadIO m) => MethodInfo QueuePushTailMethodInfo Queue signature where
+    overloadedMethod _ = queuePushTail
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -392,9 +440,9 @@
 
 queueRemove ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    Ptr () ->                               -- data
-    m Bool
+    Queue                                   -- _obj
+    -> Ptr ()                               -- data_
+    -> m Bool                               -- result
 queueRemove _obj data_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_queue_remove _obj' data_
@@ -402,11 +450,14 @@
     touchManagedPtr _obj
     return result'
 
+data QueueRemoveMethodInfo
+instance (signature ~ (Ptr () -> m Bool), MonadIO m) => MethodInfo QueueRemoveMethodInfo Queue signature where
+    overloadedMethod _ = queueRemove
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -419,20 +470,23 @@
 
 queueRemoveAll ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    Ptr () ->                               -- data
-    m Word32
+    Queue                                   -- _obj
+    -> Ptr ()                               -- data_
+    -> m Word32                             -- result
 queueRemoveAll _obj data_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_queue_remove_all _obj' data_
     touchManagedPtr _obj
     return result
 
+data QueueRemoveAllMethodInfo
+instance (signature ~ (Ptr () -> m Word32), MonadIO m) => MethodInfo QueueRemoveAllMethodInfo Queue signature where
+    overloadedMethod _ = queueRemoveAll
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Queue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -444,12 +498,40 @@
 
 queueReverse ::
     (MonadIO m) =>
-    Queue ->                                -- _obj
-    m ()
+    Queue                                   -- _obj
+    -> m ()                                 -- result
 queueReverse _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_queue_reverse _obj'
     touchManagedPtr _obj
     return ()
+
+data QueueReverseMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo QueueReverseMethodInfo Queue signature where
+    overloadedMethod _ = queueReverse
+
+type family ResolveQueueMethod (t :: Symbol) (o :: *) :: * where
+    ResolveQueueMethod "clear" o = QueueClearMethodInfo
+    ResolveQueueMethod "free" o = QueueFreeMethodInfo
+    ResolveQueueMethod "freeFull" o = QueueFreeFullMethodInfo
+    ResolveQueueMethod "index" o = QueueIndexMethodInfo
+    ResolveQueueMethod "init" o = QueueInitMethodInfo
+    ResolveQueueMethod "isEmpty" o = QueueIsEmptyMethodInfo
+    ResolveQueueMethod "pushHead" o = QueuePushHeadMethodInfo
+    ResolveQueueMethod "pushNth" o = QueuePushNthMethodInfo
+    ResolveQueueMethod "pushTail" o = QueuePushTailMethodInfo
+    ResolveQueueMethod "remove" o = QueueRemoveMethodInfo
+    ResolveQueueMethod "removeAll" o = QueueRemoveAllMethodInfo
+    ResolveQueueMethod "reverse" o = QueueReverseMethodInfo
+    ResolveQueueMethod "getLength" o = QueueGetLengthMethodInfo
+    ResolveQueueMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveQueueMethod t Queue, MethodInfo info Queue p) => IsLabelProxy t (Queue -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveQueueMethod t Queue, MethodInfo info Queue p) => IsLabel t (Queue -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Queue.hs-boot b/GI/GLib/Structs/Queue.hs-boot
--- a/GI/GLib/Structs/Queue.hs-boot
+++ b/GI/GLib/Structs/Queue.hs-boot
@@ -8,3 +8,16 @@
 import qualified Data.Map as Map
 
 newtype Queue = Queue (ForeignPtr Queue)
+data QueueClearMethodInfo
+data QueueFreeMethodInfo
+data QueueFreeFullMethodInfo
+data QueueGetLengthMethodInfo
+data QueueIndexMethodInfo
+data QueueInitMethodInfo
+data QueueIsEmptyMethodInfo
+data QueuePushHeadMethodInfo
+data QueuePushNthMethodInfo
+data QueuePushTailMethodInfo
+data QueueRemoveMethodInfo
+data QueueRemoveAllMethodInfo
+data QueueReverseMethodInfo
diff --git a/GI/GLib/Structs/RWLock.hs b/GI/GLib/Structs/RWLock.hs
--- a/GI/GLib/Structs/RWLock.hs
+++ b/GI/GLib/Structs/RWLock.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -70,39 +71,48 @@
 
 -- * Exported types
     RWLock(..)                              ,
+    newZeroRWLock                           ,
     noRWLock                                ,
 
 
  -- * Methods
 -- ** rWLockClear
+    RWLockClearMethodInfo                   ,
     rWLockClear                             ,
 
 
 -- ** rWLockInit
+    RWLockInitMethodInfo                    ,
     rWLockInit                              ,
 
 
 -- ** rWLockReaderLock
+    RWLockReaderLockMethodInfo              ,
     rWLockReaderLock                        ,
 
 
 -- ** rWLockReaderTrylock
+    RWLockReaderTrylockMethodInfo           ,
     rWLockReaderTrylock                     ,
 
 
 -- ** rWLockReaderUnlock
+    RWLockReaderUnlockMethodInfo            ,
     rWLockReaderUnlock                      ,
 
 
 -- ** rWLockWriterLock
+    RWLockWriterLockMethodInfo              ,
     rWLockWriterLock                        ,
 
 
 -- ** rWLockWriterTrylock
+    RWLockWriterTrylockMethodInfo           ,
     rWLockWriterTrylock                     ,
 
 
 -- ** rWLockWriterUnlock
+    RWLockWriterUnlockMethodInfo            ,
     rWLockWriterUnlock                      ,
 
 
@@ -121,14 +131,17 @@
 import GI.GLib.Callbacks
 
 newtype RWLock = RWLock (ForeignPtr RWLock)
+-- | Construct a `RWLock` struct initialized to zero.
+newZeroRWLock :: MonadIO m => m RWLock
+newZeroRWLock = liftIO $ callocBytes 16 >>= wrapPtr 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -140,19 +153,22 @@
 
 rWLockClear ::
     (MonadIO m) =>
-    RWLock ->                               -- _obj
-    m ()
+    RWLock                                  -- _obj
+    -> m ()                                 -- result
 rWLockClear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rw_lock_clear _obj'
     touchManagedPtr _obj
     return ()
 
+data RWLockClearMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RWLockClearMethodInfo RWLock signature where
+    overloadedMethod _ = rWLockClear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -164,19 +180,22 @@
 
 rWLockInit ::
     (MonadIO m) =>
-    RWLock ->                               -- _obj
-    m ()
+    RWLock                                  -- _obj
+    -> m ()                                 -- result
 rWLockInit _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rw_lock_init _obj'
     touchManagedPtr _obj
     return ()
 
+data RWLockInitMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RWLockInitMethodInfo RWLock signature where
+    overloadedMethod _ = rWLockInit
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -188,19 +207,22 @@
 
 rWLockReaderLock ::
     (MonadIO m) =>
-    RWLock ->                               -- _obj
-    m ()
+    RWLock                                  -- _obj
+    -> m ()                                 -- result
 rWLockReaderLock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rw_lock_reader_lock _obj'
     touchManagedPtr _obj
     return ()
 
+data RWLockReaderLockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RWLockReaderLockMethodInfo RWLock signature where
+    overloadedMethod _ = rWLockReaderLock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -212,8 +234,8 @@
 
 rWLockReaderTrylock ::
     (MonadIO m) =>
-    RWLock ->                               -- _obj
-    m Bool
+    RWLock                                  -- _obj
+    -> m Bool                               -- result
 rWLockReaderTrylock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_rw_lock_reader_trylock _obj'
@@ -221,11 +243,14 @@
     touchManagedPtr _obj
     return result'
 
+data RWLockReaderTrylockMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo RWLockReaderTrylockMethodInfo RWLock signature where
+    overloadedMethod _ = rWLockReaderTrylock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -237,19 +262,22 @@
 
 rWLockReaderUnlock ::
     (MonadIO m) =>
-    RWLock ->                               -- _obj
-    m ()
+    RWLock                                  -- _obj
+    -> m ()                                 -- result
 rWLockReaderUnlock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rw_lock_reader_unlock _obj'
     touchManagedPtr _obj
     return ()
 
+data RWLockReaderUnlockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RWLockReaderUnlockMethodInfo RWLock signature where
+    overloadedMethod _ = rWLockReaderUnlock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -261,19 +289,22 @@
 
 rWLockWriterLock ::
     (MonadIO m) =>
-    RWLock ->                               -- _obj
-    m ()
+    RWLock                                  -- _obj
+    -> m ()                                 -- result
 rWLockWriterLock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rw_lock_writer_lock _obj'
     touchManagedPtr _obj
     return ()
 
+data RWLockWriterLockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RWLockWriterLockMethodInfo RWLock signature where
+    overloadedMethod _ = rWLockWriterLock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -285,8 +316,8 @@
 
 rWLockWriterTrylock ::
     (MonadIO m) =>
-    RWLock ->                               -- _obj
-    m Bool
+    RWLock                                  -- _obj
+    -> m Bool                               -- result
 rWLockWriterTrylock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_rw_lock_writer_trylock _obj'
@@ -294,11 +325,14 @@
     touchManagedPtr _obj
     return result'
 
+data RWLockWriterTrylockMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo RWLockWriterTrylockMethodInfo RWLock signature where
+    overloadedMethod _ = rWLockWriterTrylock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RWLock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -310,12 +344,35 @@
 
 rWLockWriterUnlock ::
     (MonadIO m) =>
-    RWLock ->                               -- _obj
-    m ()
+    RWLock                                  -- _obj
+    -> m ()                                 -- result
 rWLockWriterUnlock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rw_lock_writer_unlock _obj'
     touchManagedPtr _obj
     return ()
+
+data RWLockWriterUnlockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RWLockWriterUnlockMethodInfo RWLock signature where
+    overloadedMethod _ = rWLockWriterUnlock
+
+type family ResolveRWLockMethod (t :: Symbol) (o :: *) :: * where
+    ResolveRWLockMethod "clear" o = RWLockClearMethodInfo
+    ResolveRWLockMethod "init" o = RWLockInitMethodInfo
+    ResolveRWLockMethod "readerLock" o = RWLockReaderLockMethodInfo
+    ResolveRWLockMethod "readerTrylock" o = RWLockReaderTrylockMethodInfo
+    ResolveRWLockMethod "readerUnlock" o = RWLockReaderUnlockMethodInfo
+    ResolveRWLockMethod "writerLock" o = RWLockWriterLockMethodInfo
+    ResolveRWLockMethod "writerTrylock" o = RWLockWriterTrylockMethodInfo
+    ResolveRWLockMethod "writerUnlock" o = RWLockWriterUnlockMethodInfo
+    ResolveRWLockMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveRWLockMethod t RWLock, MethodInfo info RWLock p) => IsLabelProxy t (RWLock -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveRWLockMethod t RWLock, MethodInfo info RWLock p) => IsLabel t (RWLock -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/RWLock.hs-boot b/GI/GLib/Structs/RWLock.hs-boot
--- a/GI/GLib/Structs/RWLock.hs-boot
+++ b/GI/GLib/Structs/RWLock.hs-boot
@@ -8,3 +8,11 @@
 import qualified Data.Map as Map
 
 newtype RWLock = RWLock (ForeignPtr RWLock)
+data RWLockClearMethodInfo
+data RWLockInitMethodInfo
+data RWLockReaderLockMethodInfo
+data RWLockReaderTrylockMethodInfo
+data RWLockReaderUnlockMethodInfo
+data RWLockWriterLockMethodInfo
+data RWLockWriterTrylockMethodInfo
+data RWLockWriterUnlockMethodInfo
diff --git a/GI/GLib/Structs/Rand.hs b/GI/GLib/Structs/Rand.hs
--- a/GI/GLib/Structs/Rand.hs
+++ b/GI/GLib/Structs/Rand.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,30 +19,37 @@
 
  -- * Methods
 -- ** randDouble
+    RandDoubleMethodInfo                    ,
     randDouble                              ,
 
 
 -- ** randDoubleRange
+    RandDoubleRangeMethodInfo               ,
     randDoubleRange                         ,
 
 
 -- ** randFree
+    RandFreeMethodInfo                      ,
     randFree                                ,
 
 
 -- ** randInt
+    RandIntMethodInfo                       ,
     randInt                                 ,
 
 
 -- ** randIntRange
+    RandIntRangeMethodInfo                  ,
     randIntRange                            ,
 
 
 -- ** randSetSeed
+    RandSetSeedMethodInfo                   ,
     randSetSeed                             ,
 
 
 -- ** randSetSeedArray
+    RandSetSeedArrayMethodInfo              ,
     randSetSeedArray                        ,
 
 
@@ -65,9 +73,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -79,8 +86,8 @@
 
 randDouble ::
     (MonadIO m) =>
-    Rand ->                                 -- _obj
-    m Double
+    Rand                                    -- _obj
+    -> m Double                             -- result
 randDouble _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_rand_double _obj'
@@ -88,11 +95,14 @@
     touchManagedPtr _obj
     return result'
 
+data RandDoubleMethodInfo
+instance (signature ~ (m Double), MonadIO m) => MethodInfo RandDoubleMethodInfo Rand signature where
+    overloadedMethod _ = randDouble
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "begin", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -106,10 +116,10 @@
 
 randDoubleRange ::
     (MonadIO m) =>
-    Rand ->                                 -- _obj
-    Double ->                               -- begin
-    Double ->                               -- end
-    m Double
+    Rand                                    -- _obj
+    -> Double                               -- begin
+    -> Double                               -- end
+    -> m Double                             -- result
 randDoubleRange _obj begin end = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let begin' = realToFrac begin
@@ -119,11 +129,14 @@
     touchManagedPtr _obj
     return result'
 
+data RandDoubleRangeMethodInfo
+instance (signature ~ (Double -> Double -> m Double), MonadIO m) => MethodInfo RandDoubleRangeMethodInfo Rand signature where
+    overloadedMethod _ = randDoubleRange
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -135,19 +148,22 @@
 
 randFree ::
     (MonadIO m) =>
-    Rand ->                                 -- _obj
-    m ()
+    Rand                                    -- _obj
+    -> m ()                                 -- result
 randFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rand_free _obj'
     touchManagedPtr _obj
     return ()
 
+data RandFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RandFreeMethodInfo Rand signature where
+    overloadedMethod _ = randFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -159,19 +175,22 @@
 
 randInt ::
     (MonadIO m) =>
-    Rand ->                                 -- _obj
-    m Word32
+    Rand                                    -- _obj
+    -> m Word32                             -- result
 randInt _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_rand_int _obj'
     touchManagedPtr _obj
     return result
 
+data RandIntMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo RandIntMethodInfo Rand signature where
+    overloadedMethod _ = randInt
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "begin", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -185,21 +204,24 @@
 
 randIntRange ::
     (MonadIO m) =>
-    Rand ->                                 -- _obj
-    Int32 ->                                -- begin
-    Int32 ->                                -- end
-    m Int32
+    Rand                                    -- _obj
+    -> Int32                                -- begin
+    -> Int32                                -- end
+    -> m Int32                              -- result
 randIntRange _obj begin end = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_rand_int_range _obj' begin end
     touchManagedPtr _obj
     return result
 
+data RandIntRangeMethodInfo
+instance (signature ~ (Int32 -> Int32 -> m Int32), MonadIO m) => MethodInfo RandIntRangeMethodInfo Rand signature where
+    overloadedMethod _ = randIntRange
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -212,20 +234,23 @@
 
 randSetSeed ::
     (MonadIO m) =>
-    Rand ->                                 -- _obj
-    Word32 ->                               -- seed
-    m ()
+    Rand                                    -- _obj
+    -> Word32                               -- seed
+    -> m ()                                 -- result
 randSetSeed _obj seed = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rand_set_seed _obj' seed
     touchManagedPtr _obj
     return ()
 
+data RandSetSeedMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m) => MethodInfo RandSetSeedMethodInfo Rand signature where
+    overloadedMethod _ = randSetSeed
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Rand", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seed", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "seed_length", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -239,14 +264,36 @@
 
 randSetSeedArray ::
     (MonadIO m) =>
-    Rand ->                                 -- _obj
-    Word32 ->                               -- seed
-    Word32 ->                               -- seed_length
-    m ()
-randSetSeedArray _obj seed seed_length = liftIO $ do
+    Rand                                    -- _obj
+    -> Word32                               -- seed
+    -> Word32                               -- seedLength
+    -> m ()                                 -- result
+randSetSeedArray _obj seed seedLength = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_rand_set_seed_array _obj' seed seed_length
+    g_rand_set_seed_array _obj' seed seedLength
     touchManagedPtr _obj
     return ()
+
+data RandSetSeedArrayMethodInfo
+instance (signature ~ (Word32 -> Word32 -> m ()), MonadIO m) => MethodInfo RandSetSeedArrayMethodInfo Rand signature where
+    overloadedMethod _ = randSetSeedArray
+
+type family ResolveRandMethod (t :: Symbol) (o :: *) :: * where
+    ResolveRandMethod "double" o = RandDoubleMethodInfo
+    ResolveRandMethod "doubleRange" o = RandDoubleRangeMethodInfo
+    ResolveRandMethod "free" o = RandFreeMethodInfo
+    ResolveRandMethod "int" o = RandIntMethodInfo
+    ResolveRandMethod "intRange" o = RandIntRangeMethodInfo
+    ResolveRandMethod "setSeed" o = RandSetSeedMethodInfo
+    ResolveRandMethod "setSeedArray" o = RandSetSeedArrayMethodInfo
+    ResolveRandMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveRandMethod t Rand, MethodInfo info Rand p) => IsLabelProxy t (Rand -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveRandMethod t Rand, MethodInfo info Rand p) => IsLabel t (Rand -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Rand.hs-boot b/GI/GLib/Structs/Rand.hs-boot
--- a/GI/GLib/Structs/Rand.hs-boot
+++ b/GI/GLib/Structs/Rand.hs-boot
@@ -8,3 +8,10 @@
 import qualified Data.Map as Map
 
 newtype Rand = Rand (ForeignPtr Rand)
+data RandDoubleMethodInfo
+data RandDoubleRangeMethodInfo
+data RandFreeMethodInfo
+data RandIntMethodInfo
+data RandIntRangeMethodInfo
+data RandSetSeedMethodInfo
+data RandSetSeedArrayMethodInfo
diff --git a/GI/GLib/Structs/RecMutex.hs b/GI/GLib/Structs/RecMutex.hs
--- a/GI/GLib/Structs/RecMutex.hs
+++ b/GI/GLib/Structs/RecMutex.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -23,27 +24,33 @@
 
 -- * Exported types
     RecMutex(..)                            ,
+    newZeroRecMutex                         ,
     noRecMutex                              ,
 
 
  -- * Methods
 -- ** recMutexClear
+    RecMutexClearMethodInfo                 ,
     recMutexClear                           ,
 
 
 -- ** recMutexInit
+    RecMutexInitMethodInfo                  ,
     recMutexInit                            ,
 
 
 -- ** recMutexLock
+    RecMutexLockMethodInfo                  ,
     recMutexLock                            ,
 
 
 -- ** recMutexTrylock
+    RecMutexTrylockMethodInfo               ,
     recMutexTrylock                         ,
 
 
 -- ** recMutexUnlock
+    RecMutexUnlockMethodInfo                ,
     recMutexUnlock                          ,
 
 
@@ -62,14 +69,17 @@
 import GI.GLib.Callbacks
 
 newtype RecMutex = RecMutex (ForeignPtr RecMutex)
+-- | Construct a `RecMutex` struct initialized to zero.
+newZeroRecMutex :: MonadIO m => m RecMutex
+newZeroRecMutex = liftIO $ callocBytes 16 >>= wrapPtr 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -81,19 +91,22 @@
 
 recMutexClear ::
     (MonadIO m) =>
-    RecMutex ->                             -- _obj
-    m ()
+    RecMutex                                -- _obj
+    -> m ()                                 -- result
 recMutexClear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rec_mutex_clear _obj'
     touchManagedPtr _obj
     return ()
 
+data RecMutexClearMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RecMutexClearMethodInfo RecMutex signature where
+    overloadedMethod _ = recMutexClear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -105,19 +118,22 @@
 
 recMutexInit ::
     (MonadIO m) =>
-    RecMutex ->                             -- _obj
-    m ()
+    RecMutex                                -- _obj
+    -> m ()                                 -- result
 recMutexInit _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rec_mutex_init _obj'
     touchManagedPtr _obj
     return ()
 
+data RecMutexInitMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RecMutexInitMethodInfo RecMutex signature where
+    overloadedMethod _ = recMutexInit
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -129,19 +145,22 @@
 
 recMutexLock ::
     (MonadIO m) =>
-    RecMutex ->                             -- _obj
-    m ()
+    RecMutex                                -- _obj
+    -> m ()                                 -- result
 recMutexLock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rec_mutex_lock _obj'
     touchManagedPtr _obj
     return ()
 
+data RecMutexLockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RecMutexLockMethodInfo RecMutex signature where
+    overloadedMethod _ = recMutexLock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -153,8 +172,8 @@
 
 recMutexTrylock ::
     (MonadIO m) =>
-    RecMutex ->                             -- _obj
-    m Bool
+    RecMutex                                -- _obj
+    -> m Bool                               -- result
 recMutexTrylock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_rec_mutex_trylock _obj'
@@ -162,11 +181,14 @@
     touchManagedPtr _obj
     return result'
 
+data RecMutexTrylockMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo RecMutexTrylockMethodInfo RecMutex signature where
+    overloadedMethod _ = recMutexTrylock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "RecMutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -178,12 +200,32 @@
 
 recMutexUnlock ::
     (MonadIO m) =>
-    RecMutex ->                             -- _obj
-    m ()
+    RecMutex                                -- _obj
+    -> m ()                                 -- result
 recMutexUnlock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_rec_mutex_unlock _obj'
     touchManagedPtr _obj
     return ()
+
+data RecMutexUnlockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RecMutexUnlockMethodInfo RecMutex signature where
+    overloadedMethod _ = recMutexUnlock
+
+type family ResolveRecMutexMethod (t :: Symbol) (o :: *) :: * where
+    ResolveRecMutexMethod "clear" o = RecMutexClearMethodInfo
+    ResolveRecMutexMethod "init" o = RecMutexInitMethodInfo
+    ResolveRecMutexMethod "lock" o = RecMutexLockMethodInfo
+    ResolveRecMutexMethod "trylock" o = RecMutexTrylockMethodInfo
+    ResolveRecMutexMethod "unlock" o = RecMutexUnlockMethodInfo
+    ResolveRecMutexMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveRecMutexMethod t RecMutex, MethodInfo info RecMutex p) => IsLabelProxy t (RecMutex -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveRecMutexMethod t RecMutex, MethodInfo info RecMutex p) => IsLabel t (RecMutex -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/RecMutex.hs-boot b/GI/GLib/Structs/RecMutex.hs-boot
--- a/GI/GLib/Structs/RecMutex.hs-boot
+++ b/GI/GLib/Structs/RecMutex.hs-boot
@@ -8,3 +8,8 @@
 import qualified Data.Map as Map
 
 newtype RecMutex = RecMutex (ForeignPtr RecMutex)
+data RecMutexClearMethodInfo
+data RecMutexInitMethodInfo
+data RecMutexLockMethodInfo
+data RecMutexTrylockMethodInfo
+data RecMutexUnlockMethodInfo
diff --git a/GI/GLib/Structs/Regex.hs b/GI/GLib/Structs/Regex.hs
--- a/GI/GLib/Structs/Regex.hs
+++ b/GI/GLib/Structs/Regex.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -80,79 +81,121 @@
 
 
  -- * Methods
+-- ** regexCheckReplacement
+    regexCheckReplacement                   ,
+
+
+-- ** regexErrorQuark
+    regexErrorQuark                         ,
+
+
+-- ** regexEscapeNul
+    regexEscapeNul                          ,
+
+
+-- ** regexEscapeString
+    regexEscapeString                       ,
+
+
 -- ** regexGetCaptureCount
+    RegexGetCaptureCountMethodInfo          ,
     regexGetCaptureCount                    ,
 
 
 -- ** regexGetCompileFlags
+    RegexGetCompileFlagsMethodInfo          ,
     regexGetCompileFlags                    ,
 
 
 -- ** regexGetHasCrOrLf
+    RegexGetHasCrOrLfMethodInfo             ,
     regexGetHasCrOrLf                       ,
 
 
 -- ** regexGetMatchFlags
+    RegexGetMatchFlagsMethodInfo            ,
     regexGetMatchFlags                      ,
 
 
 -- ** regexGetMaxBackref
+    RegexGetMaxBackrefMethodInfo            ,
     regexGetMaxBackref                      ,
 
 
 -- ** regexGetMaxLookbehind
+    RegexGetMaxLookbehindMethodInfo         ,
     regexGetMaxLookbehind                   ,
 
 
 -- ** regexGetPattern
+    RegexGetPatternMethodInfo               ,
     regexGetPattern                         ,
 
 
 -- ** regexGetStringNumber
+    RegexGetStringNumberMethodInfo          ,
     regexGetStringNumber                    ,
 
 
 -- ** regexMatch
+    RegexMatchMethodInfo                    ,
     regexMatch                              ,
 
 
 -- ** regexMatchAll
+    RegexMatchAllMethodInfo                 ,
     regexMatchAll                           ,
 
 
 -- ** regexMatchAllFull
+    RegexMatchAllFullMethodInfo             ,
     regexMatchAllFull                       ,
 
 
 -- ** regexMatchFull
+    RegexMatchFullMethodInfo                ,
     regexMatchFull                          ,
 
 
+-- ** regexMatchSimple
+    regexMatchSimple                        ,
+
+
 -- ** regexNew
     regexNew                                ,
 
 
 -- ** regexRef
+    RegexRefMethodInfo                      ,
     regexRef                                ,
 
 
 -- ** regexReplace
+    RegexReplaceMethodInfo                  ,
     regexReplace                            ,
 
 
 -- ** regexReplaceLiteral
+    RegexReplaceLiteralMethodInfo           ,
     regexReplaceLiteral                     ,
 
 
 -- ** regexSplit
+    RegexSplitMethodInfo                    ,
     regexSplit                              ,
 
 
 -- ** regexSplitFull
+    RegexSplitFullMethodInfo                ,
     regexSplitFull                          ,
 
 
+-- ** regexSplitSimple
+    regexSplitSimple                        ,
+
+
 -- ** regexUnref
+    RegexUnrefMethodInfo                    ,
     regexUnref                              ,
 
 
@@ -182,9 +225,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -199,16 +241,16 @@
 
 regexNew ::
     (MonadIO m) =>
-    T.Text ->                               -- pattern
-    [RegexCompileFlags] ->                  -- compile_options
-    [RegexMatchFlags] ->                    -- match_options
-    m Regex
-regexNew pattern compile_options match_options = liftIO $ do
+    T.Text                                  -- pattern
+    -> [RegexCompileFlags]                  -- compileOptions
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> m Regex                              -- result
+regexNew pattern compileOptions matchOptions = liftIO $ do
     pattern' <- textToCString pattern
-    let compile_options' = gflagsToWord compile_options
-    let match_options' = gflagsToWord match_options
+    let compileOptions' = gflagsToWord compileOptions
+    let matchOptions' = gflagsToWord matchOptions
     onException (do
-        result <- propagateGError $ g_regex_new pattern' compile_options' match_options'
+        result <- propagateGError $ g_regex_new pattern' compileOptions' matchOptions'
         checkUnexpectedReturnNULL "g_regex_new" result
         result' <- (wrapBoxed Regex) result
         freeMem pattern'
@@ -219,9 +261,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -233,19 +274,22 @@
 
 regexGetCaptureCount ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    m Int32
+    Regex                                   -- _obj
+    -> m Int32                              -- result
 regexGetCaptureCount _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_regex_get_capture_count _obj'
     touchManagedPtr _obj
     return result
 
+data RegexGetCaptureCountMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo RegexGetCaptureCountMethodInfo Regex signature where
+    overloadedMethod _ = regexGetCaptureCount
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -257,8 +301,8 @@
 
 regexGetCompileFlags ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    m [RegexCompileFlags]
+    Regex                                   -- _obj
+    -> m [RegexCompileFlags]                -- result
 regexGetCompileFlags _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_regex_get_compile_flags _obj'
@@ -266,11 +310,14 @@
     touchManagedPtr _obj
     return result'
 
+data RegexGetCompileFlagsMethodInfo
+instance (signature ~ (m [RegexCompileFlags]), MonadIO m) => MethodInfo RegexGetCompileFlagsMethodInfo Regex signature where
+    overloadedMethod _ = regexGetCompileFlags
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -282,8 +329,8 @@
 
 regexGetHasCrOrLf ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    m Bool
+    Regex                                   -- _obj
+    -> m Bool                               -- result
 regexGetHasCrOrLf _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_regex_get_has_cr_or_lf _obj'
@@ -291,11 +338,14 @@
     touchManagedPtr _obj
     return result'
 
+data RegexGetHasCrOrLfMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo RegexGetHasCrOrLfMethodInfo Regex signature where
+    overloadedMethod _ = regexGetHasCrOrLf
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -307,8 +357,8 @@
 
 regexGetMatchFlags ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    m [RegexMatchFlags]
+    Regex                                   -- _obj
+    -> m [RegexMatchFlags]                  -- result
 regexGetMatchFlags _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_regex_get_match_flags _obj'
@@ -316,11 +366,14 @@
     touchManagedPtr _obj
     return result'
 
+data RegexGetMatchFlagsMethodInfo
+instance (signature ~ (m [RegexMatchFlags]), MonadIO m) => MethodInfo RegexGetMatchFlagsMethodInfo Regex signature where
+    overloadedMethod _ = regexGetMatchFlags
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -332,19 +385,22 @@
 
 regexGetMaxBackref ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    m Int32
+    Regex                                   -- _obj
+    -> m Int32                              -- result
 regexGetMaxBackref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_regex_get_max_backref _obj'
     touchManagedPtr _obj
     return result
 
+data RegexGetMaxBackrefMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo RegexGetMaxBackrefMethodInfo Regex signature where
+    overloadedMethod _ = regexGetMaxBackref
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -356,19 +412,22 @@
 
 regexGetMaxLookbehind ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    m Int32
+    Regex                                   -- _obj
+    -> m Int32                              -- result
 regexGetMaxLookbehind _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_regex_get_max_lookbehind _obj'
     touchManagedPtr _obj
     return result
 
+data RegexGetMaxLookbehindMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo RegexGetMaxLookbehindMethodInfo Regex signature where
+    overloadedMethod _ = regexGetMaxLookbehind
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -380,8 +439,8 @@
 
 regexGetPattern ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    m T.Text
+    Regex                                   -- _obj
+    -> m T.Text                             -- result
 regexGetPattern _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_regex_get_pattern _obj'
@@ -390,11 +449,14 @@
     touchManagedPtr _obj
     return result'
 
+data RegexGetPatternMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo RegexGetPatternMethodInfo Regex signature where
+    overloadedMethod _ = regexGetPattern
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -407,9 +469,9 @@
 
 regexGetStringNumber ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    T.Text ->                               -- name
-    m Int32
+    Regex                                   -- _obj
+    -> T.Text                               -- name
+    -> m Int32                              -- result
 regexGetStringNumber _obj name = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     name' <- textToCString name
@@ -418,11 +480,14 @@
     freeMem name'
     return result
 
+data RegexGetStringNumberMethodInfo
+instance (signature ~ (T.Text -> m Int32), MonadIO m) => MethodInfo RegexGetStringNumberMethodInfo Regex signature where
+    overloadedMethod _ = regexGetStringNumber
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -437,29 +502,32 @@
 
 regexMatch ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    T.Text ->                               -- string
-    [RegexMatchFlags] ->                    -- match_options
-    m (Bool,MatchInfo)
-regexMatch _obj string match_options = liftIO $ do
+    Regex                                   -- _obj
+    -> T.Text                               -- string
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> m (Bool,MatchInfo)                   -- result
+regexMatch _obj string matchOptions = 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 matchOptions' = gflagsToWord matchOptions
+    matchInfo <- allocMem :: IO (Ptr (Ptr MatchInfo))
+    result <- g_regex_match _obj' string' matchOptions' matchInfo
     let result' = (/= 0) result
-    match_info' <- peek match_info
-    match_info'' <- (wrapBoxed MatchInfo) match_info'
+    matchInfo' <- peek matchInfo
+    matchInfo'' <- (wrapBoxed MatchInfo) matchInfo'
     touchManagedPtr _obj
     freeMem string'
-    freeMem match_info
-    return (result', match_info'')
+    freeMem matchInfo
+    return (result', matchInfo'')
 
+data RegexMatchMethodInfo
+instance (signature ~ (T.Text -> [RegexMatchFlags] -> m (Bool,MatchInfo)), MonadIO m) => MethodInfo RegexMatchMethodInfo Regex signature where
+    overloadedMethod _ = regexMatch
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -474,29 +542,32 @@
 
 regexMatchAll ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    T.Text ->                               -- string
-    [RegexMatchFlags] ->                    -- match_options
-    m (Bool,MatchInfo)
-regexMatchAll _obj string match_options = liftIO $ do
+    Regex                                   -- _obj
+    -> T.Text                               -- string
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> m (Bool,MatchInfo)                   -- result
+regexMatchAll _obj string matchOptions = 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 matchOptions' = gflagsToWord matchOptions
+    matchInfo <- allocMem :: IO (Ptr (Ptr MatchInfo))
+    result <- g_regex_match_all _obj' string' matchOptions' matchInfo
     let result' = (/= 0) result
-    match_info' <- peek match_info
-    match_info'' <- (wrapBoxed MatchInfo) match_info'
+    matchInfo' <- peek matchInfo
+    matchInfo'' <- (wrapBoxed MatchInfo) matchInfo'
     touchManagedPtr _obj
     freeMem string'
-    freeMem match_info
-    return (result', match_info'')
+    freeMem matchInfo
+    return (result', matchInfo'')
 
+data RegexMatchAllMethodInfo
+instance (signature ~ (T.Text -> [RegexMatchFlags] -> m (Bool,MatchInfo)), MonadIO m) => MethodInfo RegexMatchAllMethodInfo Regex signature where
+    overloadedMethod _ = regexMatchAll
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : True
 -- Skip return : False
@@ -514,37 +585,40 @@
 
 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
+    Regex                                   -- _obj
+    -> [T.Text]                             -- string
+    -> Int32                                -- startPosition
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> m (MatchInfo)                        -- result
+regexMatchAllFull _obj string startPosition matchOptions = liftIO $ do
+    let stringLen = fromIntegral $ length string
     let _obj' = unsafeManagedPtrGetPtr _obj
     string' <- packUTF8CArray string
-    let match_options' = gflagsToWord match_options
-    match_info <- allocMem :: IO (Ptr (Ptr MatchInfo))
+    let matchOptions' = gflagsToWord matchOptions
+    matchInfo <- 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'
+        _ <- propagateGError $ g_regex_match_all_full _obj' string' stringLen startPosition matchOptions' matchInfo
+        matchInfo' <- peek matchInfo
+        matchInfo'' <- (wrapBoxed MatchInfo) matchInfo'
         touchManagedPtr _obj
-        (mapCArrayWithLength string_len) freeMem string'
+        (mapCArrayWithLength stringLen) freeMem string'
         freeMem string'
-        freeMem match_info
-        return match_info''
+        freeMem matchInfo
+        return matchInfo''
      ) (do
-        (mapCArrayWithLength string_len) freeMem string'
+        (mapCArrayWithLength stringLen) freeMem string'
         freeMem string'
-        freeMem match_info
+        freeMem matchInfo
      )
 
+data RegexMatchAllFullMethodInfo
+instance (signature ~ ([T.Text] -> Int32 -> [RegexMatchFlags] -> m (MatchInfo)), MonadIO m) => MethodInfo RegexMatchAllFullMethodInfo Regex signature where
+    overloadedMethod _ = regexMatchAllFull
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_info", argType = TInterface "GLib" "MatchInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : True
 -- Skip return : False
@@ -562,37 +636,40 @@
 
 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
+    Regex                                   -- _obj
+    -> [T.Text]                             -- string
+    -> Int32                                -- startPosition
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> m (MatchInfo)                        -- result
+regexMatchFull _obj string startPosition matchOptions = liftIO $ do
+    let stringLen = fromIntegral $ length string
     let _obj' = unsafeManagedPtrGetPtr _obj
     string' <- packUTF8CArray string
-    let match_options' = gflagsToWord match_options
-    match_info <- allocMem :: IO (Ptr (Ptr MatchInfo))
+    let matchOptions' = gflagsToWord matchOptions
+    matchInfo <- 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'
+        _ <- propagateGError $ g_regex_match_full _obj' string' stringLen startPosition matchOptions' matchInfo
+        matchInfo' <- peek matchInfo
+        matchInfo'' <- (wrapBoxed MatchInfo) matchInfo'
         touchManagedPtr _obj
-        (mapCArrayWithLength string_len) freeMem string'
+        (mapCArrayWithLength stringLen) freeMem string'
         freeMem string'
-        freeMem match_info
-        return match_info''
+        freeMem matchInfo
+        return matchInfo''
      ) (do
-        (mapCArrayWithLength string_len) freeMem string'
+        (mapCArrayWithLength stringLen) freeMem string'
         freeMem string'
-        freeMem match_info
+        freeMem matchInfo
      )
 
+data RegexMatchFullMethodInfo
+instance (signature ~ ([T.Text] -> Int32 -> [RegexMatchFlags] -> m (MatchInfo)), MonadIO m) => MethodInfo RegexMatchFullMethodInfo Regex signature where
+    overloadedMethod _ = regexMatchFull
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -604,8 +681,8 @@
 
 regexRef ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    m Regex
+    Regex                                   -- _obj
+    -> m Regex                              -- result
 regexRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_regex_ref _obj'
@@ -614,11 +691,14 @@
     touchManagedPtr _obj
     return result'
 
+data RegexRefMethodInfo
+instance (signature ~ (m Regex), MonadIO m) => MethodInfo RegexRefMethodInfo Regex signature where
+    overloadedMethod _ = regexRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : True
 -- Skip return : False
@@ -636,39 +716,42 @@
 
 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
+    Regex                                   -- _obj
+    -> [T.Text]                             -- string
+    -> Int32                                -- startPosition
+    -> T.Text                               -- replacement
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> m T.Text                             -- result
+regexReplace _obj string startPosition replacement matchOptions = liftIO $ do
+    let stringLen = fromIntegral $ length string
     let _obj' = unsafeManagedPtrGetPtr _obj
     string' <- packUTF8CArray string
     replacement' <- textToCString replacement
-    let match_options' = gflagsToWord match_options
+    let matchOptions' = gflagsToWord matchOptions
     onException (do
-        result <- propagateGError $ g_regex_replace _obj' string' string_len start_position replacement' match_options'
+        result <- propagateGError $ g_regex_replace _obj' string' stringLen startPosition replacement' matchOptions'
         checkUnexpectedReturnNULL "g_regex_replace" result
         result' <- cstringToText result
         freeMem result
         touchManagedPtr _obj
-        (mapCArrayWithLength string_len) freeMem string'
+        (mapCArrayWithLength stringLen) freeMem string'
         freeMem string'
         freeMem replacement'
         return result'
      ) (do
-        (mapCArrayWithLength string_len) freeMem string'
+        (mapCArrayWithLength stringLen) freeMem string'
         freeMem string'
         freeMem replacement'
      )
 
+data RegexReplaceMethodInfo
+instance (signature ~ ([T.Text] -> Int32 -> T.Text -> [RegexMatchFlags] -> m T.Text), MonadIO m) => MethodInfo RegexReplaceMethodInfo Regex signature where
+    overloadedMethod _ = regexReplace
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : True
 -- Skip return : False
@@ -686,39 +769,42 @@
 
 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
+    Regex                                   -- _obj
+    -> [T.Text]                             -- string
+    -> Int32                                -- startPosition
+    -> T.Text                               -- replacement
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> m T.Text                             -- result
+regexReplaceLiteral _obj string startPosition replacement matchOptions = liftIO $ do
+    let stringLen = fromIntegral $ length string
     let _obj' = unsafeManagedPtrGetPtr _obj
     string' <- packUTF8CArray string
     replacement' <- textToCString replacement
-    let match_options' = gflagsToWord match_options
+    let matchOptions' = gflagsToWord matchOptions
     onException (do
-        result <- propagateGError $ g_regex_replace_literal _obj' string' string_len start_position replacement' match_options'
+        result <- propagateGError $ g_regex_replace_literal _obj' string' stringLen startPosition replacement' matchOptions'
         checkUnexpectedReturnNULL "g_regex_replace_literal" result
         result' <- cstringToText result
         freeMem result
         touchManagedPtr _obj
-        (mapCArrayWithLength string_len) freeMem string'
+        (mapCArrayWithLength stringLen) freeMem string'
         freeMem string'
         freeMem replacement'
         return result'
      ) (do
-        (mapCArrayWithLength string_len) freeMem string'
+        (mapCArrayWithLength stringLen) freeMem string'
         freeMem string'
         freeMem replacement'
      )
 
+data RegexReplaceLiteralMethodInfo
+instance (signature ~ ([T.Text] -> Int32 -> T.Text -> [RegexMatchFlags] -> m T.Text), MonadIO m) => MethodInfo RegexReplaceLiteralMethodInfo Regex signature where
+    overloadedMethod _ = regexReplaceLiteral
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -732,15 +818,15 @@
 
 regexSplit ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    T.Text ->                               -- string
-    [RegexMatchFlags] ->                    -- match_options
-    m [T.Text]
-regexSplit _obj string match_options = liftIO $ do
+    Regex                                   -- _obj
+    -> T.Text                               -- string
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> m [T.Text]                           -- result
+regexSplit _obj string matchOptions = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     string' <- textToCString string
-    let match_options' = gflagsToWord match_options
-    result <- g_regex_split _obj' string' match_options'
+    let matchOptions' = gflagsToWord matchOptions
+    result <- g_regex_split _obj' string' matchOptions'
     checkUnexpectedReturnNULL "g_regex_split" result
     result' <- unpackZeroTerminatedUTF8CArray result
     mapZeroTerminatedCArray freeMem result
@@ -749,11 +835,14 @@
     freeMem string'
     return result'
 
+data RegexSplitMethodInfo
+instance (signature ~ (T.Text -> [RegexMatchFlags] -> m [T.Text]), MonadIO m) => MethodInfo RegexSplitMethodInfo Regex signature where
+    overloadedMethod _ = regexSplit
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TCArray False (-1) 2 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "start_position", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_tokens", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "string_len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TCArray True (-1) (-1) (TBasicType TUTF8)
 -- throws : True
 -- Skip return : False
@@ -771,37 +860,40 @@
 
 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
+    Regex                                   -- _obj
+    -> [T.Text]                             -- string
+    -> Int32                                -- startPosition
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> Int32                                -- maxTokens
+    -> m [T.Text]                           -- result
+regexSplitFull _obj string startPosition matchOptions maxTokens = liftIO $ do
+    let stringLen = fromIntegral $ length string
     let _obj' = unsafeManagedPtrGetPtr _obj
     string' <- packUTF8CArray string
-    let match_options' = gflagsToWord match_options
+    let matchOptions' = gflagsToWord matchOptions
     onException (do
-        result <- propagateGError $ g_regex_split_full _obj' string' string_len start_position match_options' max_tokens
+        result <- propagateGError $ g_regex_split_full _obj' string' stringLen startPosition matchOptions' maxTokens
         checkUnexpectedReturnNULL "g_regex_split_full" result
         result' <- unpackZeroTerminatedUTF8CArray result
         mapZeroTerminatedCArray freeMem result
         freeMem result
         touchManagedPtr _obj
-        (mapCArrayWithLength string_len) freeMem string'
+        (mapCArrayWithLength stringLen) freeMem string'
         freeMem string'
         return result'
      ) (do
-        (mapCArrayWithLength string_len) freeMem string'
+        (mapCArrayWithLength stringLen) freeMem string'
         freeMem string'
      )
 
+data RegexSplitFullMethodInfo
+instance (signature ~ ([T.Text] -> Int32 -> [RegexMatchFlags] -> Int32 -> m [T.Text]), MonadIO m) => MethodInfo RegexSplitFullMethodInfo Regex signature where
+    overloadedMethod _ = regexSplitFull
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Regex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -813,12 +905,226 @@
 
 regexUnref ::
     (MonadIO m) =>
-    Regex ->                                -- _obj
-    m ()
+    Regex                                   -- _obj
+    -> m ()                                 -- result
 regexUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_regex_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data RegexUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RegexUnrefMethodInfo Regex signature where
+    overloadedMethod _ = regexUnref
+
+-- method Regex::check_replacement
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "replacement", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "has_references", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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)                             -- result
+regexCheckReplacement replacement = liftIO $ do
+    replacement' <- textToCString replacement
+    hasReferences <- allocMem :: IO (Ptr CInt)
+    onException (do
+        _ <- propagateGError $ g_regex_check_replacement replacement' hasReferences
+        hasReferences' <- peek hasReferences
+        let hasReferences'' = (/= 0) hasReferences'
+        freeMem replacement'
+        freeMem hasReferences
+        return hasReferences''
+     ) (do
+        freeMem replacement'
+        freeMem hasReferences
+     )
+
+-- method Regex::error_quark
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+regexErrorQuark  = liftIO $ do
+    result <- g_regex_error_quark
+    return result
+
+-- method Regex::escape_nul
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                             -- result
+regexEscapeNul string length_ = liftIO $ do
+    string' <- textToCString string
+    result <- g_regex_escape_nul string' length_
+    checkUnexpectedReturnNULL "g_regex_escape_nul" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem string'
+    return result'
+
+-- method Regex::escape_string
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "string", argType = TCArray False (-1) 1 (TBasicType TUTF8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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                             -- result
+regexEscapeString string = liftIO $ do
+    let length_ = fromIntegral $ length string
+    string' <- packUTF8CArray string
+    result <- g_regex_escape_string string' length_
+    checkUnexpectedReturnNULL "g_regex_escape_string" result
+    result' <- cstringToText result
+    freeMem result
+    (mapCArrayWithLength length_) freeMem string'
+    freeMem string'
+    return result'
+
+-- method Regex::match_simple
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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]                  -- compileOptions
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> m Bool                               -- result
+regexMatchSimple pattern string compileOptions matchOptions = liftIO $ do
+    pattern' <- textToCString pattern
+    string' <- textToCString string
+    let compileOptions' = gflagsToWord compileOptions
+    let matchOptions' = gflagsToWord matchOptions
+    result <- g_regex_match_simple pattern' string' compileOptions' matchOptions'
+    let result' = (/= 0) result
+    freeMem pattern'
+    freeMem string'
+    return result'
+
+-- method Regex::split_simple
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "pattern", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compile_options", argType = TInterface "GLib" "RegexCompileFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "match_options", argType = TInterface "GLib" "RegexMatchFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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]                  -- compileOptions
+    -> [RegexMatchFlags]                    -- matchOptions
+    -> m [T.Text]                           -- result
+regexSplitSimple pattern string compileOptions matchOptions = liftIO $ do
+    pattern' <- textToCString pattern
+    string' <- textToCString string
+    let compileOptions' = gflagsToWord compileOptions
+    let matchOptions' = gflagsToWord matchOptions
+    result <- g_regex_split_simple pattern' string' compileOptions' matchOptions'
+    checkUnexpectedReturnNULL "g_regex_split_simple" result
+    result' <- unpackZeroTerminatedUTF8CArray result
+    mapZeroTerminatedCArray freeMem result
+    freeMem result
+    freeMem pattern'
+    freeMem string'
+    return result'
+
+type family ResolveRegexMethod (t :: Symbol) (o :: *) :: * where
+    ResolveRegexMethod "match" o = RegexMatchMethodInfo
+    ResolveRegexMethod "matchAll" o = RegexMatchAllMethodInfo
+    ResolveRegexMethod "matchAllFull" o = RegexMatchAllFullMethodInfo
+    ResolveRegexMethod "matchFull" o = RegexMatchFullMethodInfo
+    ResolveRegexMethod "ref" o = RegexRefMethodInfo
+    ResolveRegexMethod "replace" o = RegexReplaceMethodInfo
+    ResolveRegexMethod "replaceLiteral" o = RegexReplaceLiteralMethodInfo
+    ResolveRegexMethod "split" o = RegexSplitMethodInfo
+    ResolveRegexMethod "splitFull" o = RegexSplitFullMethodInfo
+    ResolveRegexMethod "unref" o = RegexUnrefMethodInfo
+    ResolveRegexMethod "getCaptureCount" o = RegexGetCaptureCountMethodInfo
+    ResolveRegexMethod "getCompileFlags" o = RegexGetCompileFlagsMethodInfo
+    ResolveRegexMethod "getHasCrOrLf" o = RegexGetHasCrOrLfMethodInfo
+    ResolveRegexMethod "getMatchFlags" o = RegexGetMatchFlagsMethodInfo
+    ResolveRegexMethod "getMaxBackref" o = RegexGetMaxBackrefMethodInfo
+    ResolveRegexMethod "getMaxLookbehind" o = RegexGetMaxLookbehindMethodInfo
+    ResolveRegexMethod "getPattern" o = RegexGetPatternMethodInfo
+    ResolveRegexMethod "getStringNumber" o = RegexGetStringNumberMethodInfo
+    ResolveRegexMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveRegexMethod t Regex, MethodInfo info Regex p) => IsLabelProxy t (Regex -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveRegexMethod t Regex, MethodInfo info Regex p) => IsLabel t (Regex -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Regex.hs-boot b/GI/GLib/Structs/Regex.hs-boot
--- a/GI/GLib/Structs/Regex.hs-boot
+++ b/GI/GLib/Structs/Regex.hs-boot
@@ -9,3 +9,21 @@
 
 newtype Regex = Regex (ForeignPtr Regex)
 instance BoxedObject Regex where
+data RegexGetCaptureCountMethodInfo
+data RegexGetCompileFlagsMethodInfo
+data RegexGetHasCrOrLfMethodInfo
+data RegexGetMatchFlagsMethodInfo
+data RegexGetMaxBackrefMethodInfo
+data RegexGetMaxLookbehindMethodInfo
+data RegexGetPatternMethodInfo
+data RegexGetStringNumberMethodInfo
+data RegexMatchMethodInfo
+data RegexMatchAllMethodInfo
+data RegexMatchAllFullMethodInfo
+data RegexMatchFullMethodInfo
+data RegexRefMethodInfo
+data RegexReplaceMethodInfo
+data RegexReplaceLiteralMethodInfo
+data RegexSplitMethodInfo
+data RegexSplitFullMethodInfo
+data RegexUnrefMethodInfo
diff --git a/GI/GLib/Structs/Scanner.hs b/GI/GLib/Structs/Scanner.hs
--- a/GI/GLib/Structs/Scanner.hs
+++ b/GI/GLib/Structs/Scanner.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -25,63 +26,78 @@
 
 -- * Exported types
     Scanner(..)                             ,
+    newZeroScanner                          ,
     noScanner                               ,
 
 
  -- * Methods
 -- ** scannerCurLine
+    ScannerCurLineMethodInfo                ,
     scannerCurLine                          ,
 
 
 -- ** scannerCurPosition
+    ScannerCurPositionMethodInfo            ,
     scannerCurPosition                      ,
 
 
 -- ** scannerCurToken
+    ScannerCurTokenMethodInfo               ,
     scannerCurToken                         ,
 
 
 -- ** scannerDestroy
+    ScannerDestroyMethodInfo                ,
     scannerDestroy                          ,
 
 
 -- ** scannerEof
+    ScannerEofMethodInfo                    ,
     scannerEof                              ,
 
 
 -- ** scannerGetNextToken
+    ScannerGetNextTokenMethodInfo           ,
     scannerGetNextToken                     ,
 
 
 -- ** scannerInputFile
+    ScannerInputFileMethodInfo              ,
     scannerInputFile                        ,
 
 
 -- ** scannerInputText
+    ScannerInputTextMethodInfo              ,
     scannerInputText                        ,
 
 
 -- ** scannerPeekNextToken
+    ScannerPeekNextTokenMethodInfo          ,
     scannerPeekNextToken                    ,
 
 
 -- ** scannerScopeAddSymbol
+    ScannerScopeAddSymbolMethodInfo         ,
     scannerScopeAddSymbol                   ,
 
 
 -- ** scannerScopeRemoveSymbol
+    ScannerScopeRemoveSymbolMethodInfo      ,
     scannerScopeRemoveSymbol                ,
 
 
 -- ** scannerSetScope
+    ScannerSetScopeMethodInfo               ,
     scannerSetScope                         ,
 
 
 -- ** scannerSyncFileOffset
+    ScannerSyncFileOffsetMethodInfo         ,
     scannerSyncFileOffset                   ,
 
 
 -- ** scannerUnexpToken
+    ScannerUnexpTokenMethodInfo             ,
     scannerUnexpToken                       ,
 
 
@@ -159,6 +175,10 @@
 import GI.GLib.Callbacks
 
 newtype Scanner = Scanner (ForeignPtr Scanner)
+-- | Construct a `Scanner` struct initialized to zero.
+newZeroScanner :: MonadIO m => m Scanner
+newZeroScanner = liftIO $ callocBytes 144 >>= wrapPtr Scanner
+
 noScanner :: Maybe Scanner
 noScanner = Nothing
 
@@ -244,9 +264,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -258,19 +277,22 @@
 
 scannerCurLine ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    m Word32
+    Scanner                                 -- _obj
+    -> m Word32                             -- result
 scannerCurLine _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_scanner_cur_line _obj'
     touchManagedPtr _obj
     return result
 
+data ScannerCurLineMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo ScannerCurLineMethodInfo Scanner signature where
+    overloadedMethod _ = scannerCurLine
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -282,19 +304,22 @@
 
 scannerCurPosition ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    m Word32
+    Scanner                                 -- _obj
+    -> m Word32                             -- result
 scannerCurPosition _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_scanner_cur_position _obj'
     touchManagedPtr _obj
     return result
 
+data ScannerCurPositionMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo ScannerCurPositionMethodInfo Scanner signature where
+    overloadedMethod _ = scannerCurPosition
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -306,8 +331,8 @@
 
 scannerCurToken ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    m TokenType
+    Scanner                                 -- _obj
+    -> m TokenType                          -- result
 scannerCurToken _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_scanner_cur_token _obj'
@@ -315,11 +340,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScannerCurTokenMethodInfo
+instance (signature ~ (m TokenType), MonadIO m) => MethodInfo ScannerCurTokenMethodInfo Scanner signature where
+    overloadedMethod _ = scannerCurToken
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -331,19 +359,22 @@
 
 scannerDestroy ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    m ()
+    Scanner                                 -- _obj
+    -> m ()                                 -- result
 scannerDestroy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_scanner_destroy _obj'
     touchManagedPtr _obj
     return ()
 
+data ScannerDestroyMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo ScannerDestroyMethodInfo Scanner signature where
+    overloadedMethod _ = scannerDestroy
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -355,8 +386,8 @@
 
 scannerEof ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    m Bool
+    Scanner                                 -- _obj
+    -> m Bool                               -- result
 scannerEof _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_scanner_eof _obj'
@@ -364,11 +395,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScannerEofMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo ScannerEofMethodInfo Scanner signature where
+    overloadedMethod _ = scannerEof
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -380,8 +414,8 @@
 
 scannerGetNextToken ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    m TokenType
+    Scanner                                 -- _obj
+    -> m TokenType                          -- result
 scannerGetNextToken _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_scanner_get_next_token _obj'
@@ -389,11 +423,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScannerGetNextTokenMethodInfo
+instance (signature ~ (m TokenType), MonadIO m) => MethodInfo ScannerGetNextTokenMethodInfo Scanner signature where
+    overloadedMethod _ = scannerGetNextToken
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "input_fd", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -406,20 +443,23 @@
 
 scannerInputFile ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    Int32 ->                                -- input_fd
-    m ()
-scannerInputFile _obj input_fd = liftIO $ do
+    Scanner                                 -- _obj
+    -> Int32                                -- inputFd
+    -> m ()                                 -- result
+scannerInputFile _obj inputFd = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_scanner_input_file _obj' input_fd
+    g_scanner_input_file _obj' inputFd
     touchManagedPtr _obj
     return ()
 
+data ScannerInputFileMethodInfo
+instance (signature ~ (Int32 -> m ()), MonadIO m) => MethodInfo ScannerInputFileMethodInfo Scanner signature where
+    overloadedMethod _ = scannerInputFile
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text_len", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -433,23 +473,26 @@
 
 scannerInputText ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    T.Text ->                               -- text
-    Word32 ->                               -- text_len
-    m ()
-scannerInputText _obj text text_len = liftIO $ do
+    Scanner                                 -- _obj
+    -> T.Text                               -- text
+    -> Word32                               -- textLen
+    -> m ()                                 -- result
+scannerInputText _obj text textLen = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     text' <- textToCString text
-    g_scanner_input_text _obj' text' text_len
+    g_scanner_input_text _obj' text' textLen
     touchManagedPtr _obj
     freeMem text'
     return ()
 
+data ScannerInputTextMethodInfo
+instance (signature ~ (T.Text -> Word32 -> m ()), MonadIO m) => MethodInfo ScannerInputTextMethodInfo Scanner signature where
+    overloadedMethod _ = scannerInputText
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -461,8 +504,8 @@
 
 scannerPeekNextToken ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    m TokenType
+    Scanner                                 -- _obj
+    -> m TokenType                          -- result
 scannerPeekNextToken _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_scanner_peek_next_token _obj'
@@ -470,11 +513,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScannerPeekNextTokenMethodInfo
+instance (signature ~ (m TokenType), MonadIO m) => MethodInfo ScannerPeekNextTokenMethodInfo Scanner signature where
+    overloadedMethod _ = scannerPeekNextToken
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -489,24 +535,27 @@
 
 scannerScopeAddSymbol ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    Word32 ->                               -- scope_id
-    T.Text ->                               -- symbol
-    Ptr () ->                               -- value
-    m ()
-scannerScopeAddSymbol _obj scope_id symbol value = liftIO $ do
+    Scanner                                 -- _obj
+    -> Word32                               -- scopeId
+    -> T.Text                               -- symbol
+    -> Ptr ()                               -- value
+    -> m ()                                 -- result
+scannerScopeAddSymbol _obj scopeId symbol value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     symbol' <- textToCString symbol
-    g_scanner_scope_add_symbol _obj' scope_id symbol' value
+    g_scanner_scope_add_symbol _obj' scopeId symbol' value
     touchManagedPtr _obj
     freeMem symbol'
     return ()
 
+data ScannerScopeAddSymbolMethodInfo
+instance (signature ~ (Word32 -> T.Text -> Ptr () -> m ()), MonadIO m) => MethodInfo ScannerScopeAddSymbolMethodInfo Scanner signature where
+    overloadedMethod _ = scannerScopeAddSymbol
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -520,23 +569,26 @@
 
 scannerScopeRemoveSymbol ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    Word32 ->                               -- scope_id
-    T.Text ->                               -- symbol
-    m ()
-scannerScopeRemoveSymbol _obj scope_id symbol = liftIO $ do
+    Scanner                                 -- _obj
+    -> Word32                               -- scopeId
+    -> T.Text                               -- symbol
+    -> m ()                                 -- result
+scannerScopeRemoveSymbol _obj scopeId symbol = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     symbol' <- textToCString symbol
-    g_scanner_scope_remove_symbol _obj' scope_id symbol'
+    g_scanner_scope_remove_symbol _obj' scopeId symbol'
     touchManagedPtr _obj
     freeMem symbol'
     return ()
 
+data ScannerScopeRemoveSymbolMethodInfo
+instance (signature ~ (Word32 -> T.Text -> m ()), MonadIO m) => MethodInfo ScannerScopeRemoveSymbolMethodInfo Scanner signature where
+    overloadedMethod _ = scannerScopeRemoveSymbol
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scope_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -549,20 +601,23 @@
 
 scannerSetScope ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    Word32 ->                               -- scope_id
-    m Word32
-scannerSetScope _obj scope_id = liftIO $ do
+    Scanner                                 -- _obj
+    -> Word32                               -- scopeId
+    -> m Word32                             -- result
+scannerSetScope _obj scopeId = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- g_scanner_set_scope _obj' scope_id
+    result <- g_scanner_set_scope _obj' scopeId
     touchManagedPtr _obj
     return result
 
+data ScannerSetScopeMethodInfo
+instance (signature ~ (Word32 -> m Word32), MonadIO m) => MethodInfo ScannerSetScopeMethodInfo Scanner signature where
+    overloadedMethod _ = scannerSetScope
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -574,19 +629,22 @@
 
 scannerSyncFileOffset ::
     (MonadIO m) =>
-    Scanner ->                              -- _obj
-    m ()
+    Scanner                                 -- _obj
+    -> m ()                                 -- result
 scannerSyncFileOffset _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_scanner_sync_file_offset _obj'
     touchManagedPtr _obj
     return ()
 
+data ScannerSyncFileOffsetMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo ScannerSyncFileOffsetMethodInfo Scanner signature where
+    overloadedMethod _ = scannerSyncFileOffset
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Scanner", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expected_token", argType = TInterface "GLib" "TokenType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "identifier_spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol_spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "symbol_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "message", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_error", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -604,27 +662,56 @@
 
 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
+    Scanner                                 -- _obj
+    -> TokenType                            -- expectedToken
+    -> T.Text                               -- identifierSpec
+    -> T.Text                               -- symbolSpec
+    -> T.Text                               -- symbolName
+    -> T.Text                               -- message
+    -> Int32                                -- isError
+    -> m ()                                 -- result
+scannerUnexpToken _obj expectedToken identifierSpec symbolSpec symbolName message isError = 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
+    let expectedToken' = (fromIntegral . fromEnum) expectedToken
+    identifierSpec' <- textToCString identifierSpec
+    symbolSpec' <- textToCString symbolSpec
+    symbolName' <- textToCString symbolName
     message' <- textToCString message
-    g_scanner_unexp_token _obj' expected_token' identifier_spec' symbol_spec' symbol_name' message' is_error
+    g_scanner_unexp_token _obj' expectedToken' identifierSpec' symbolSpec' symbolName' message' isError
     touchManagedPtr _obj
-    freeMem identifier_spec'
-    freeMem symbol_spec'
-    freeMem symbol_name'
+    freeMem identifierSpec'
+    freeMem symbolSpec'
+    freeMem symbolName'
     freeMem message'
     return ()
+
+data ScannerUnexpTokenMethodInfo
+instance (signature ~ (TokenType -> T.Text -> T.Text -> T.Text -> T.Text -> Int32 -> m ()), MonadIO m) => MethodInfo ScannerUnexpTokenMethodInfo Scanner signature where
+    overloadedMethod _ = scannerUnexpToken
+
+type family ResolveScannerMethod (t :: Symbol) (o :: *) :: * where
+    ResolveScannerMethod "curLine" o = ScannerCurLineMethodInfo
+    ResolveScannerMethod "curPosition" o = ScannerCurPositionMethodInfo
+    ResolveScannerMethod "curToken" o = ScannerCurTokenMethodInfo
+    ResolveScannerMethod "destroy" o = ScannerDestroyMethodInfo
+    ResolveScannerMethod "eof" o = ScannerEofMethodInfo
+    ResolveScannerMethod "inputFile" o = ScannerInputFileMethodInfo
+    ResolveScannerMethod "inputText" o = ScannerInputTextMethodInfo
+    ResolveScannerMethod "peekNextToken" o = ScannerPeekNextTokenMethodInfo
+    ResolveScannerMethod "scopeAddSymbol" o = ScannerScopeAddSymbolMethodInfo
+    ResolveScannerMethod "scopeRemoveSymbol" o = ScannerScopeRemoveSymbolMethodInfo
+    ResolveScannerMethod "syncFileOffset" o = ScannerSyncFileOffsetMethodInfo
+    ResolveScannerMethod "unexpToken" o = ScannerUnexpTokenMethodInfo
+    ResolveScannerMethod "getNextToken" o = ScannerGetNextTokenMethodInfo
+    ResolveScannerMethod "setScope" o = ScannerSetScopeMethodInfo
+    ResolveScannerMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveScannerMethod t Scanner, MethodInfo info Scanner p) => IsLabelProxy t (Scanner -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveScannerMethod t Scanner, MethodInfo info Scanner p) => IsLabel t (Scanner -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Scanner.hs-boot b/GI/GLib/Structs/Scanner.hs-boot
--- a/GI/GLib/Structs/Scanner.hs-boot
+++ b/GI/GLib/Structs/Scanner.hs-boot
@@ -8,3 +8,17 @@
 import qualified Data.Map as Map
 
 newtype Scanner = Scanner (ForeignPtr Scanner)
+data ScannerCurLineMethodInfo
+data ScannerCurPositionMethodInfo
+data ScannerCurTokenMethodInfo
+data ScannerDestroyMethodInfo
+data ScannerEofMethodInfo
+data ScannerGetNextTokenMethodInfo
+data ScannerInputFileMethodInfo
+data ScannerInputTextMethodInfo
+data ScannerPeekNextTokenMethodInfo
+data ScannerScopeAddSymbolMethodInfo
+data ScannerScopeRemoveSymbolMethodInfo
+data ScannerSetScopeMethodInfo
+data ScannerSyncFileOffsetMethodInfo
+data ScannerUnexpTokenMethodInfo
diff --git a/GI/GLib/Structs/ScannerConfig.hs b/GI/GLib/Structs/ScannerConfig.hs
--- a/GI/GLib/Structs/ScannerConfig.hs
+++ b/GI/GLib/Structs/ScannerConfig.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -14,6 +15,7 @@
 
 -- * Exported types
     ScannerConfig(..)                       ,
+    newZeroScannerConfig                    ,
     noScannerConfig                         ,
 
 
@@ -137,6 +139,10 @@
 import GI.GLib.Callbacks
 
 newtype ScannerConfig = ScannerConfig (ForeignPtr ScannerConfig)
+-- | Construct a `ScannerConfig` struct initialized to zero.
+newZeroScannerConfig :: MonadIO m => m ScannerConfig
+newZeroScannerConfig = liftIO $ callocBytes 128 >>= wrapPtr ScannerConfig
+
 noScannerConfig :: Maybe ScannerConfig
 noScannerConfig = Nothing
 
@@ -273,5 +279,16 @@
 scannerConfigReadStoreInt64 s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 116) :: IO Word32
     return val
+
+type family ResolveScannerConfigMethod (t :: Symbol) (o :: *) :: * where
+    ResolveScannerConfigMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveScannerConfigMethod t ScannerConfig, MethodInfo info ScannerConfig p) => IsLabelProxy t (ScannerConfig -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveScannerConfigMethod t ScannerConfig, MethodInfo info ScannerConfig p) => IsLabel t (ScannerConfig -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Sequence.hs b/GI/GLib/Structs/Sequence.hs
--- a/GI/GLib/Structs/Sequence.hs
+++ b/GI/GLib/Structs/Sequence.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,15 +19,41 @@
 
  -- * Methods
 -- ** sequenceFree
+    SequenceFreeMethodInfo                  ,
     sequenceFree                            ,
 
 
 -- ** sequenceGetLength
+    SequenceGetLengthMethodInfo             ,
     sequenceGetLength                       ,
 
 
+-- ** sequenceMove
+    sequenceMove                            ,
 
 
+-- ** sequenceMoveRange
+    sequenceMoveRange                       ,
+
+
+-- ** sequenceRemove
+    sequenceRemove                          ,
+
+
+-- ** sequenceRemoveRange
+    sequenceRemoveRange                     ,
+
+
+-- ** sequenceSet
+    sequenceSet                             ,
+
+
+-- ** sequenceSwap
+    sequenceSwap                            ,
+
+
+
+
     ) where
 
 import Prelude ()
@@ -45,9 +72,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Sequence", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -59,19 +85,22 @@
 
 sequenceFree ::
     (MonadIO m) =>
-    Sequence ->                             -- _obj
-    m ()
+    Sequence                                -- _obj
+    -> m ()                                 -- result
 sequenceFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_sequence_free _obj'
     touchManagedPtr _obj
     return ()
 
+data SequenceFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo SequenceFreeMethodInfo Sequence signature where
+    overloadedMethod _ = sequenceFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Sequence", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -83,12 +112,189 @@
 
 sequenceGetLength ::
     (MonadIO m) =>
-    Sequence ->                             -- _obj
-    m Int32
+    Sequence                                -- _obj
+    -> m Int32                              -- result
 sequenceGetLength _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_sequence_get_length _obj'
     touchManagedPtr _obj
     return result
+
+data SequenceGetLengthMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo SequenceGetLengthMethodInfo Sequence signature where
+    overloadedMethod _ = sequenceGetLength
+
+-- method Sequence::move
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "src", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+sequenceMove src dest = liftIO $ do
+    let src' = unsafeManagedPtrGetPtr src
+    let dest' = unsafeManagedPtrGetPtr dest
+    g_sequence_move src' dest'
+    touchManagedPtr src
+    touchManagedPtr dest
+    return ()
+
+-- method Sequence::move_range
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "dest", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "begin", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+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 ()
+
+-- method Sequence::remove
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "iter", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+sequenceRemove iter = liftIO $ do
+    let iter' = unsafeManagedPtrGetPtr iter
+    g_sequence_remove iter'
+    touchManagedPtr iter
+    return ()
+
+-- method Sequence::remove_range
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "begin", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "end", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+sequenceRemoveRange begin end = liftIO $ do
+    let begin' = unsafeManagedPtrGetPtr begin
+    let end' = unsafeManagedPtrGetPtr end
+    g_sequence_remove_range begin' end'
+    touchManagedPtr begin
+    touchManagedPtr end
+    return ()
+
+-- method Sequence::set
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "iter", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+sequenceSet iter data_ = liftIO $ do
+    let iter' = unsafeManagedPtrGetPtr iter
+    g_sequence_set iter' data_
+    touchManagedPtr iter
+    return ()
+
+-- method Sequence::swap
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "a", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+sequenceSwap a b = liftIO $ do
+    let a' = unsafeManagedPtrGetPtr a
+    let b' = unsafeManagedPtrGetPtr b
+    g_sequence_swap a' b'
+    touchManagedPtr a
+    touchManagedPtr b
+    return ()
+
+type family ResolveSequenceMethod (t :: Symbol) (o :: *) :: * where
+    ResolveSequenceMethod "free" o = SequenceFreeMethodInfo
+    ResolveSequenceMethod "getLength" o = SequenceGetLengthMethodInfo
+    ResolveSequenceMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveSequenceMethod t Sequence, MethodInfo info Sequence p) => IsLabelProxy t (Sequence -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveSequenceMethod t Sequence, MethodInfo info Sequence p) => IsLabel t (Sequence -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Sequence.hs-boot b/GI/GLib/Structs/Sequence.hs-boot
--- a/GI/GLib/Structs/Sequence.hs-boot
+++ b/GI/GLib/Structs/Sequence.hs-boot
@@ -8,3 +8,5 @@
 import qualified Data.Map as Map
 
 newtype Sequence = Sequence (ForeignPtr Sequence)
+data SequenceFreeMethodInfo
+data SequenceGetLengthMethodInfo
diff --git a/GI/GLib/Structs/SequenceIter.hs b/GI/GLib/Structs/SequenceIter.hs
--- a/GI/GLib/Structs/SequenceIter.hs
+++ b/GI/GLib/Structs/SequenceIter.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,18 +19,22 @@
 
  -- * Methods
 -- ** sequenceIterCompare
+    SequenceIterCompareMethodInfo           ,
     sequenceIterCompare                     ,
 
 
 -- ** sequenceIterGetPosition
+    SequenceIterGetPositionMethodInfo       ,
     sequenceIterGetPosition                 ,
 
 
 -- ** sequenceIterIsBegin
+    SequenceIterIsBeginMethodInfo           ,
     sequenceIterIsBegin                     ,
 
 
 -- ** sequenceIterIsEnd
+    SequenceIterIsEndMethodInfo             ,
     sequenceIterIsEnd                       ,
 
 
@@ -53,9 +58,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "b", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -68,9 +72,9 @@
 
 sequenceIterCompare ::
     (MonadIO m) =>
-    SequenceIter ->                         -- _obj
-    SequenceIter ->                         -- b
-    m Int32
+    SequenceIter                            -- _obj
+    -> SequenceIter                         -- b
+    -> m Int32                              -- result
 sequenceIterCompare _obj b = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let b' = unsafeManagedPtrGetPtr b
@@ -79,11 +83,14 @@
     touchManagedPtr b
     return result
 
+data SequenceIterCompareMethodInfo
+instance (signature ~ (SequenceIter -> m Int32), MonadIO m) => MethodInfo SequenceIterCompareMethodInfo SequenceIter signature where
+    overloadedMethod _ = sequenceIterCompare
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -95,19 +102,22 @@
 
 sequenceIterGetPosition ::
     (MonadIO m) =>
-    SequenceIter ->                         -- _obj
-    m Int32
+    SequenceIter                            -- _obj
+    -> m Int32                              -- result
 sequenceIterGetPosition _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_sequence_iter_get_position _obj'
     touchManagedPtr _obj
     return result
 
+data SequenceIterGetPositionMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo SequenceIterGetPositionMethodInfo SequenceIter signature where
+    overloadedMethod _ = sequenceIterGetPosition
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -119,8 +129,8 @@
 
 sequenceIterIsBegin ::
     (MonadIO m) =>
-    SequenceIter ->                         -- _obj
-    m Bool
+    SequenceIter                            -- _obj
+    -> m Bool                               -- result
 sequenceIterIsBegin _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_sequence_iter_is_begin _obj'
@@ -128,11 +138,14 @@
     touchManagedPtr _obj
     return result'
 
+data SequenceIterIsBeginMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo SequenceIterIsBeginMethodInfo SequenceIter signature where
+    overloadedMethod _ = sequenceIterIsBegin
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "SequenceIter", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -144,13 +157,32 @@
 
 sequenceIterIsEnd ::
     (MonadIO m) =>
-    SequenceIter ->                         -- _obj
-    m Bool
+    SequenceIter                            -- _obj
+    -> m Bool                               -- result
 sequenceIterIsEnd _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_sequence_iter_is_end _obj'
     let result' = (/= 0) result
     touchManagedPtr _obj
     return result'
+
+data SequenceIterIsEndMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo SequenceIterIsEndMethodInfo SequenceIter signature where
+    overloadedMethod _ = sequenceIterIsEnd
+
+type family ResolveSequenceIterMethod (t :: Symbol) (o :: *) :: * where
+    ResolveSequenceIterMethod "compare" o = SequenceIterCompareMethodInfo
+    ResolveSequenceIterMethod "isBegin" o = SequenceIterIsBeginMethodInfo
+    ResolveSequenceIterMethod "isEnd" o = SequenceIterIsEndMethodInfo
+    ResolveSequenceIterMethod "getPosition" o = SequenceIterGetPositionMethodInfo
+    ResolveSequenceIterMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveSequenceIterMethod t SequenceIter, MethodInfo info SequenceIter p) => IsLabelProxy t (SequenceIter -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveSequenceIterMethod t SequenceIter, MethodInfo info SequenceIter p) => IsLabel t (SequenceIter -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/SequenceIter.hs-boot b/GI/GLib/Structs/SequenceIter.hs-boot
--- a/GI/GLib/Structs/SequenceIter.hs-boot
+++ b/GI/GLib/Structs/SequenceIter.hs-boot
@@ -8,3 +8,7 @@
 import qualified Data.Map as Map
 
 newtype SequenceIter = SequenceIter (ForeignPtr SequenceIter)
+data SequenceIterCompareMethodInfo
+data SequenceIterGetPositionMethodInfo
+data SequenceIterIsBeginMethodInfo
+data SequenceIterIsEndMethodInfo
diff --git a/GI/GLib/Structs/Source.hs b/GI/GLib/Structs/Source.hs
--- a/GI/GLib/Structs/Source.hs
+++ b/GI/GLib/Structs/Source.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -13,63 +14,78 @@
 
 -- * Exported types
     Source(..)                              ,
+    newZeroSource                           ,
     noSource                                ,
 
 
  -- * Methods
 -- ** sourceAddChildSource
+    SourceAddChildSourceMethodInfo          ,
     sourceAddChildSource                    ,
 
 
 -- ** sourceAddPoll
+    SourceAddPollMethodInfo                 ,
     sourceAddPoll                           ,
 
 
 -- ** sourceAttach
+    SourceAttachMethodInfo                  ,
     sourceAttach                            ,
 
 
 -- ** sourceDestroy
+    SourceDestroyMethodInfo                 ,
     sourceDestroy                           ,
 
 
 -- ** sourceGetCanRecurse
+    SourceGetCanRecurseMethodInfo           ,
     sourceGetCanRecurse                     ,
 
 
 -- ** sourceGetContext
+    SourceGetContextMethodInfo              ,
     sourceGetContext                        ,
 
 
 -- ** sourceGetCurrentTime
+    SourceGetCurrentTimeMethodInfo          ,
     sourceGetCurrentTime                    ,
 
 
 -- ** sourceGetId
+    SourceGetIdMethodInfo                   ,
     sourceGetId                             ,
 
 
 -- ** sourceGetName
+    SourceGetNameMethodInfo                 ,
     sourceGetName                           ,
 
 
 -- ** sourceGetPriority
+    SourceGetPriorityMethodInfo             ,
     sourceGetPriority                       ,
 
 
 -- ** sourceGetReadyTime
+    SourceGetReadyTimeMethodInfo            ,
     sourceGetReadyTime                      ,
 
 
 -- ** sourceGetTime
+    SourceGetTimeMethodInfo                 ,
     sourceGetTime                           ,
 
 
 -- ** sourceIsDestroyed
+    SourceIsDestroyedMethodInfo             ,
     sourceIsDestroyed                       ,
 
 
 -- ** sourceModifyUnixFd
+    SourceModifyUnixFdMethodInfo            ,
     sourceModifyUnixFd                      ,
 
 
@@ -78,54 +94,83 @@
 
 
 -- ** sourceQueryUnixFd
+    SourceQueryUnixFdMethodInfo             ,
     sourceQueryUnixFd                       ,
 
 
 -- ** sourceRef
+    SourceRefMethodInfo                     ,
     sourceRef                               ,
 
 
+-- ** sourceRemove
+    sourceRemove                            ,
+
+
+-- ** sourceRemoveByFuncsUserData
+    sourceRemoveByFuncsUserData             ,
+
+
+-- ** sourceRemoveByUserData
+    sourceRemoveByUserData                  ,
+
+
 -- ** sourceRemoveChildSource
+    SourceRemoveChildSourceMethodInfo       ,
     sourceRemoveChildSource                 ,
 
 
 -- ** sourceRemovePoll
+    SourceRemovePollMethodInfo              ,
     sourceRemovePoll                        ,
 
 
 -- ** sourceRemoveUnixFd
+    SourceRemoveUnixFdMethodInfo            ,
     sourceRemoveUnixFd                      ,
 
 
 -- ** sourceSetCallback
+    SourceSetCallbackMethodInfo             ,
     sourceSetCallback                       ,
 
 
 -- ** sourceSetCallbackIndirect
+    SourceSetCallbackIndirectMethodInfo     ,
     sourceSetCallbackIndirect               ,
 
 
 -- ** sourceSetCanRecurse
+    SourceSetCanRecurseMethodInfo           ,
     sourceSetCanRecurse                     ,
 
 
 -- ** sourceSetFuncs
+    SourceSetFuncsMethodInfo                ,
     sourceSetFuncs                          ,
 
 
 -- ** sourceSetName
+    SourceSetNameMethodInfo                 ,
     sourceSetName                           ,
 
 
+-- ** sourceSetNameById
+    sourceSetNameById                       ,
+
+
 -- ** sourceSetPriority
+    SourceSetPriorityMethodInfo             ,
     sourceSetPriority                       ,
 
 
 -- ** sourceSetReadyTime
+    SourceSetReadyTimeMethodInfo            ,
     sourceSetReadyTime                      ,
 
 
 -- ** sourceUnref
+    SourceUnrefMethodInfo                   ,
     sourceUnref                             ,
 
 
@@ -150,14 +195,17 @@
 instance BoxedObject Source where
     boxedType _ = c_g_source_get_type
 
+-- | Construct a `Source` struct initialized to zero.
+newZeroSource :: MonadIO m => m Source
+newZeroSource = liftIO $ callocBoxedBytes 96 >>= wrapBoxed Source
+
 noSource :: Maybe Source
 noSource = Nothing
 
 -- 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}]
+-- Args : [Arg {argCName = "source_funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "struct_size", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -170,22 +218,21 @@
 
 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
+    SourceFuncs                             -- sourceFuncs
+    -> Word32                               -- structSize
+    -> m Source                             -- result
+sourceNew sourceFuncs structSize = liftIO $ do
+    let sourceFuncs' = unsafeManagedPtrGetPtr sourceFuncs
+    result <- g_source_new sourceFuncs' structSize
     checkUnexpectedReturnNULL "g_source_new" result
     result' <- (wrapBoxed Source) result
-    touchManagedPtr source_funcs
+    touchManagedPtr sourceFuncs
     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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -198,22 +245,25 @@
 
 sourceAddChildSource ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    Source ->                               -- child_source
-    m ()
-sourceAddChildSource _obj child_source = liftIO $ do
+    Source                                  -- _obj
+    -> Source                               -- childSource
+    -> m ()                                 -- result
+sourceAddChildSource _obj childSource = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let child_source' = unsafeManagedPtrGetPtr child_source
-    g_source_add_child_source _obj' child_source'
+    let childSource' = unsafeManagedPtrGetPtr childSource
+    g_source_add_child_source _obj' childSource'
     touchManagedPtr _obj
-    touchManagedPtr child_source
+    touchManagedPtr childSource
     return ()
 
+data SourceAddChildSourceMethodInfo
+instance (signature ~ (Source -> m ()), MonadIO m) => MethodInfo SourceAddChildSourceMethodInfo Source signature where
+    overloadedMethod _ = sourceAddChildSource
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -226,9 +276,9 @@
 
 sourceAddPoll ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    PollFD ->                               -- fd
-    m ()
+    Source                                  -- _obj
+    -> PollFD                               -- fd
+    -> m ()                                 -- result
 sourceAddPoll _obj fd = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let fd' = unsafeManagedPtrGetPtr fd
@@ -237,11 +287,14 @@
     touchManagedPtr fd
     return ()
 
+data SourceAddPollMethodInfo
+instance (signature ~ (PollFD -> m ()), MonadIO m) => MethodInfo SourceAddPollMethodInfo Source signature where
+    overloadedMethod _ = sourceAddPoll
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "context", argType = TInterface "GLib" "MainContext", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -254,9 +307,9 @@
 
 sourceAttach ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    Maybe (MainContext) ->                  -- context
-    m Word32
+    Source                                  -- _obj
+    -> Maybe (MainContext)                  -- context
+    -> m Word32                             -- result
 sourceAttach _obj context = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeContext <- case context of
@@ -269,11 +322,14 @@
     whenJust context touchManagedPtr
     return result
 
+data SourceAttachMethodInfo
+instance (signature ~ (Maybe (MainContext) -> m Word32), MonadIO m) => MethodInfo SourceAttachMethodInfo Source signature where
+    overloadedMethod _ = sourceAttach
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -285,19 +341,22 @@
 
 sourceDestroy ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m ()
+    Source                                  -- _obj
+    -> m ()                                 -- result
 sourceDestroy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_source_destroy _obj'
     touchManagedPtr _obj
     return ()
 
+data SourceDestroyMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo SourceDestroyMethodInfo Source signature where
+    overloadedMethod _ = sourceDestroy
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -309,8 +368,8 @@
 
 sourceGetCanRecurse ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m Bool
+    Source                                  -- _obj
+    -> m Bool                               -- result
 sourceGetCanRecurse _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_source_get_can_recurse _obj'
@@ -318,11 +377,14 @@
     touchManagedPtr _obj
     return result'
 
+data SourceGetCanRecurseMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo SourceGetCanRecurseMethodInfo Source signature where
+    overloadedMethod _ = sourceGetCanRecurse
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -334,8 +396,8 @@
 
 sourceGetContext ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m MainContext
+    Source                                  -- _obj
+    -> m MainContext                        -- result
 sourceGetContext _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_source_get_context _obj'
@@ -344,11 +406,14 @@
     touchManagedPtr _obj
     return result'
 
+data SourceGetContextMethodInfo
+instance (signature ~ (m MainContext), MonadIO m) => MethodInfo SourceGetContextMethodInfo Source signature where
+    overloadedMethod _ = sourceGetContext
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timeval", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -361,9 +426,9 @@
 {-# DEPRECATED sourceGetCurrentTime ["(Since version 2.28)","use g_source_get_time() instead"]#-}
 sourceGetCurrentTime ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    TimeVal ->                              -- timeval
-    m ()
+    Source                                  -- _obj
+    -> TimeVal                              -- timeval
+    -> m ()                                 -- result
 sourceGetCurrentTime _obj timeval = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let timeval' = unsafeManagedPtrGetPtr timeval
@@ -372,11 +437,14 @@
     touchManagedPtr timeval
     return ()
 
+data SourceGetCurrentTimeMethodInfo
+instance (signature ~ (TimeVal -> m ()), MonadIO m) => MethodInfo SourceGetCurrentTimeMethodInfo Source signature where
+    overloadedMethod _ = sourceGetCurrentTime
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -388,19 +456,22 @@
 
 sourceGetId ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m Word32
+    Source                                  -- _obj
+    -> m Word32                             -- result
 sourceGetId _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_source_get_id _obj'
     touchManagedPtr _obj
     return result
 
+data SourceGetIdMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo SourceGetIdMethodInfo Source signature where
+    overloadedMethod _ = sourceGetId
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -412,8 +483,8 @@
 
 sourceGetName ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m T.Text
+    Source                                  -- _obj
+    -> m T.Text                             -- result
 sourceGetName _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_source_get_name _obj'
@@ -422,11 +493,14 @@
     touchManagedPtr _obj
     return result'
 
+data SourceGetNameMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo SourceGetNameMethodInfo Source signature where
+    overloadedMethod _ = sourceGetName
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -438,19 +512,22 @@
 
 sourceGetPriority ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m Int32
+    Source                                  -- _obj
+    -> m Int32                              -- result
 sourceGetPriority _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_source_get_priority _obj'
     touchManagedPtr _obj
     return result
 
+data SourceGetPriorityMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo SourceGetPriorityMethodInfo Source signature where
+    overloadedMethod _ = sourceGetPriority
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -462,19 +539,22 @@
 
 sourceGetReadyTime ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m Int64
+    Source                                  -- _obj
+    -> m Int64                              -- result
 sourceGetReadyTime _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_source_get_ready_time _obj'
     touchManagedPtr _obj
     return result
 
+data SourceGetReadyTimeMethodInfo
+instance (signature ~ (m Int64), MonadIO m) => MethodInfo SourceGetReadyTimeMethodInfo Source signature where
+    overloadedMethod _ = sourceGetReadyTime
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -486,19 +566,22 @@
 
 sourceGetTime ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m Int64
+    Source                                  -- _obj
+    -> m Int64                              -- result
 sourceGetTime _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_source_get_time _obj'
     touchManagedPtr _obj
     return result
 
+data SourceGetTimeMethodInfo
+instance (signature ~ (m Int64), MonadIO m) => MethodInfo SourceGetTimeMethodInfo Source signature where
+    overloadedMethod _ = sourceGetTime
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -510,8 +593,8 @@
 
 sourceIsDestroyed ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m Bool
+    Source                                  -- _obj
+    -> m Bool                               -- result
 sourceIsDestroyed _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_source_is_destroyed _obj'
@@ -519,11 +602,14 @@
     touchManagedPtr _obj
     return result'
 
+data SourceIsDestroyedMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo SourceIsDestroyedMethodInfo Source signature where
+    overloadedMethod _ = sourceIsDestroyed
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_events", argType = TInterface "GLib" "IOCondition", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -537,22 +623,25 @@
 
 sourceModifyUnixFd ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    Ptr () ->                               -- tag
-    [IOCondition] ->                        -- new_events
-    m ()
-sourceModifyUnixFd _obj tag new_events = liftIO $ do
+    Source                                  -- _obj
+    -> Ptr ()                               -- tag
+    -> [IOCondition]                        -- newEvents
+    -> m ()                                 -- result
+sourceModifyUnixFd _obj tag newEvents = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let new_events' = gflagsToWord new_events
-    g_source_modify_unix_fd _obj' tag new_events'
+    let newEvents' = gflagsToWord newEvents
+    g_source_modify_unix_fd _obj' tag newEvents'
     touchManagedPtr _obj
     return ()
 
+data SourceModifyUnixFdMethodInfo
+instance (signature ~ (Ptr () -> [IOCondition] -> m ()), MonadIO m) => MethodInfo SourceModifyUnixFdMethodInfo Source signature where
+    overloadedMethod _ = sourceModifyUnixFd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -565,9 +654,9 @@
 
 sourceQueryUnixFd ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    Ptr () ->                               -- tag
-    m [IOCondition]
+    Source                                  -- _obj
+    -> Ptr ()                               -- tag
+    -> m [IOCondition]                      -- result
 sourceQueryUnixFd _obj tag = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_source_query_unix_fd _obj' tag
@@ -575,11 +664,14 @@
     touchManagedPtr _obj
     return result'
 
+data SourceQueryUnixFdMethodInfo
+instance (signature ~ (Ptr () -> m [IOCondition]), MonadIO m) => MethodInfo SourceQueryUnixFdMethodInfo Source signature where
+    overloadedMethod _ = sourceQueryUnixFd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -591,8 +683,8 @@
 
 sourceRef ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m Source
+    Source                                  -- _obj
+    -> m Source                             -- result
 sourceRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_source_ref _obj'
@@ -601,11 +693,14 @@
     touchManagedPtr _obj
     return result'
 
+data SourceRefMethodInfo
+instance (signature ~ (m Source), MonadIO m) => MethodInfo SourceRefMethodInfo Source signature where
+    overloadedMethod _ = sourceRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -618,22 +713,25 @@
 
 sourceRemoveChildSource ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    Source ->                               -- child_source
-    m ()
-sourceRemoveChildSource _obj child_source = liftIO $ do
+    Source                                  -- _obj
+    -> Source                               -- childSource
+    -> m ()                                 -- result
+sourceRemoveChildSource _obj childSource = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let child_source' = unsafeManagedPtrGetPtr child_source
-    g_source_remove_child_source _obj' child_source'
+    let childSource' = unsafeManagedPtrGetPtr childSource
+    g_source_remove_child_source _obj' childSource'
     touchManagedPtr _obj
-    touchManagedPtr child_source
+    touchManagedPtr childSource
     return ()
 
+data SourceRemoveChildSourceMethodInfo
+instance (signature ~ (Source -> m ()), MonadIO m) => MethodInfo SourceRemoveChildSourceMethodInfo Source signature where
+    overloadedMethod _ = sourceRemoveChildSource
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fd", argType = TInterface "GLib" "PollFD", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -646,9 +744,9 @@
 
 sourceRemovePoll ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    PollFD ->                               -- fd
-    m ()
+    Source                                  -- _obj
+    -> PollFD                               -- fd
+    -> m ()                                 -- result
 sourceRemovePoll _obj fd = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let fd' = unsafeManagedPtrGetPtr fd
@@ -657,11 +755,14 @@
     touchManagedPtr fd
     return ()
 
+data SourceRemovePollMethodInfo
+instance (signature ~ (PollFD -> m ()), MonadIO m) => MethodInfo SourceRemovePollMethodInfo Source signature where
+    overloadedMethod _ = sourceRemovePoll
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "tag", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -674,20 +775,23 @@
 
 sourceRemoveUnixFd ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    Ptr () ->                               -- tag
-    m ()
+    Source                                  -- _obj
+    -> Ptr ()                               -- tag
+    -> m ()                                 -- result
 sourceRemoveUnixFd _obj tag = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_source_remove_unix_fd _obj' tag
     touchManagedPtr _obj
     return ()
 
+data SourceRemoveUnixFdMethodInfo
+instance (signature ~ (Ptr () -> m ()), MonadIO m) => MethodInfo SourceRemoveUnixFdMethodInfo Source signature where
+    overloadedMethod _ = sourceRemoveUnixFd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -702,9 +806,9 @@
 
 sourceSetCallback ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    SourceFunc ->                           -- func
-    m ()
+    Source                                  -- _obj
+    -> SourceFunc                           -- func
+    -> m ()                                 -- result
 sourceSetCallback _obj func = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     func' <- mkSourceFunc (sourceFuncWrapper Nothing func)
@@ -714,11 +818,14 @@
     touchManagedPtr _obj
     return ()
 
+data SourceSetCallbackMethodInfo
+instance (signature ~ (SourceFunc -> m ()), MonadIO m) => MethodInfo SourceSetCallbackMethodInfo Source signature where
+    overloadedMethod _ = sourceSetCallback
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "callback_funcs", argType = TInterface "GLib" "SourceCallbackFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -732,23 +839,26 @@
 
 sourceSetCallbackIndirect ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    Ptr () ->                               -- callback_data
-    SourceCallbackFuncs ->                  -- callback_funcs
-    m ()
-sourceSetCallbackIndirect _obj callback_data callback_funcs = liftIO $ do
+    Source                                  -- _obj
+    -> Ptr ()                               -- callbackData
+    -> SourceCallbackFuncs                  -- callbackFuncs
+    -> m ()                                 -- result
+sourceSetCallbackIndirect _obj callbackData callbackFuncs = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let callback_funcs' = unsafeManagedPtrGetPtr callback_funcs
-    g_source_set_callback_indirect _obj' callback_data callback_funcs'
+    let callbackFuncs' = unsafeManagedPtrGetPtr callbackFuncs
+    g_source_set_callback_indirect _obj' callbackData callbackFuncs'
     touchManagedPtr _obj
-    touchManagedPtr callback_funcs
+    touchManagedPtr callbackFuncs
     return ()
 
+data SourceSetCallbackIndirectMethodInfo
+instance (signature ~ (Ptr () -> SourceCallbackFuncs -> m ()), MonadIO m) => MethodInfo SourceSetCallbackIndirectMethodInfo Source signature where
+    overloadedMethod _ = sourceSetCallbackIndirect
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "can_recurse", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -761,21 +871,24 @@
 
 sourceSetCanRecurse ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    Bool ->                                 -- can_recurse
-    m ()
-sourceSetCanRecurse _obj can_recurse = liftIO $ do
+    Source                                  -- _obj
+    -> Bool                                 -- canRecurse
+    -> m ()                                 -- result
+sourceSetCanRecurse _obj canRecurse = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let can_recurse' = (fromIntegral . fromEnum) can_recurse
-    g_source_set_can_recurse _obj' can_recurse'
+    let canRecurse' = (fromIntegral . fromEnum) canRecurse
+    g_source_set_can_recurse _obj' canRecurse'
     touchManagedPtr _obj
     return ()
 
+data SourceSetCanRecurseMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m) => MethodInfo SourceSetCanRecurseMethodInfo Source signature where
+    overloadedMethod _ = sourceSetCanRecurse
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -788,9 +901,9 @@
 
 sourceSetFuncs ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    SourceFuncs ->                          -- funcs
-    m ()
+    Source                                  -- _obj
+    -> SourceFuncs                          -- funcs
+    -> m ()                                 -- result
 sourceSetFuncs _obj funcs = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let funcs' = unsafeManagedPtrGetPtr funcs
@@ -799,11 +912,14 @@
     touchManagedPtr funcs
     return ()
 
+data SourceSetFuncsMethodInfo
+instance (signature ~ (SourceFuncs -> m ()), MonadIO m) => MethodInfo SourceSetFuncsMethodInfo Source signature where
+    overloadedMethod _ = sourceSetFuncs
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -816,9 +932,9 @@
 
 sourceSetName ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    T.Text ->                               -- name
-    m ()
+    Source                                  -- _obj
+    -> T.Text                               -- name
+    -> m ()                                 -- result
 sourceSetName _obj name = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     name' <- textToCString name
@@ -827,11 +943,14 @@
     freeMem name'
     return ()
 
+data SourceSetNameMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m) => MethodInfo SourceSetNameMethodInfo Source signature where
+    overloadedMethod _ = sourceSetName
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -844,20 +963,23 @@
 
 sourceSetPriority ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    Int32 ->                                -- priority
-    m ()
+    Source                                  -- _obj
+    -> Int32                                -- priority
+    -> m ()                                 -- result
 sourceSetPriority _obj priority = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_source_set_priority _obj' priority
     touchManagedPtr _obj
     return ()
 
+data SourceSetPriorityMethodInfo
+instance (signature ~ (Int32 -> m ()), MonadIO m) => MethodInfo SourceSetPriorityMethodInfo Source signature where
+    overloadedMethod _ = sourceSetPriority
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "ready_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -870,20 +992,23 @@
 
 sourceSetReadyTime ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    Int64 ->                                -- ready_time
-    m ()
-sourceSetReadyTime _obj ready_time = liftIO $ do
+    Source                                  -- _obj
+    -> Int64                                -- readyTime
+    -> m ()                                 -- result
+sourceSetReadyTime _obj readyTime = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_source_set_ready_time _obj' ready_time
+    g_source_set_ready_time _obj' readyTime
     touchManagedPtr _obj
     return ()
 
+data SourceSetReadyTimeMethodInfo
+instance (signature ~ (Int64 -> m ()), MonadIO m) => MethodInfo SourceSetReadyTimeMethodInfo Source signature where
+    overloadedMethod _ = sourceSetReadyTime
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -895,12 +1020,149 @@
 
 sourceUnref ::
     (MonadIO m) =>
-    Source ->                               -- _obj
-    m ()
+    Source                                  -- _obj
+    -> m ()                                 -- result
 sourceUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_source_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data SourceUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo SourceUnrefMethodInfo Source signature where
+    overloadedMethod _ = sourceUnref
+
+-- method Source::remove
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "tag", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                               -- result
+sourceRemove tag = liftIO $ do
+    result <- g_source_remove tag
+    let result' = (/= 0) result
+    return result'
+
+-- method Source::remove_by_funcs_user_data
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "funcs", argType = TInterface "GLib" "SourceFuncs", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                               -- userData
+    -> m Bool                               -- result
+sourceRemoveByFuncsUserData funcs userData = liftIO $ do
+    let funcs' = unsafeManagedPtrGetPtr funcs
+    result <- g_source_remove_by_funcs_user_data funcs' userData
+    let result' = (/= 0) result
+    touchManagedPtr funcs
+    return result'
+
+-- method Source::remove_by_user_data
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                  -- userData
+    -> m Bool                               -- result
+sourceRemoveByUserData userData = liftIO $ do
+    result <- g_source_remove_by_user_data userData
+    let result' = (/= 0) result
+    return result'
+
+-- method Source::set_name_by_id
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "tag", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+sourceSetNameById tag name = liftIO $ do
+    name' <- textToCString name
+    g_source_set_name_by_id tag name'
+    freeMem name'
+    return ()
+
+type family ResolveSourceMethod (t :: Symbol) (o :: *) :: * where
+    ResolveSourceMethod "addChildSource" o = SourceAddChildSourceMethodInfo
+    ResolveSourceMethod "addPoll" o = SourceAddPollMethodInfo
+    ResolveSourceMethod "attach" o = SourceAttachMethodInfo
+    ResolveSourceMethod "destroy" o = SourceDestroyMethodInfo
+    ResolveSourceMethod "isDestroyed" o = SourceIsDestroyedMethodInfo
+    ResolveSourceMethod "modifyUnixFd" o = SourceModifyUnixFdMethodInfo
+    ResolveSourceMethod "queryUnixFd" o = SourceQueryUnixFdMethodInfo
+    ResolveSourceMethod "ref" o = SourceRefMethodInfo
+    ResolveSourceMethod "removeChildSource" o = SourceRemoveChildSourceMethodInfo
+    ResolveSourceMethod "removePoll" o = SourceRemovePollMethodInfo
+    ResolveSourceMethod "removeUnixFd" o = SourceRemoveUnixFdMethodInfo
+    ResolveSourceMethod "unref" o = SourceUnrefMethodInfo
+    ResolveSourceMethod "getCanRecurse" o = SourceGetCanRecurseMethodInfo
+    ResolveSourceMethod "getContext" o = SourceGetContextMethodInfo
+    ResolveSourceMethod "getCurrentTime" o = SourceGetCurrentTimeMethodInfo
+    ResolveSourceMethod "getId" o = SourceGetIdMethodInfo
+    ResolveSourceMethod "getName" o = SourceGetNameMethodInfo
+    ResolveSourceMethod "getPriority" o = SourceGetPriorityMethodInfo
+    ResolveSourceMethod "getReadyTime" o = SourceGetReadyTimeMethodInfo
+    ResolveSourceMethod "getTime" o = SourceGetTimeMethodInfo
+    ResolveSourceMethod "setCallback" o = SourceSetCallbackMethodInfo
+    ResolveSourceMethod "setCallbackIndirect" o = SourceSetCallbackIndirectMethodInfo
+    ResolveSourceMethod "setCanRecurse" o = SourceSetCanRecurseMethodInfo
+    ResolveSourceMethod "setFuncs" o = SourceSetFuncsMethodInfo
+    ResolveSourceMethod "setName" o = SourceSetNameMethodInfo
+    ResolveSourceMethod "setPriority" o = SourceSetPriorityMethodInfo
+    ResolveSourceMethod "setReadyTime" o = SourceSetReadyTimeMethodInfo
+    ResolveSourceMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveSourceMethod t Source, MethodInfo info Source p) => IsLabelProxy t (Source -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveSourceMethod t Source, MethodInfo info Source p) => IsLabel t (Source -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Source.hs-boot b/GI/GLib/Structs/Source.hs-boot
--- a/GI/GLib/Structs/Source.hs-boot
+++ b/GI/GLib/Structs/Source.hs-boot
@@ -9,3 +9,30 @@
 
 newtype Source = Source (ForeignPtr Source)
 instance BoxedObject Source where
+data SourceAddChildSourceMethodInfo
+data SourceAddPollMethodInfo
+data SourceAttachMethodInfo
+data SourceDestroyMethodInfo
+data SourceGetCanRecurseMethodInfo
+data SourceGetContextMethodInfo
+data SourceGetCurrentTimeMethodInfo
+data SourceGetIdMethodInfo
+data SourceGetNameMethodInfo
+data SourceGetPriorityMethodInfo
+data SourceGetReadyTimeMethodInfo
+data SourceGetTimeMethodInfo
+data SourceIsDestroyedMethodInfo
+data SourceModifyUnixFdMethodInfo
+data SourceQueryUnixFdMethodInfo
+data SourceRefMethodInfo
+data SourceRemoveChildSourceMethodInfo
+data SourceRemovePollMethodInfo
+data SourceRemoveUnixFdMethodInfo
+data SourceSetCallbackMethodInfo
+data SourceSetCallbackIndirectMethodInfo
+data SourceSetCanRecurseMethodInfo
+data SourceSetFuncsMethodInfo
+data SourceSetNameMethodInfo
+data SourceSetPriorityMethodInfo
+data SourceSetReadyTimeMethodInfo
+data SourceUnrefMethodInfo
diff --git a/GI/GLib/Structs/SourceCallbackFuncs.hs b/GI/GLib/Structs/SourceCallbackFuncs.hs
--- a/GI/GLib/Structs/SourceCallbackFuncs.hs
+++ b/GI/GLib/Structs/SourceCallbackFuncs.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -13,6 +14,7 @@
 
 -- * Exported types
     SourceCallbackFuncs(..)                 ,
+    newZeroSourceCallbackFuncs              ,
     noSourceCallbackFuncs                   ,
 
 
@@ -29,11 +31,26 @@
 import GI.GLib.Callbacks
 
 newtype SourceCallbackFuncs = SourceCallbackFuncs (ForeignPtr SourceCallbackFuncs)
+-- | Construct a `SourceCallbackFuncs` struct initialized to zero.
+newZeroSourceCallbackFuncs :: MonadIO m => m SourceCallbackFuncs
+newZeroSourceCallbackFuncs = liftIO $ callocBytes 24 >>= wrapPtr 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"
+
+type family ResolveSourceCallbackFuncsMethod (t :: Symbol) (o :: *) :: * where
+    ResolveSourceCallbackFuncsMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveSourceCallbackFuncsMethod t SourceCallbackFuncs, MethodInfo info SourceCallbackFuncs p) => IsLabelProxy t (SourceCallbackFuncs -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveSourceCallbackFuncsMethod t SourceCallbackFuncs, MethodInfo info SourceCallbackFuncs p) => IsLabel t (SourceCallbackFuncs -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/SourceFuncs.hs b/GI/GLib/Structs/SourceFuncs.hs
--- a/GI/GLib/Structs/SourceFuncs.hs
+++ b/GI/GLib/Structs/SourceFuncs.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -31,6 +32,7 @@
 
 -- * Exported types
     SourceFuncs(..)                         ,
+    newZeroSourceFuncs                      ,
     noSourceFuncs                           ,
 
 
@@ -47,6 +49,10 @@
 import GI.GLib.Callbacks
 
 newtype SourceFuncs = SourceFuncs (ForeignPtr SourceFuncs)
+-- | Construct a `SourceFuncs` struct initialized to zero.
+newZeroSourceFuncs :: MonadIO m => m SourceFuncs
+newZeroSourceFuncs = liftIO $ callocBytes 48 >>= wrapPtr SourceFuncs
+
 noSourceFuncs :: Maybe SourceFuncs
 noSourceFuncs = Nothing
 
@@ -55,5 +61,16 @@
 -- 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"
+
+type family ResolveSourceFuncsMethod (t :: Symbol) (o :: *) :: * where
+    ResolveSourceFuncsMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveSourceFuncsMethod t SourceFuncs, MethodInfo info SourceFuncs p) => IsLabelProxy t (SourceFuncs -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveSourceFuncsMethod t SourceFuncs, MethodInfo info SourceFuncs p) => IsLabel t (SourceFuncs -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/StatBuf.hs b/GI/GLib/Structs/StatBuf.hs
--- a/GI/GLib/Structs/StatBuf.hs
+++ b/GI/GLib/Structs/StatBuf.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -33,5 +34,16 @@
 newtype StatBuf = StatBuf (ForeignPtr StatBuf)
 noStatBuf :: Maybe StatBuf
 noStatBuf = Nothing
+
+type family ResolveStatBufMethod (t :: Symbol) (o :: *) :: * where
+    ResolveStatBufMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveStatBufMethod t StatBuf, MethodInfo info StatBuf p) => IsLabelProxy t (StatBuf -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveStatBufMethod t StatBuf, MethodInfo info StatBuf p) => IsLabel t (StatBuf -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/String.hs b/GI/GLib/Structs/String.hs
--- a/GI/GLib/Structs/String.hs
+++ b/GI/GLib/Structs/String.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -12,115 +13,143 @@
 
 -- * Exported types
     String(..)                              ,
+    newZeroString                           ,
     noString                                ,
 
 
  -- * Methods
 -- ** stringAppend
+    StringAppendMethodInfo                  ,
     stringAppend                            ,
 
 
 -- ** stringAppendC
+    StringAppendCMethodInfo                 ,
     stringAppendC                           ,
 
 
 -- ** stringAppendLen
+    StringAppendLenMethodInfo               ,
     stringAppendLen                         ,
 
 
 -- ** stringAppendUnichar
+    StringAppendUnicharMethodInfo           ,
     stringAppendUnichar                     ,
 
 
 -- ** stringAppendUriEscaped
+    StringAppendUriEscapedMethodInfo        ,
     stringAppendUriEscaped                  ,
 
 
 -- ** stringAsciiDown
+    StringAsciiDownMethodInfo               ,
     stringAsciiDown                         ,
 
 
 -- ** stringAsciiUp
+    StringAsciiUpMethodInfo                 ,
     stringAsciiUp                           ,
 
 
 -- ** stringAssign
+    StringAssignMethodInfo                  ,
     stringAssign                            ,
 
 
 -- ** stringDown
+    StringDownMethodInfo                    ,
     stringDown                              ,
 
 
 -- ** stringEqual
+    StringEqualMethodInfo                   ,
     stringEqual                             ,
 
 
 -- ** stringErase
+    StringEraseMethodInfo                   ,
     stringErase                             ,
 
 
 -- ** stringFree
+    StringFreeMethodInfo                    ,
     stringFree                              ,
 
 
 -- ** stringFreeToBytes
+    StringFreeToBytesMethodInfo             ,
     stringFreeToBytes                       ,
 
 
 -- ** stringHash
+    StringHashMethodInfo                    ,
     stringHash                              ,
 
 
 -- ** stringInsert
+    StringInsertMethodInfo                  ,
     stringInsert                            ,
 
 
 -- ** stringInsertC
+    StringInsertCMethodInfo                 ,
     stringInsertC                           ,
 
 
 -- ** stringInsertLen
+    StringInsertLenMethodInfo               ,
     stringInsertLen                         ,
 
 
 -- ** stringInsertUnichar
+    StringInsertUnicharMethodInfo           ,
     stringInsertUnichar                     ,
 
 
 -- ** stringOverwrite
+    StringOverwriteMethodInfo               ,
     stringOverwrite                         ,
 
 
 -- ** stringOverwriteLen
+    StringOverwriteLenMethodInfo            ,
     stringOverwriteLen                      ,
 
 
 -- ** stringPrepend
+    StringPrependMethodInfo                 ,
     stringPrepend                           ,
 
 
 -- ** stringPrependC
+    StringPrependCMethodInfo                ,
     stringPrependC                          ,
 
 
 -- ** stringPrependLen
+    StringPrependLenMethodInfo              ,
     stringPrependLen                        ,
 
 
 -- ** stringPrependUnichar
+    StringPrependUnicharMethodInfo          ,
     stringPrependUnichar                    ,
 
 
 -- ** stringSetSize
+    StringSetSizeMethodInfo                 ,
     stringSetSize                           ,
 
 
 -- ** stringTruncate
+    StringTruncateMethodInfo                ,
     stringTruncate                          ,
 
 
 -- ** stringUp
+    StringUpMethodInfo                      ,
     stringUp                                ,
 
 
@@ -160,6 +189,10 @@
 instance BoxedObject String where
     boxedType _ = c_g_gstring_get_type
 
+-- | Construct a `String` struct initialized to zero.
+newZeroString :: MonadIO m => m String
+newZeroString = liftIO $ callocBoxedBytes 24 >>= wrapBoxed String
+
 noString :: Maybe String
 noString = Nothing
 
@@ -181,9 +214,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -196,9 +228,9 @@
 
 stringAppend ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    T.Text ->                               -- val
-    m String
+    String                                  -- _obj
+    -> T.Text                               -- val
+    -> m String                             -- result
 stringAppend _obj val = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     val' <- textToCString val
@@ -209,11 +241,14 @@
     freeMem val'
     return result'
 
+data StringAppendMethodInfo
+instance (signature ~ (T.Text -> m String), MonadIO m) => MethodInfo StringAppendMethodInfo String signature where
+    overloadedMethod _ = stringAppend
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -226,9 +261,9 @@
 
 stringAppendC ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Int8 ->                                 -- c
-    m String
+    String                                  -- _obj
+    -> Int8                                 -- c
+    -> m String                             -- result
 stringAppendC _obj c = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_append_c _obj' c
@@ -237,11 +272,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringAppendCMethodInfo
+instance (signature ~ (Int8 -> m String), MonadIO m) => MethodInfo StringAppendCMethodInfo String signature where
+    overloadedMethod _ = stringAppendC
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -255,10 +293,10 @@
 
 stringAppendLen ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    T.Text ->                               -- val
-    Int64 ->                                -- len
-    m String
+    String                                  -- _obj
+    -> T.Text                               -- val
+    -> Int64                                -- len
+    -> m String                             -- result
 stringAppendLen _obj val len = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     val' <- textToCString val
@@ -269,11 +307,14 @@
     freeMem val'
     return result'
 
+data StringAppendLenMethodInfo
+instance (signature ~ (T.Text -> Int64 -> m String), MonadIO m) => MethodInfo StringAppendLenMethodInfo String signature where
+    overloadedMethod _ = stringAppendLen
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -286,9 +327,9 @@
 
 stringAppendUnichar ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Char ->                                 -- wc
-    m String
+    String                                  -- _obj
+    -> Char                                 -- wc
+    -> m String                             -- result
 stringAppendUnichar _obj wc = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let wc' = (fromIntegral . ord) wc
@@ -298,11 +339,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringAppendUnicharMethodInfo
+instance (signature ~ (Char -> m String), MonadIO m) => MethodInfo StringAppendUnicharMethodInfo String signature where
+    overloadedMethod _ = stringAppendUnichar
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unescaped", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "reserved_chars_allowed", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "allow_utf8", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -317,29 +361,32 @@
 
 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
+    String                                  -- _obj
+    -> T.Text                               -- unescaped
+    -> T.Text                               -- reservedCharsAllowed
+    -> Bool                                 -- allowUtf8
+    -> m String                             -- result
+stringAppendUriEscaped _obj unescaped reservedCharsAllowed allowUtf8 = 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'
+    reservedCharsAllowed' <- textToCString reservedCharsAllowed
+    let allowUtf8' = (fromIntegral . fromEnum) allowUtf8
+    result <- g_string_append_uri_escaped _obj' unescaped' reservedCharsAllowed' allowUtf8'
     checkUnexpectedReturnNULL "g_string_append_uri_escaped" result
     result' <- (wrapBoxed String) result
     touchManagedPtr _obj
     freeMem unescaped'
-    freeMem reserved_chars_allowed'
+    freeMem reservedCharsAllowed'
     return result'
 
+data StringAppendUriEscapedMethodInfo
+instance (signature ~ (T.Text -> T.Text -> Bool -> m String), MonadIO m) => MethodInfo StringAppendUriEscapedMethodInfo String signature where
+    overloadedMethod _ = stringAppendUriEscaped
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -351,8 +398,8 @@
 
 stringAsciiDown ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    m String
+    String                                  -- _obj
+    -> m String                             -- result
 stringAsciiDown _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_ascii_down _obj'
@@ -361,11 +408,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringAsciiDownMethodInfo
+instance (signature ~ (m String), MonadIO m) => MethodInfo StringAsciiDownMethodInfo String signature where
+    overloadedMethod _ = stringAsciiDown
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -377,8 +427,8 @@
 
 stringAsciiUp ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    m String
+    String                                  -- _obj
+    -> m String                             -- result
 stringAsciiUp _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_ascii_up _obj'
@@ -387,11 +437,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringAsciiUpMethodInfo
+instance (signature ~ (m String), MonadIO m) => MethodInfo StringAsciiUpMethodInfo String signature where
+    overloadedMethod _ = stringAsciiUp
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rval", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -404,9 +457,9 @@
 
 stringAssign ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    T.Text ->                               -- rval
-    m String
+    String                                  -- _obj
+    -> T.Text                               -- rval
+    -> m String                             -- result
 stringAssign _obj rval = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     rval' <- textToCString rval
@@ -417,11 +470,14 @@
     freeMem rval'
     return result'
 
+data StringAssignMethodInfo
+instance (signature ~ (T.Text -> m String), MonadIO m) => MethodInfo StringAssignMethodInfo String signature where
+    overloadedMethod _ = stringAssign
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -433,8 +489,8 @@
 {-# 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
+    String                                  -- _obj
+    -> m String                             -- result
 stringDown _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_down _obj'
@@ -443,11 +499,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringDownMethodInfo
+instance (signature ~ (m String), MonadIO m) => MethodInfo StringDownMethodInfo String signature where
+    overloadedMethod _ = stringDown
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "v2", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -460,9 +519,9 @@
 
 stringEqual ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    String ->                               -- v2
-    m Bool
+    String                                  -- _obj
+    -> String                               -- v2
+    -> m Bool                               -- result
 stringEqual _obj v2 = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let v2' = unsafeManagedPtrGetPtr v2
@@ -472,11 +531,14 @@
     touchManagedPtr v2
     return result'
 
+data StringEqualMethodInfo
+instance (signature ~ (String -> m Bool), MonadIO m) => MethodInfo StringEqualMethodInfo String signature where
+    overloadedMethod _ = stringEqual
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -490,10 +552,10 @@
 
 stringErase ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Int64 ->                                -- pos
-    Int64 ->                                -- len
-    m String
+    String                                  -- _obj
+    -> Int64                                -- pos
+    -> Int64                                -- len
+    -> m String                             -- result
 stringErase _obj pos len = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_erase _obj' pos len
@@ -502,11 +564,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringEraseMethodInfo
+instance (signature ~ (Int64 -> Int64 -> m String), MonadIO m) => MethodInfo StringEraseMethodInfo String signature where
+    overloadedMethod _ = stringErase
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "free_segment", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -519,24 +584,27 @@
 
 stringFree ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Bool ->                                 -- free_segment
-    m T.Text
-stringFree _obj free_segment = liftIO $ do
+    String                                  -- _obj
+    -> Bool                                 -- freeSegment
+    -> m T.Text                             -- result
+stringFree _obj freeSegment = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let free_segment' = (fromIntegral . fromEnum) free_segment
-    result <- g_string_free _obj' free_segment'
+    let freeSegment' = (fromIntegral . fromEnum) freeSegment
+    result <- g_string_free _obj' freeSegment'
     checkUnexpectedReturnNULL "g_string_free" result
     result' <- cstringToText result
     freeMem result
     touchManagedPtr _obj
     return result'
 
+data StringFreeMethodInfo
+instance (signature ~ (Bool -> m T.Text), MonadIO m) => MethodInfo StringFreeMethodInfo String signature where
+    overloadedMethod _ = stringFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -548,8 +616,8 @@
 
 stringFreeToBytes ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    m Bytes
+    String                                  -- _obj
+    -> m Bytes                              -- result
 stringFreeToBytes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_free_to_bytes _obj'
@@ -558,11 +626,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringFreeToBytesMethodInfo
+instance (signature ~ (m Bytes), MonadIO m) => MethodInfo StringFreeToBytesMethodInfo String signature where
+    overloadedMethod _ = stringFreeToBytes
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -574,19 +645,22 @@
 
 stringHash ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    m Word32
+    String                                  -- _obj
+    -> m Word32                             -- result
 stringHash _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_hash _obj'
     touchManagedPtr _obj
     return result
 
+data StringHashMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo StringHashMethodInfo String signature where
+    overloadedMethod _ = stringHash
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -600,10 +674,10 @@
 
 stringInsert ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Int64 ->                                -- pos
-    T.Text ->                               -- val
-    m String
+    String                                  -- _obj
+    -> Int64                                -- pos
+    -> T.Text                               -- val
+    -> m String                             -- result
 stringInsert _obj pos val = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     val' <- textToCString val
@@ -614,11 +688,14 @@
     freeMem val'
     return result'
 
+data StringInsertMethodInfo
+instance (signature ~ (Int64 -> T.Text -> m String), MonadIO m) => MethodInfo StringInsertMethodInfo String signature where
+    overloadedMethod _ = stringInsert
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -632,10 +709,10 @@
 
 stringInsertC ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Int64 ->                                -- pos
-    Int8 ->                                 -- c
-    m String
+    String                                  -- _obj
+    -> Int64                                -- pos
+    -> Int8                                 -- c
+    -> m String                             -- result
 stringInsertC _obj pos c = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_insert_c _obj' pos c
@@ -644,11 +721,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringInsertCMethodInfo
+instance (signature ~ (Int64 -> Int8 -> m String), MonadIO m) => MethodInfo StringInsertCMethodInfo String signature where
+    overloadedMethod _ = stringInsertC
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -663,11 +743,11 @@
 
 stringInsertLen ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Int64 ->                                -- pos
-    T.Text ->                               -- val
-    Int64 ->                                -- len
-    m String
+    String                                  -- _obj
+    -> Int64                                -- pos
+    -> T.Text                               -- val
+    -> Int64                                -- len
+    -> m String                             -- result
 stringInsertLen _obj pos val len = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     val' <- textToCString val
@@ -678,11 +758,14 @@
     freeMem val'
     return result'
 
+data StringInsertLenMethodInfo
+instance (signature ~ (Int64 -> T.Text -> Int64 -> m String), MonadIO m) => MethodInfo StringInsertLenMethodInfo String signature where
+    overloadedMethod _ = stringInsertLen
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -696,10 +779,10 @@
 
 stringInsertUnichar ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Int64 ->                                -- pos
-    Char ->                                 -- wc
-    m String
+    String                                  -- _obj
+    -> Int64                                -- pos
+    -> Char                                 -- wc
+    -> m String                             -- result
 stringInsertUnichar _obj pos wc = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let wc' = (fromIntegral . ord) wc
@@ -709,11 +792,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringInsertUnicharMethodInfo
+instance (signature ~ (Int64 -> Char -> m String), MonadIO m) => MethodInfo StringInsertUnicharMethodInfo String signature where
+    overloadedMethod _ = stringInsertUnichar
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -727,10 +813,10 @@
 
 stringOverwrite ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Word64 ->                               -- pos
-    T.Text ->                               -- val
-    m String
+    String                                  -- _obj
+    -> Word64                               -- pos
+    -> T.Text                               -- val
+    -> m String                             -- result
 stringOverwrite _obj pos val = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     val' <- textToCString val
@@ -741,11 +827,14 @@
     freeMem val'
     return result'
 
+data StringOverwriteMethodInfo
+instance (signature ~ (Word64 -> T.Text -> m String), MonadIO m) => MethodInfo StringOverwriteMethodInfo String signature where
+    overloadedMethod _ = stringOverwrite
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pos", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -760,11 +849,11 @@
 
 stringOverwriteLen ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Word64 ->                               -- pos
-    T.Text ->                               -- val
-    Int64 ->                                -- len
-    m String
+    String                                  -- _obj
+    -> Word64                               -- pos
+    -> T.Text                               -- val
+    -> Int64                                -- len
+    -> m String                             -- result
 stringOverwriteLen _obj pos val len = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     val' <- textToCString val
@@ -775,11 +864,14 @@
     freeMem val'
     return result'
 
+data StringOverwriteLenMethodInfo
+instance (signature ~ (Word64 -> T.Text -> Int64 -> m String), MonadIO m) => MethodInfo StringOverwriteLenMethodInfo String signature where
+    overloadedMethod _ = stringOverwriteLen
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -792,9 +884,9 @@
 
 stringPrepend ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    T.Text ->                               -- val
-    m String
+    String                                  -- _obj
+    -> T.Text                               -- val
+    -> m String                             -- result
 stringPrepend _obj val = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     val' <- textToCString val
@@ -805,11 +897,14 @@
     freeMem val'
     return result'
 
+data StringPrependMethodInfo
+instance (signature ~ (T.Text -> m String), MonadIO m) => MethodInfo StringPrependMethodInfo String signature where
+    overloadedMethod _ = stringPrepend
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "c", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -822,9 +917,9 @@
 
 stringPrependC ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Int8 ->                                 -- c
-    m String
+    String                                  -- _obj
+    -> Int8                                 -- c
+    -> m String                             -- result
 stringPrependC _obj c = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_prepend_c _obj' c
@@ -833,11 +928,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringPrependCMethodInfo
+instance (signature ~ (Int8 -> m String), MonadIO m) => MethodInfo StringPrependCMethodInfo String signature where
+    overloadedMethod _ = stringPrependC
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "val", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -851,10 +949,10 @@
 
 stringPrependLen ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    T.Text ->                               -- val
-    Int64 ->                                -- len
-    m String
+    String                                  -- _obj
+    -> T.Text                               -- val
+    -> Int64                                -- len
+    -> m String                             -- result
 stringPrependLen _obj val len = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     val' <- textToCString val
@@ -865,11 +963,14 @@
     freeMem val'
     return result'
 
+data StringPrependLenMethodInfo
+instance (signature ~ (T.Text -> Int64 -> m String), MonadIO m) => MethodInfo StringPrependLenMethodInfo String signature where
+    overloadedMethod _ = stringPrependLen
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wc", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -882,9 +983,9 @@
 
 stringPrependUnichar ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Char ->                                 -- wc
-    m String
+    String                                  -- _obj
+    -> Char                                 -- wc
+    -> m String                             -- result
 stringPrependUnichar _obj wc = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let wc' = (fromIntegral . ord) wc
@@ -894,11 +995,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringPrependUnicharMethodInfo
+instance (signature ~ (Char -> m String), MonadIO m) => MethodInfo StringPrependUnicharMethodInfo String signature where
+    overloadedMethod _ = stringPrependUnichar
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -911,9 +1015,9 @@
 
 stringSetSize ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Word64 ->                               -- len
-    m String
+    String                                  -- _obj
+    -> Word64                               -- len
+    -> m String                             -- result
 stringSetSize _obj len = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_set_size _obj' len
@@ -922,11 +1026,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringSetSizeMethodInfo
+instance (signature ~ (Word64 -> m String), MonadIO m) => MethodInfo StringSetSizeMethodInfo String signature where
+    overloadedMethod _ = stringSetSize
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -939,9 +1046,9 @@
 
 stringTruncate ::
     (MonadIO m) =>
-    String ->                               -- _obj
-    Word64 ->                               -- len
-    m String
+    String                                  -- _obj
+    -> Word64                               -- len
+    -> m String                             -- result
 stringTruncate _obj len = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_truncate _obj' len
@@ -950,11 +1057,14 @@
     touchManagedPtr _obj
     return result'
 
+data StringTruncateMethodInfo
+instance (signature ~ (Word64 -> m String), MonadIO m) => MethodInfo StringTruncateMethodInfo String signature where
+    overloadedMethod _ = stringTruncate
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "String", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -966,8 +1076,8 @@
 {-# 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
+    String                                  -- _obj
+    -> m String                             -- result
 stringUp _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_string_up _obj'
@@ -975,5 +1085,47 @@
     result' <- (wrapBoxed String) result
     touchManagedPtr _obj
     return result'
+
+data StringUpMethodInfo
+instance (signature ~ (m String), MonadIO m) => MethodInfo StringUpMethodInfo String signature where
+    overloadedMethod _ = stringUp
+
+type family ResolveStringMethod (t :: Symbol) (o :: *) :: * where
+    ResolveStringMethod "append" o = StringAppendMethodInfo
+    ResolveStringMethod "appendC" o = StringAppendCMethodInfo
+    ResolveStringMethod "appendLen" o = StringAppendLenMethodInfo
+    ResolveStringMethod "appendUnichar" o = StringAppendUnicharMethodInfo
+    ResolveStringMethod "appendUriEscaped" o = StringAppendUriEscapedMethodInfo
+    ResolveStringMethod "asciiDown" o = StringAsciiDownMethodInfo
+    ResolveStringMethod "asciiUp" o = StringAsciiUpMethodInfo
+    ResolveStringMethod "assign" o = StringAssignMethodInfo
+    ResolveStringMethod "down" o = StringDownMethodInfo
+    ResolveStringMethod "equal" o = StringEqualMethodInfo
+    ResolveStringMethod "erase" o = StringEraseMethodInfo
+    ResolveStringMethod "free" o = StringFreeMethodInfo
+    ResolveStringMethod "freeToBytes" o = StringFreeToBytesMethodInfo
+    ResolveStringMethod "hash" o = StringHashMethodInfo
+    ResolveStringMethod "insert" o = StringInsertMethodInfo
+    ResolveStringMethod "insertC" o = StringInsertCMethodInfo
+    ResolveStringMethod "insertLen" o = StringInsertLenMethodInfo
+    ResolveStringMethod "insertUnichar" o = StringInsertUnicharMethodInfo
+    ResolveStringMethod "overwrite" o = StringOverwriteMethodInfo
+    ResolveStringMethod "overwriteLen" o = StringOverwriteLenMethodInfo
+    ResolveStringMethod "prepend" o = StringPrependMethodInfo
+    ResolveStringMethod "prependC" o = StringPrependCMethodInfo
+    ResolveStringMethod "prependLen" o = StringPrependLenMethodInfo
+    ResolveStringMethod "prependUnichar" o = StringPrependUnicharMethodInfo
+    ResolveStringMethod "truncate" o = StringTruncateMethodInfo
+    ResolveStringMethod "up" o = StringUpMethodInfo
+    ResolveStringMethod "setSize" o = StringSetSizeMethodInfo
+    ResolveStringMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveStringMethod t String, MethodInfo info String p) => IsLabelProxy t (String -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveStringMethod t String, MethodInfo info String p) => IsLabel t (String -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/String.hs-boot b/GI/GLib/Structs/String.hs-boot
--- a/GI/GLib/Structs/String.hs-boot
+++ b/GI/GLib/Structs/String.hs-boot
@@ -9,3 +9,30 @@
 
 newtype String = String (ForeignPtr String)
 instance BoxedObject String where
+data StringAppendMethodInfo
+data StringAppendCMethodInfo
+data StringAppendLenMethodInfo
+data StringAppendUnicharMethodInfo
+data StringAppendUriEscapedMethodInfo
+data StringAsciiDownMethodInfo
+data StringAsciiUpMethodInfo
+data StringAssignMethodInfo
+data StringDownMethodInfo
+data StringEqualMethodInfo
+data StringEraseMethodInfo
+data StringFreeMethodInfo
+data StringFreeToBytesMethodInfo
+data StringHashMethodInfo
+data StringInsertMethodInfo
+data StringInsertCMethodInfo
+data StringInsertLenMethodInfo
+data StringInsertUnicharMethodInfo
+data StringOverwriteMethodInfo
+data StringOverwriteLenMethodInfo
+data StringPrependMethodInfo
+data StringPrependCMethodInfo
+data StringPrependLenMethodInfo
+data StringPrependUnicharMethodInfo
+data StringSetSizeMethodInfo
+data StringTruncateMethodInfo
+data StringUpMethodInfo
diff --git a/GI/GLib/Structs/StringChunk.hs b/GI/GLib/Structs/StringChunk.hs
--- a/GI/GLib/Structs/StringChunk.hs
+++ b/GI/GLib/Structs/StringChunk.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,22 +19,27 @@
 
  -- * Methods
 -- ** stringChunkClear
+    StringChunkClearMethodInfo              ,
     stringChunkClear                        ,
 
 
 -- ** stringChunkFree
+    StringChunkFreeMethodInfo               ,
     stringChunkFree                         ,
 
 
 -- ** stringChunkInsert
+    StringChunkInsertMethodInfo             ,
     stringChunkInsert                       ,
 
 
 -- ** stringChunkInsertConst
+    StringChunkInsertConstMethodInfo        ,
     stringChunkInsertConst                  ,
 
 
 -- ** stringChunkInsertLen
+    StringChunkInsertLenMethodInfo          ,
     stringChunkInsertLen                    ,
 
 
@@ -57,9 +63,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -71,19 +76,22 @@
 
 stringChunkClear ::
     (MonadIO m) =>
-    StringChunk ->                          -- _obj
-    m ()
+    StringChunk                             -- _obj
+    -> m ()                                 -- result
 stringChunkClear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_string_chunk_clear _obj'
     touchManagedPtr _obj
     return ()
 
+data StringChunkClearMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo StringChunkClearMethodInfo StringChunk signature where
+    overloadedMethod _ = stringChunkClear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -95,19 +103,22 @@
 
 stringChunkFree ::
     (MonadIO m) =>
-    StringChunk ->                          -- _obj
-    m ()
+    StringChunk                             -- _obj
+    -> m ()                                 -- result
 stringChunkFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_string_chunk_free _obj'
     touchManagedPtr _obj
     return ()
 
+data StringChunkFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo StringChunkFreeMethodInfo StringChunk signature where
+    overloadedMethod _ = stringChunkFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -120,9 +131,9 @@
 
 stringChunkInsert ::
     (MonadIO m) =>
-    StringChunk ->                          -- _obj
-    T.Text ->                               -- string
-    m T.Text
+    StringChunk                             -- _obj
+    -> T.Text                               -- string
+    -> m T.Text                             -- result
 stringChunkInsert _obj string = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     string' <- textToCString string
@@ -134,11 +145,14 @@
     freeMem string'
     return result'
 
+data StringChunkInsertMethodInfo
+instance (signature ~ (T.Text -> m T.Text), MonadIO m) => MethodInfo StringChunkInsertMethodInfo StringChunk signature where
+    overloadedMethod _ = stringChunkInsert
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -151,9 +165,9 @@
 
 stringChunkInsertConst ::
     (MonadIO m) =>
-    StringChunk ->                          -- _obj
-    T.Text ->                               -- string
-    m T.Text
+    StringChunk                             -- _obj
+    -> T.Text                               -- string
+    -> m T.Text                             -- result
 stringChunkInsertConst _obj string = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     string' <- textToCString string
@@ -165,11 +179,14 @@
     freeMem string'
     return result'
 
+data StringChunkInsertConstMethodInfo
+instance (signature ~ (T.Text -> m T.Text), MonadIO m) => MethodInfo StringChunkInsertConstMethodInfo StringChunk signature where
+    overloadedMethod _ = stringChunkInsertConst
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "StringChunk", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "len", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -183,10 +200,10 @@
 
 stringChunkInsertLen ::
     (MonadIO m) =>
-    StringChunk ->                          -- _obj
-    T.Text ->                               -- string
-    Int64 ->                                -- len
-    m T.Text
+    StringChunk                             -- _obj
+    -> T.Text                               -- string
+    -> Int64                                -- len
+    -> m T.Text                             -- result
 stringChunkInsertLen _obj string len = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     string' <- textToCString string
@@ -197,5 +214,25 @@
     touchManagedPtr _obj
     freeMem string'
     return result'
+
+data StringChunkInsertLenMethodInfo
+instance (signature ~ (T.Text -> Int64 -> m T.Text), MonadIO m) => MethodInfo StringChunkInsertLenMethodInfo StringChunk signature where
+    overloadedMethod _ = stringChunkInsertLen
+
+type family ResolveStringChunkMethod (t :: Symbol) (o :: *) :: * where
+    ResolveStringChunkMethod "clear" o = StringChunkClearMethodInfo
+    ResolveStringChunkMethod "free" o = StringChunkFreeMethodInfo
+    ResolveStringChunkMethod "insert" o = StringChunkInsertMethodInfo
+    ResolveStringChunkMethod "insertConst" o = StringChunkInsertConstMethodInfo
+    ResolveStringChunkMethod "insertLen" o = StringChunkInsertLenMethodInfo
+    ResolveStringChunkMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveStringChunkMethod t StringChunk, MethodInfo info StringChunk p) => IsLabelProxy t (StringChunk -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveStringChunkMethod t StringChunk, MethodInfo info StringChunk p) => IsLabel t (StringChunk -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/StringChunk.hs-boot b/GI/GLib/Structs/StringChunk.hs-boot
--- a/GI/GLib/Structs/StringChunk.hs-boot
+++ b/GI/GLib/Structs/StringChunk.hs-boot
@@ -8,3 +8,8 @@
 import qualified Data.Map as Map
 
 newtype StringChunk = StringChunk (ForeignPtr StringChunk)
+data StringChunkClearMethodInfo
+data StringChunkFreeMethodInfo
+data StringChunkInsertMethodInfo
+data StringChunkInsertConstMethodInfo
+data StringChunkInsertLenMethodInfo
diff --git a/GI/GLib/Structs/TestCase.hs b/GI/GLib/Structs/TestCase.hs
--- a/GI/GLib/Structs/TestCase.hs
+++ b/GI/GLib/Structs/TestCase.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -30,5 +31,16 @@
 newtype TestCase = TestCase (ForeignPtr TestCase)
 noTestCase :: Maybe TestCase
 noTestCase = Nothing
+
+type family ResolveTestCaseMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTestCaseMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTestCaseMethod t TestCase, MethodInfo info TestCase p) => IsLabelProxy t (TestCase -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTestCaseMethod t TestCase, MethodInfo info TestCase p) => IsLabel t (TestCase -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/TestConfig.hs b/GI/GLib/Structs/TestConfig.hs
--- a/GI/GLib/Structs/TestConfig.hs
+++ b/GI/GLib/Structs/TestConfig.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -10,6 +11,7 @@
 
 -- * Exported types
     TestConfig(..)                          ,
+    newZeroTestConfig                       ,
     noTestConfig                            ,
 
 
@@ -53,6 +55,10 @@
 import GI.GLib.Callbacks
 
 newtype TestConfig = TestConfig (ForeignPtr TestConfig)
+-- | Construct a `TestConfig` struct initialized to zero.
+newZeroTestConfig :: MonadIO m => m TestConfig
+newZeroTestConfig = liftIO $ callocBytes 24 >>= wrapPtr TestConfig
+
 noTestConfig :: Maybe TestConfig
 noTestConfig = Nothing
 
@@ -91,5 +97,16 @@
     val <- peek (ptr `plusPtr` 20) :: IO CInt
     let val' = (/= 0) val
     return val'
+
+type family ResolveTestConfigMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTestConfigMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTestConfigMethod t TestConfig, MethodInfo info TestConfig p) => IsLabelProxy t (TestConfig -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTestConfigMethod t TestConfig, MethodInfo info TestConfig p) => IsLabel t (TestConfig -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/TestLogBuffer.hs b/GI/GLib/Structs/TestLogBuffer.hs
--- a/GI/GLib/Structs/TestLogBuffer.hs
+++ b/GI/GLib/Structs/TestLogBuffer.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -10,15 +11,18 @@
 
 -- * Exported types
     TestLogBuffer(..)                       ,
+    newZeroTestLogBuffer                    ,
     noTestLogBuffer                         ,
 
 
  -- * Methods
 -- ** testLogBufferFree
+    TestLogBufferFreeMethodInfo             ,
     testLogBufferFree                       ,
 
 
 -- ** testLogBufferPush
+    TestLogBufferPushMethodInfo             ,
     testLogBufferPush                       ,
 
 
@@ -37,14 +41,17 @@
 import GI.GLib.Callbacks
 
 newtype TestLogBuffer = TestLogBuffer (ForeignPtr TestLogBuffer)
+-- | Construct a `TestLogBuffer` struct initialized to zero.
+newZeroTestLogBuffer :: MonadIO m => m TestLogBuffer
+newZeroTestLogBuffer = liftIO $ callocBytes 16 >>= wrapPtr 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestLogBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -56,19 +63,22 @@
 
 testLogBufferFree ::
     (MonadIO m) =>
-    TestLogBuffer ->                        -- _obj
-    m ()
+    TestLogBuffer                           -- _obj
+    -> m ()                                 -- result
 testLogBufferFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_test_log_buffer_free _obj'
     touchManagedPtr _obj
     return ()
 
+data TestLogBufferFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TestLogBufferFreeMethodInfo TestLogBuffer signature where
+    overloadedMethod _ = testLogBufferFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestLogBuffer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_bytes", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bytes", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -82,14 +92,31 @@
 
 testLogBufferPush ::
     (MonadIO m) =>
-    TestLogBuffer ->                        -- _obj
-    Word32 ->                               -- n_bytes
-    Word8 ->                                -- bytes
-    m ()
-testLogBufferPush _obj n_bytes bytes = liftIO $ do
+    TestLogBuffer                           -- _obj
+    -> Word32                               -- nBytes
+    -> Word8                                -- bytes
+    -> m ()                                 -- result
+testLogBufferPush _obj nBytes bytes = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    g_test_log_buffer_push _obj' n_bytes bytes
+    g_test_log_buffer_push _obj' nBytes bytes
     touchManagedPtr _obj
     return ()
+
+data TestLogBufferPushMethodInfo
+instance (signature ~ (Word32 -> Word8 -> m ()), MonadIO m) => MethodInfo TestLogBufferPushMethodInfo TestLogBuffer signature where
+    overloadedMethod _ = testLogBufferPush
+
+type family ResolveTestLogBufferMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTestLogBufferMethod "free" o = TestLogBufferFreeMethodInfo
+    ResolveTestLogBufferMethod "push" o = TestLogBufferPushMethodInfo
+    ResolveTestLogBufferMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTestLogBufferMethod t TestLogBuffer, MethodInfo info TestLogBuffer p) => IsLabelProxy t (TestLogBuffer -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTestLogBufferMethod t TestLogBuffer, MethodInfo info TestLogBuffer p) => IsLabel t (TestLogBuffer -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/TestLogBuffer.hs-boot b/GI/GLib/Structs/TestLogBuffer.hs-boot
--- a/GI/GLib/Structs/TestLogBuffer.hs-boot
+++ b/GI/GLib/Structs/TestLogBuffer.hs-boot
@@ -8,3 +8,5 @@
 import qualified Data.Map as Map
 
 newtype TestLogBuffer = TestLogBuffer (ForeignPtr TestLogBuffer)
+data TestLogBufferFreeMethodInfo
+data TestLogBufferPushMethodInfo
diff --git a/GI/GLib/Structs/TestLogMsg.hs b/GI/GLib/Structs/TestLogMsg.hs
--- a/GI/GLib/Structs/TestLogMsg.hs
+++ b/GI/GLib/Structs/TestLogMsg.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -10,11 +11,13 @@
 
 -- * Exported types
     TestLogMsg(..)                          ,
+    newZeroTestLogMsg                       ,
     noTestLogMsg                            ,
 
 
  -- * Methods
 -- ** testLogMsgFree
+    TestLogMsgFreeMethodInfo                ,
     testLogMsgFree                          ,
 
 
@@ -56,6 +59,10 @@
 import GI.GLib.Callbacks
 
 newtype TestLogMsg = TestLogMsg (ForeignPtr TestLogMsg)
+-- | Construct a `TestLogMsg` struct initialized to zero.
+newZeroTestLogMsg :: MonadIO m => m TestLogMsg
+newZeroTestLogMsg = liftIO $ callocBytes 32 >>= wrapPtr TestLogMsg
+
 noTestLogMsg :: Maybe TestLogMsg
 noTestLogMsg = Nothing
 
@@ -88,9 +95,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestLogMsg", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -102,12 +108,28 @@
 
 testLogMsgFree ::
     (MonadIO m) =>
-    TestLogMsg ->                           -- _obj
-    m ()
+    TestLogMsg                              -- _obj
+    -> m ()                                 -- result
 testLogMsgFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_test_log_msg_free _obj'
     touchManagedPtr _obj
     return ()
+
+data TestLogMsgFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TestLogMsgFreeMethodInfo TestLogMsg signature where
+    overloadedMethod _ = testLogMsgFree
+
+type family ResolveTestLogMsgMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTestLogMsgMethod "free" o = TestLogMsgFreeMethodInfo
+    ResolveTestLogMsgMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTestLogMsgMethod t TestLogMsg, MethodInfo info TestLogMsg p) => IsLabelProxy t (TestLogMsg -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTestLogMsgMethod t TestLogMsg, MethodInfo info TestLogMsg p) => IsLabel t (TestLogMsg -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/TestLogMsg.hs-boot b/GI/GLib/Structs/TestLogMsg.hs-boot
--- a/GI/GLib/Structs/TestLogMsg.hs-boot
+++ b/GI/GLib/Structs/TestLogMsg.hs-boot
@@ -8,3 +8,4 @@
 import qualified Data.Map as Map
 
 newtype TestLogMsg = TestLogMsg (ForeignPtr TestLogMsg)
+data TestLogMsgFreeMethodInfo
diff --git a/GI/GLib/Structs/TestSuite.hs b/GI/GLib/Structs/TestSuite.hs
--- a/GI/GLib/Structs/TestSuite.hs
+++ b/GI/GLib/Structs/TestSuite.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,10 +18,12 @@
 
  -- * Methods
 -- ** testSuiteAdd
+    TestSuiteAddMethodInfo                  ,
     testSuiteAdd                            ,
 
 
 -- ** testSuiteAddSuite
+    TestSuiteAddSuiteMethodInfo             ,
     testSuiteAddSuite                       ,
 
 
@@ -44,9 +47,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "test_case", argType = TInterface "GLib" "TestCase", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -59,22 +61,25 @@
 
 testSuiteAdd ::
     (MonadIO m) =>
-    TestSuite ->                            -- _obj
-    TestCase ->                             -- test_case
-    m ()
-testSuiteAdd _obj test_case = liftIO $ do
+    TestSuite                               -- _obj
+    -> TestCase                             -- testCase
+    -> m ()                                 -- result
+testSuiteAdd _obj testCase = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let test_case' = unsafeManagedPtrGetPtr test_case
-    g_test_suite_add _obj' test_case'
+    let testCase' = unsafeManagedPtrGetPtr testCase
+    g_test_suite_add _obj' testCase'
     touchManagedPtr _obj
-    touchManagedPtr test_case
+    touchManagedPtr testCase
     return ()
 
+data TestSuiteAddMethodInfo
+instance (signature ~ (TestCase -> m ()), MonadIO m) => MethodInfo TestSuiteAddMethodInfo TestSuite signature where
+    overloadedMethod _ = testSuiteAdd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nestedsuite", argType = TInterface "GLib" "TestSuite", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -87,9 +92,9 @@
 
 testSuiteAddSuite ::
     (MonadIO m) =>
-    TestSuite ->                            -- _obj
-    TestSuite ->                            -- nestedsuite
-    m ()
+    TestSuite                               -- _obj
+    -> TestSuite                            -- nestedsuite
+    -> m ()                                 -- result
 testSuiteAddSuite _obj nestedsuite = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let nestedsuite' = unsafeManagedPtrGetPtr nestedsuite
@@ -97,5 +102,22 @@
     touchManagedPtr _obj
     touchManagedPtr nestedsuite
     return ()
+
+data TestSuiteAddSuiteMethodInfo
+instance (signature ~ (TestSuite -> m ()), MonadIO m) => MethodInfo TestSuiteAddSuiteMethodInfo TestSuite signature where
+    overloadedMethod _ = testSuiteAddSuite
+
+type family ResolveTestSuiteMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTestSuiteMethod "add" o = TestSuiteAddMethodInfo
+    ResolveTestSuiteMethod "addSuite" o = TestSuiteAddSuiteMethodInfo
+    ResolveTestSuiteMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTestSuiteMethod t TestSuite, MethodInfo info TestSuite p) => IsLabelProxy t (TestSuite -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTestSuiteMethod t TestSuite, MethodInfo info TestSuite p) => IsLabel t (TestSuite -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/TestSuite.hs-boot b/GI/GLib/Structs/TestSuite.hs-boot
--- a/GI/GLib/Structs/TestSuite.hs-boot
+++ b/GI/GLib/Structs/TestSuite.hs-boot
@@ -8,3 +8,5 @@
 import qualified Data.Map as Map
 
 newtype TestSuite = TestSuite (ForeignPtr TestSuite)
+data TestSuiteAddMethodInfo
+data TestSuiteAddSuiteMethodInfo
diff --git a/GI/GLib/Structs/Thread.hs b/GI/GLib/Structs/Thread.hs
--- a/GI/GLib/Structs/Thread.hs
+++ b/GI/GLib/Structs/Thread.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -28,16 +29,34 @@
 
 
  -- * Methods
+-- ** threadErrorQuark
+    threadErrorQuark                        ,
+
+
+-- ** threadExit
+    threadExit                              ,
+
+
 -- ** threadRef
+    ThreadRefMethodInfo                     ,
     threadRef                               ,
 
 
+-- ** threadSelf
+    threadSelf                              ,
+
+
 -- ** threadUnref
+    ThreadUnrefMethodInfo                   ,
     threadUnref                             ,
 
 
+-- ** threadYield
+    threadYield                             ,
 
 
+
+
     ) where
 
 import Prelude ()
@@ -62,9 +81,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Thread", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -76,8 +94,8 @@
 
 threadRef ::
     (MonadIO m) =>
-    Thread ->                               -- _obj
-    m Thread
+    Thread                                  -- _obj
+    -> m Thread                             -- result
 threadRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_thread_ref _obj'
@@ -86,11 +104,14 @@
     touchManagedPtr _obj
     return result'
 
+data ThreadRefMethodInfo
+instance (signature ~ (m Thread), MonadIO m) => MethodInfo ThreadRefMethodInfo Thread signature where
+    overloadedMethod _ = threadRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Thread", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -102,12 +123,109 @@
 
 threadUnref ::
     (MonadIO m) =>
-    Thread ->                               -- _obj
-    m ()
+    Thread                                  -- _obj
+    -> m ()                                 -- result
 threadUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_thread_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data ThreadUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo ThreadUnrefMethodInfo Thread signature where
+    overloadedMethod _ = threadUnref
+
+-- method Thread::error_quark
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+threadErrorQuark  = liftIO $ do
+    result <- g_thread_error_quark
+    return result
+
+-- method Thread::exit
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "retval", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+threadExit retval = liftIO $ do
+    g_thread_exit retval
+    return ()
+
+-- method Thread::self
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+threadSelf  = liftIO $ do
+    result <- g_thread_self
+    checkUnexpectedReturnNULL "g_thread_self" result
+    result' <- (wrapBoxed Thread) result
+    return result'
+
+-- method Thread::yield
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_thread_yield" g_thread_yield :: 
+    IO ()
+
+
+threadYield ::
+    (MonadIO m) =>
+    m ()                                    -- result
+threadYield  = liftIO $ do
+    g_thread_yield
+    return ()
+
+type family ResolveThreadMethod (t :: Symbol) (o :: *) :: * where
+    ResolveThreadMethod "ref" o = ThreadRefMethodInfo
+    ResolveThreadMethod "unref" o = ThreadUnrefMethodInfo
+    ResolveThreadMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveThreadMethod t Thread, MethodInfo info Thread p) => IsLabelProxy t (Thread -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveThreadMethod t Thread, MethodInfo info Thread p) => IsLabel t (Thread -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Thread.hs-boot b/GI/GLib/Structs/Thread.hs-boot
--- a/GI/GLib/Structs/Thread.hs-boot
+++ b/GI/GLib/Structs/Thread.hs-boot
@@ -9,3 +9,5 @@
 
 newtype Thread = Thread (ForeignPtr Thread)
 instance BoxedObject Thread where
+data ThreadRefMethodInfo
+data ThreadUnrefMethodInfo
diff --git a/GI/GLib/Structs/ThreadPool.hs b/GI/GLib/Structs/ThreadPool.hs
--- a/GI/GLib/Structs/ThreadPool.hs
+++ b/GI/GLib/Structs/ThreadPool.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -14,35 +15,67 @@
 
 -- * Exported types
     ThreadPool(..)                          ,
+    newZeroThreadPool                       ,
     noThreadPool                            ,
 
 
  -- * Methods
 -- ** threadPoolFree
+    ThreadPoolFreeMethodInfo                ,
     threadPoolFree                          ,
 
 
+-- ** threadPoolGetMaxIdleTime
+    threadPoolGetMaxIdleTime                ,
+
+
 -- ** threadPoolGetMaxThreads
+    ThreadPoolGetMaxThreadsMethodInfo       ,
     threadPoolGetMaxThreads                 ,
 
 
+-- ** threadPoolGetMaxUnusedThreads
+    threadPoolGetMaxUnusedThreads           ,
+
+
 -- ** threadPoolGetNumThreads
+    ThreadPoolGetNumThreadsMethodInfo       ,
     threadPoolGetNumThreads                 ,
 
 
+-- ** threadPoolGetNumUnusedThreads
+    threadPoolGetNumUnusedThreads           ,
+
+
 -- ** threadPoolMoveToFront
+    ThreadPoolMoveToFrontMethodInfo         ,
     threadPoolMoveToFront                   ,
 
 
 -- ** threadPoolPush
+    ThreadPoolPushMethodInfo                ,
     threadPoolPush                          ,
 
 
+-- ** threadPoolSetMaxIdleTime
+    threadPoolSetMaxIdleTime                ,
+
+
 -- ** threadPoolSetMaxThreads
+    ThreadPoolSetMaxThreadsMethodInfo       ,
     threadPoolSetMaxThreads                 ,
 
 
+-- ** threadPoolSetMaxUnusedThreads
+    threadPoolSetMaxUnusedThreads           ,
+
+
+-- ** threadPoolStopUnusedThreads
+    threadPoolStopUnusedThreads             ,
+
+
 -- ** threadPoolUnprocessed
+    ThreadPoolUnprocessedMethodInfo         ,
     threadPoolUnprocessed                   ,
 
 
@@ -72,6 +105,10 @@
 import GI.GLib.Callbacks
 
 newtype ThreadPool = ThreadPool (ForeignPtr ThreadPool)
+-- | Construct a `ThreadPool` struct initialized to zero.
+newZeroThreadPool :: MonadIO m => m ThreadPool
+newZeroThreadPool = liftIO $ callocBytes 24 >>= wrapPtr ThreadPool
+
 noThreadPool :: Maybe ThreadPool
 noThreadPool = Nothing
 
@@ -90,9 +127,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "immediate", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "wait_", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -106,23 +142,26 @@
 
 threadPoolFree ::
     (MonadIO m) =>
-    ThreadPool ->                           -- _obj
-    Bool ->                                 -- immediate
-    Bool ->                                 -- wait_
-    m ()
-threadPoolFree _obj immediate wait_ = liftIO $ do
+    ThreadPool                              -- _obj
+    -> Bool                                 -- immediate
+    -> Bool                                 -- wait
+    -> m ()                                 -- result
+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_'
+    let wait' = (fromIntegral . fromEnum) wait
+    g_thread_pool_free _obj' immediate' wait'
     touchManagedPtr _obj
     return ()
 
+data ThreadPoolFreeMethodInfo
+instance (signature ~ (Bool -> Bool -> m ()), MonadIO m) => MethodInfo ThreadPoolFreeMethodInfo ThreadPool signature where
+    overloadedMethod _ = threadPoolFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -134,19 +173,22 @@
 
 threadPoolGetMaxThreads ::
     (MonadIO m) =>
-    ThreadPool ->                           -- _obj
-    m Int32
+    ThreadPool                              -- _obj
+    -> m Int32                              -- result
 threadPoolGetMaxThreads _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_thread_pool_get_max_threads _obj'
     touchManagedPtr _obj
     return result
 
+data ThreadPoolGetMaxThreadsMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo ThreadPoolGetMaxThreadsMethodInfo ThreadPool signature where
+    overloadedMethod _ = threadPoolGetMaxThreads
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -158,19 +200,22 @@
 
 threadPoolGetNumThreads ::
     (MonadIO m) =>
-    ThreadPool ->                           -- _obj
-    m Word32
+    ThreadPool                              -- _obj
+    -> m Word32                             -- result
 threadPoolGetNumThreads _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_thread_pool_get_num_threads _obj'
     touchManagedPtr _obj
     return result
 
+data ThreadPoolGetNumThreadsMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo ThreadPoolGetNumThreadsMethodInfo ThreadPool signature where
+    overloadedMethod _ = threadPoolGetNumThreads
+
 -- method ThreadPool::move_to_front
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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 : False
 -- Skip return : False
@@ -183,9 +228,9 @@
 
 threadPoolMoveToFront ::
     (MonadIO m) =>
-    ThreadPool ->                           -- _obj
-    Ptr () ->                               -- data
-    m Bool
+    ThreadPool                              -- _obj
+    -> Ptr ()                               -- data_
+    -> m Bool                               -- result
 threadPoolMoveToFront _obj data_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_thread_pool_move_to_front _obj' data_
@@ -193,11 +238,14 @@
     touchManagedPtr _obj
     return result'
 
+data ThreadPoolMoveToFrontMethodInfo
+instance (signature ~ (Ptr () -> m Bool), MonadIO m) => MethodInfo ThreadPoolMoveToFrontMethodInfo ThreadPool signature where
+    overloadedMethod _ = threadPoolMoveToFront
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -211,9 +259,9 @@
 
 threadPoolPush ::
     (MonadIO m) =>
-    ThreadPool ->                           -- _obj
-    Ptr () ->                               -- data
-    m ()
+    ThreadPool                              -- _obj
+    -> Ptr ()                               -- data_
+    -> m ()                                 -- result
 threadPoolPush _obj data_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     onException (do
@@ -224,11 +272,14 @@
         return ()
      )
 
+data ThreadPoolPushMethodInfo
+instance (signature ~ (Ptr () -> m ()), MonadIO m) => MethodInfo ThreadPoolPushMethodInfo ThreadPool signature where
+    overloadedMethod _ = threadPoolPush
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -242,24 +293,27 @@
 
 threadPoolSetMaxThreads ::
     (MonadIO m) =>
-    ThreadPool ->                           -- _obj
-    Int32 ->                                -- max_threads
-    m ()
-threadPoolSetMaxThreads _obj max_threads = liftIO $ do
+    ThreadPool                              -- _obj
+    -> Int32                                -- maxThreads
+    -> m ()                                 -- result
+threadPoolSetMaxThreads _obj maxThreads = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     onException (do
-        _ <- propagateGError $ g_thread_pool_set_max_threads _obj' max_threads
+        _ <- propagateGError $ g_thread_pool_set_max_threads _obj' maxThreads
         touchManagedPtr _obj
         return ()
      ) (do
         return ()
      )
 
+data ThreadPoolSetMaxThreadsMethodInfo
+instance (signature ~ (Int32 -> m ()), MonadIO m) => MethodInfo ThreadPoolSetMaxThreadsMethodInfo ThreadPool signature where
+    overloadedMethod _ = threadPoolSetMaxThreads
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "ThreadPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -271,12 +325,152 @@
 
 threadPoolUnprocessed ::
     (MonadIO m) =>
-    ThreadPool ->                           -- _obj
-    m Word32
+    ThreadPool                              -- _obj
+    -> m Word32                             -- result
 threadPoolUnprocessed _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_thread_pool_unprocessed _obj'
     touchManagedPtr _obj
     return result
+
+data ThreadPoolUnprocessedMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo ThreadPoolUnprocessedMethodInfo ThreadPool signature where
+    overloadedMethod _ = threadPoolUnprocessed
+
+-- method ThreadPool::get_max_idle_time
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+threadPoolGetMaxIdleTime  = liftIO $ do
+    result <- g_thread_pool_get_max_idle_time
+    return result
+
+-- method ThreadPool::get_max_unused_threads
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                                 -- result
+threadPoolGetMaxUnusedThreads  = liftIO $ do
+    result <- g_thread_pool_get_max_unused_threads
+    return result
+
+-- method ThreadPool::get_num_unused_threads
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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                                -- result
+threadPoolGetNumUnusedThreads  = liftIO $ do
+    result <- g_thread_pool_get_num_unused_threads
+    return result
+
+-- method ThreadPool::set_max_idle_time
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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 ()                                 -- result
+threadPoolSetMaxIdleTime interval = liftIO $ do
+    g_thread_pool_set_max_idle_time interval
+    return ()
+
+-- method ThreadPool::set_max_unused_threads
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "max_threads", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                   -- maxThreads
+    -> m ()                                 -- result
+threadPoolSetMaxUnusedThreads maxThreads = liftIO $ do
+    g_thread_pool_set_max_unused_threads maxThreads
+    return ()
+
+-- method ThreadPool::stop_unused_threads
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- 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 ()                                    -- result
+threadPoolStopUnusedThreads  = liftIO $ do
+    g_thread_pool_stop_unused_threads
+    return ()
+
+type family ResolveThreadPoolMethod (t :: Symbol) (o :: *) :: * where
+    ResolveThreadPoolMethod "free" o = ThreadPoolFreeMethodInfo
+    ResolveThreadPoolMethod "moveToFront" o = ThreadPoolMoveToFrontMethodInfo
+    ResolveThreadPoolMethod "push" o = ThreadPoolPushMethodInfo
+    ResolveThreadPoolMethod "unprocessed" o = ThreadPoolUnprocessedMethodInfo
+    ResolveThreadPoolMethod "getMaxThreads" o = ThreadPoolGetMaxThreadsMethodInfo
+    ResolveThreadPoolMethod "getNumThreads" o = ThreadPoolGetNumThreadsMethodInfo
+    ResolveThreadPoolMethod "setMaxThreads" o = ThreadPoolSetMaxThreadsMethodInfo
+    ResolveThreadPoolMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveThreadPoolMethod t ThreadPool, MethodInfo info ThreadPool p) => IsLabelProxy t (ThreadPool -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveThreadPoolMethod t ThreadPool, MethodInfo info ThreadPool p) => IsLabel t (ThreadPool -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/ThreadPool.hs-boot b/GI/GLib/Structs/ThreadPool.hs-boot
--- a/GI/GLib/Structs/ThreadPool.hs-boot
+++ b/GI/GLib/Structs/ThreadPool.hs-boot
@@ -8,3 +8,10 @@
 import qualified Data.Map as Map
 
 newtype ThreadPool = ThreadPool (ForeignPtr ThreadPool)
+data ThreadPoolFreeMethodInfo
+data ThreadPoolGetMaxThreadsMethodInfo
+data ThreadPoolGetNumThreadsMethodInfo
+data ThreadPoolMoveToFrontMethodInfo
+data ThreadPoolPushMethodInfo
+data ThreadPoolSetMaxThreadsMethodInfo
+data ThreadPoolUnprocessedMethodInfo
diff --git a/GI/GLib/Structs/TimeVal.hs b/GI/GLib/Structs/TimeVal.hs
--- a/GI/GLib/Structs/TimeVal.hs
+++ b/GI/GLib/Structs/TimeVal.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,15 +19,22 @@
 
 -- * Exported types
     TimeVal(..)                             ,
+    newZeroTimeVal                          ,
     noTimeVal                               ,
 
 
  -- * Methods
 -- ** timeValAdd
+    TimeValAddMethodInfo                    ,
     timeValAdd                              ,
 
 
+-- ** timeValFromIso8601
+    timeValFromIso8601                      ,
+
+
 -- ** timeValToIso8601
+    TimeValToIso8601MethodInfo              ,
     timeValToIso8601                        ,
 
 
@@ -56,6 +64,10 @@
 import GI.GLib.Callbacks
 
 newtype TimeVal = TimeVal (ForeignPtr TimeVal)
+-- | Construct a `TimeVal` struct initialized to zero.
+newZeroTimeVal :: MonadIO m => m TimeVal
+newZeroTimeVal = liftIO $ callocBytes 16 >>= wrapPtr TimeVal
+
 noTimeVal :: Maybe TimeVal
 noTimeVal = Nothing
 
@@ -71,9 +83,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "microseconds", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -86,20 +97,23 @@
 
 timeValAdd ::
     (MonadIO m) =>
-    TimeVal ->                              -- _obj
-    Int64 ->                                -- microseconds
-    m ()
+    TimeVal                                 -- _obj
+    -> Int64                                -- microseconds
+    -> m ()                                 -- result
 timeValAdd _obj microseconds = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_time_val_add _obj' microseconds
     touchManagedPtr _obj
     return ()
 
+data TimeValAddMethodInfo
+instance (signature ~ (Int64 -> m ()), MonadIO m) => MethodInfo TimeValAddMethodInfo TimeVal signature where
+    overloadedMethod _ = timeValAdd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeVal", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -111,8 +125,8 @@
 
 timeValToIso8601 ::
     (MonadIO m) =>
-    TimeVal ->                              -- _obj
-    m T.Text
+    TimeVal                                 -- _obj
+    -> m T.Text                             -- result
 timeValToIso8601 _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_time_val_to_iso8601 _obj'
@@ -121,5 +135,49 @@
     freeMem result
     touchManagedPtr _obj
     return result'
+
+data TimeValToIso8601MethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo TimeValToIso8601MethodInfo TimeVal signature where
+    overloadedMethod _ = timeValToIso8601
+
+-- method TimeVal::from_iso8601
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "iso_date", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TInterface "GLib" "TimeVal", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- isoDate
+    -> m (Bool,TimeVal)                     -- result
+timeValFromIso8601 isoDate = liftIO $ do
+    isoDate' <- textToCString isoDate
+    time <- callocBytes 16 :: IO (Ptr TimeVal)
+    result <- g_time_val_from_iso8601 isoDate' time
+    let result' = (/= 0) result
+    time' <- (wrapPtr TimeVal) time
+    freeMem isoDate'
+    return (result', time')
+
+type family ResolveTimeValMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTimeValMethod "add" o = TimeValAddMethodInfo
+    ResolveTimeValMethod "toIso8601" o = TimeValToIso8601MethodInfo
+    ResolveTimeValMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTimeValMethod t TimeVal, MethodInfo info TimeVal p) => IsLabelProxy t (TimeVal -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTimeValMethod t TimeVal, MethodInfo info TimeVal p) => IsLabel t (TimeVal -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/TimeVal.hs-boot b/GI/GLib/Structs/TimeVal.hs-boot
--- a/GI/GLib/Structs/TimeVal.hs-boot
+++ b/GI/GLib/Structs/TimeVal.hs-boot
@@ -8,3 +8,5 @@
 import qualified Data.Map as Map
 
 newtype TimeVal = TimeVal (ForeignPtr TimeVal)
+data TimeValAddMethodInfo
+data TimeValToIso8601MethodInfo
diff --git a/GI/GLib/Structs/TimeZone.hs b/GI/GLib/Structs/TimeZone.hs
--- a/GI/GLib/Structs/TimeZone.hs
+++ b/GI/GLib/Structs/TimeZone.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,22 +19,27 @@
 
  -- * Methods
 -- ** timeZoneAdjustTime
+    TimeZoneAdjustTimeMethodInfo            ,
     timeZoneAdjustTime                      ,
 
 
 -- ** timeZoneFindInterval
+    TimeZoneFindIntervalMethodInfo          ,
     timeZoneFindInterval                    ,
 
 
 -- ** timeZoneGetAbbreviation
+    TimeZoneGetAbbreviationMethodInfo       ,
     timeZoneGetAbbreviation                 ,
 
 
 -- ** timeZoneGetOffset
+    TimeZoneGetOffsetMethodInfo             ,
     timeZoneGetOffset                       ,
 
 
 -- ** timeZoneIsDst
+    TimeZoneIsDstMethodInfo                 ,
     timeZoneIsDst                           ,
 
 
@@ -50,10 +56,12 @@
 
 
 -- ** timeZoneRef
+    TimeZoneRefMethodInfo                   ,
     timeZoneRef                             ,
 
 
 -- ** timeZoneUnref
+    TimeZoneUnrefMethodInfo                 ,
     timeZoneUnref                           ,
 
 
@@ -83,9 +91,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "identifier", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -97,8 +104,8 @@
 
 timeZoneNew ::
     (MonadIO m) =>
-    Maybe (T.Text) ->                       -- identifier
-    m TimeZone
+    Maybe (T.Text)                          -- identifier
+    -> m TimeZone                           -- result
 timeZoneNew identifier = liftIO $ do
     maybeIdentifier <- case identifier of
         Nothing -> return nullPtr
@@ -115,7 +122,6 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "GLib" "TimeZone"
 -- throws : False
 -- Skip return : False
@@ -126,7 +132,7 @@
 
 timeZoneNewLocal ::
     (MonadIO m) =>
-    m TimeZone
+    m TimeZone                              -- result
 timeZoneNewLocal  = liftIO $ do
     result <- g_time_zone_new_local
     checkUnexpectedReturnNULL "g_time_zone_new_local" result
@@ -137,7 +143,6 @@
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "GLib" "TimeZone"
 -- throws : False
 -- Skip return : False
@@ -148,7 +153,7 @@
 
 timeZoneNewUtc ::
     (MonadIO m) =>
-    m TimeZone
+    m TimeZone                              -- result
 timeZoneNewUtc  = liftIO $ do
     result <- g_time_zone_new_utc
     checkUnexpectedReturnNULL "g_time_zone_new_utc" result
@@ -157,9 +162,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "GLib" "TimeType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -173,22 +177,25 @@
 
 timeZoneAdjustTime ::
     (MonadIO m) =>
-    TimeZone ->                             -- _obj
-    TimeType ->                             -- type
-    Int64 ->                                -- time_
-    m Int32
-timeZoneAdjustTime _obj type_ time_ = liftIO $ do
+    TimeZone                                -- _obj
+    -> TimeType                             -- type_
+    -> Int64                                -- time
+    -> m Int32                              -- result
+timeZoneAdjustTime _obj type_ time = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let type_' = (fromIntegral . fromEnum) type_
-    result <- g_time_zone_adjust_time _obj' type_' time_
+    result <- g_time_zone_adjust_time _obj' type_' time
     touchManagedPtr _obj
     return result
 
+data TimeZoneAdjustTimeMethodInfo
+instance (signature ~ (TimeType -> Int64 -> m Int32), MonadIO m) => MethodInfo TimeZoneAdjustTimeMethodInfo TimeZone signature where
+    overloadedMethod _ = timeZoneAdjustTime
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "GLib" "TimeType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -202,22 +209,25 @@
 
 timeZoneFindInterval ::
     (MonadIO m) =>
-    TimeZone ->                             -- _obj
-    TimeType ->                             -- type
-    Int64 ->                                -- time_
-    m Int32
-timeZoneFindInterval _obj type_ time_ = liftIO $ do
+    TimeZone                                -- _obj
+    -> TimeType                             -- type_
+    -> Int64                                -- time
+    -> m Int32                              -- result
+timeZoneFindInterval _obj type_ time = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let type_' = (fromIntegral . fromEnum) type_
-    result <- g_time_zone_find_interval _obj' type_' time_
+    result <- g_time_zone_find_interval _obj' type_' time
     touchManagedPtr _obj
     return result
 
+data TimeZoneFindIntervalMethodInfo
+instance (signature ~ (TimeType -> Int64 -> m Int32), MonadIO m) => MethodInfo TimeZoneFindIntervalMethodInfo TimeZone signature where
+    overloadedMethod _ = timeZoneFindInterval
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -230,9 +240,9 @@
 
 timeZoneGetAbbreviation ::
     (MonadIO m) =>
-    TimeZone ->                             -- _obj
-    Int32 ->                                -- interval
-    m T.Text
+    TimeZone                                -- _obj
+    -> Int32                                -- interval
+    -> m T.Text                             -- result
 timeZoneGetAbbreviation _obj interval = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_time_zone_get_abbreviation _obj' interval
@@ -241,11 +251,14 @@
     touchManagedPtr _obj
     return result'
 
+data TimeZoneGetAbbreviationMethodInfo
+instance (signature ~ (Int32 -> m T.Text), MonadIO m) => MethodInfo TimeZoneGetAbbreviationMethodInfo TimeZone signature where
+    overloadedMethod _ = timeZoneGetAbbreviation
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -258,20 +271,23 @@
 
 timeZoneGetOffset ::
     (MonadIO m) =>
-    TimeZone ->                             -- _obj
-    Int32 ->                                -- interval
-    m Int32
+    TimeZone                                -- _obj
+    -> Int32                                -- interval
+    -> m Int32                              -- result
 timeZoneGetOffset _obj interval = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_time_zone_get_offset _obj' interval
     touchManagedPtr _obj
     return result
 
+data TimeZoneGetOffsetMethodInfo
+instance (signature ~ (Int32 -> m Int32), MonadIO m) => MethodInfo TimeZoneGetOffsetMethodInfo TimeZone signature where
+    overloadedMethod _ = timeZoneGetOffset
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -284,9 +300,9 @@
 
 timeZoneIsDst ::
     (MonadIO m) =>
-    TimeZone ->                             -- _obj
-    Int32 ->                                -- interval
-    m Bool
+    TimeZone                                -- _obj
+    -> Int32                                -- interval
+    -> m Bool                               -- result
 timeZoneIsDst _obj interval = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_time_zone_is_dst _obj' interval
@@ -294,11 +310,14 @@
     touchManagedPtr _obj
     return result'
 
+data TimeZoneIsDstMethodInfo
+instance (signature ~ (Int32 -> m Bool), MonadIO m) => MethodInfo TimeZoneIsDstMethodInfo TimeZone signature where
+    overloadedMethod _ = timeZoneIsDst
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -310,8 +329,8 @@
 
 timeZoneRef ::
     (MonadIO m) =>
-    TimeZone ->                             -- _obj
-    m TimeZone
+    TimeZone                                -- _obj
+    -> m TimeZone                           -- result
 timeZoneRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_time_zone_ref _obj'
@@ -320,11 +339,14 @@
     touchManagedPtr _obj
     return result'
 
+data TimeZoneRefMethodInfo
+instance (signature ~ (m TimeZone), MonadIO m) => MethodInfo TimeZoneRefMethodInfo TimeZone signature where
+    overloadedMethod _ = timeZoneRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "TimeZone", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -336,12 +358,34 @@
 
 timeZoneUnref ::
     (MonadIO m) =>
-    TimeZone ->                             -- _obj
-    m ()
+    TimeZone                                -- _obj
+    -> m ()                                 -- result
 timeZoneUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_time_zone_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data TimeZoneUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TimeZoneUnrefMethodInfo TimeZone signature where
+    overloadedMethod _ = timeZoneUnref
+
+type family ResolveTimeZoneMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTimeZoneMethod "adjustTime" o = TimeZoneAdjustTimeMethodInfo
+    ResolveTimeZoneMethod "findInterval" o = TimeZoneFindIntervalMethodInfo
+    ResolveTimeZoneMethod "isDst" o = TimeZoneIsDstMethodInfo
+    ResolveTimeZoneMethod "ref" o = TimeZoneRefMethodInfo
+    ResolveTimeZoneMethod "unref" o = TimeZoneUnrefMethodInfo
+    ResolveTimeZoneMethod "getAbbreviation" o = TimeZoneGetAbbreviationMethodInfo
+    ResolveTimeZoneMethod "getOffset" o = TimeZoneGetOffsetMethodInfo
+    ResolveTimeZoneMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTimeZoneMethod t TimeZone, MethodInfo info TimeZone p) => IsLabelProxy t (TimeZone -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTimeZoneMethod t TimeZone, MethodInfo info TimeZone p) => IsLabel t (TimeZone -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/TimeZone.hs-boot b/GI/GLib/Structs/TimeZone.hs-boot
--- a/GI/GLib/Structs/TimeZone.hs-boot
+++ b/GI/GLib/Structs/TimeZone.hs-boot
@@ -9,3 +9,10 @@
 
 newtype TimeZone = TimeZone (ForeignPtr TimeZone)
 instance BoxedObject TimeZone where
+data TimeZoneAdjustTimeMethodInfo
+data TimeZoneFindIntervalMethodInfo
+data TimeZoneGetAbbreviationMethodInfo
+data TimeZoneGetOffsetMethodInfo
+data TimeZoneIsDstMethodInfo
+data TimeZoneRefMethodInfo
+data TimeZoneUnrefMethodInfo
diff --git a/GI/GLib/Structs/Timer.hs b/GI/GLib/Structs/Timer.hs
--- a/GI/GLib/Structs/Timer.hs
+++ b/GI/GLib/Structs/Timer.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,26 +18,32 @@
 
  -- * Methods
 -- ** timerContinue
+    TimerContinueMethodInfo                 ,
     timerContinue                           ,
 
 
 -- ** timerDestroy
+    TimerDestroyMethodInfo                  ,
     timerDestroy                            ,
 
 
 -- ** timerElapsed
+    TimerElapsedMethodInfo                  ,
     timerElapsed                            ,
 
 
 -- ** timerReset
+    TimerResetMethodInfo                    ,
     timerReset                              ,
 
 
 -- ** timerStart
+    TimerStartMethodInfo                    ,
     timerStart                              ,
 
 
 -- ** timerStop
+    TimerStopMethodInfo                     ,
     timerStop                               ,
 
 
@@ -60,9 +67,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -74,19 +80,22 @@
 
 timerContinue ::
     (MonadIO m) =>
-    Timer ->                                -- _obj
-    m ()
+    Timer                                   -- _obj
+    -> m ()                                 -- result
 timerContinue _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_timer_continue _obj'
     touchManagedPtr _obj
     return ()
 
+data TimerContinueMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TimerContinueMethodInfo Timer signature where
+    overloadedMethod _ = timerContinue
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -98,19 +107,22 @@
 
 timerDestroy ::
     (MonadIO m) =>
-    Timer ->                                -- _obj
-    m ()
+    Timer                                   -- _obj
+    -> m ()                                 -- result
 timerDestroy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_timer_destroy _obj'
     touchManagedPtr _obj
     return ()
 
+data TimerDestroyMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TimerDestroyMethodInfo Timer signature where
+    overloadedMethod _ = timerDestroy
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "microseconds", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -123,9 +135,9 @@
 
 timerElapsed ::
     (MonadIO m) =>
-    Timer ->                                -- _obj
-    Word64 ->                               -- microseconds
-    m Double
+    Timer                                   -- _obj
+    -> Word64                               -- microseconds
+    -> m Double                             -- result
 timerElapsed _obj microseconds = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_timer_elapsed _obj' microseconds
@@ -133,11 +145,14 @@
     touchManagedPtr _obj
     return result'
 
+data TimerElapsedMethodInfo
+instance (signature ~ (Word64 -> m Double), MonadIO m) => MethodInfo TimerElapsedMethodInfo Timer signature where
+    overloadedMethod _ = timerElapsed
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -149,19 +164,22 @@
 
 timerReset ::
     (MonadIO m) =>
-    Timer ->                                -- _obj
-    m ()
+    Timer                                   -- _obj
+    -> m ()                                 -- result
 timerReset _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_timer_reset _obj'
     touchManagedPtr _obj
     return ()
 
+data TimerResetMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TimerResetMethodInfo Timer signature where
+    overloadedMethod _ = timerReset
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -173,19 +191,22 @@
 
 timerStart ::
     (MonadIO m) =>
-    Timer ->                                -- _obj
-    m ()
+    Timer                                   -- _obj
+    -> m ()                                 -- result
 timerStart _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_timer_start _obj'
     touchManagedPtr _obj
     return ()
 
+data TimerStartMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TimerStartMethodInfo Timer signature where
+    overloadedMethod _ = timerStart
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Timer", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -197,12 +218,33 @@
 
 timerStop ::
     (MonadIO m) =>
-    Timer ->                                -- _obj
-    m ()
+    Timer                                   -- _obj
+    -> m ()                                 -- result
 timerStop _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_timer_stop _obj'
     touchManagedPtr _obj
     return ()
+
+data TimerStopMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TimerStopMethodInfo Timer signature where
+    overloadedMethod _ = timerStop
+
+type family ResolveTimerMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTimerMethod "continue" o = TimerContinueMethodInfo
+    ResolveTimerMethod "destroy" o = TimerDestroyMethodInfo
+    ResolveTimerMethod "elapsed" o = TimerElapsedMethodInfo
+    ResolveTimerMethod "reset" o = TimerResetMethodInfo
+    ResolveTimerMethod "start" o = TimerStartMethodInfo
+    ResolveTimerMethod "stop" o = TimerStopMethodInfo
+    ResolveTimerMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTimerMethod t Timer, MethodInfo info Timer p) => IsLabelProxy t (Timer -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTimerMethod t Timer, MethodInfo info Timer p) => IsLabel t (Timer -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Timer.hs-boot b/GI/GLib/Structs/Timer.hs-boot
--- a/GI/GLib/Structs/Timer.hs-boot
+++ b/GI/GLib/Structs/Timer.hs-boot
@@ -8,3 +8,9 @@
 import qualified Data.Map as Map
 
 newtype Timer = Timer (ForeignPtr Timer)
+data TimerContinueMethodInfo
+data TimerDestroyMethodInfo
+data TimerElapsedMethodInfo
+data TimerResetMethodInfo
+data TimerStartMethodInfo
+data TimerStopMethodInfo
diff --git a/GI/GLib/Structs/TrashStack.hs b/GI/GLib/Structs/TrashStack.hs
--- a/GI/GLib/Structs/TrashStack.hs
+++ b/GI/GLib/Structs/TrashStack.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -13,9 +14,21 @@
 
 -- * Exported types
     TrashStack(..)                          ,
+    newZeroTrashStack                       ,
     noTrashStack                            ,
 
 
+ -- * Methods
+-- ** trashStackHeight
+    trashStackHeight                        ,
+
+
+-- ** trashStackPush
+    trashStackPush                          ,
+
+
+
+
  -- * Properties
 -- ** Next
     trashStackReadNext                      ,
@@ -36,6 +49,10 @@
 import GI.GLib.Callbacks
 
 newtype TrashStack = TrashStack (ForeignPtr TrashStack)
+-- | Construct a `TrashStack` struct initialized to zero.
+newZeroTrashStack :: MonadIO m => m TrashStack
+newZeroTrashStack = liftIO $ callocBytes 8 >>= wrapPtr TrashStack
+
 noTrashStack :: Maybe TrashStack
 noTrashStack = Nothing
 
@@ -44,5 +61,64 @@
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr TrashStack)
     val' <- (newPtr 8 TrashStack) val
     return val'
+
+-- method TrashStack::height
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "stack_p", argType = TInterface "GLib" "TrashStack", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- stackP
+    -> m Word32                             -- result
+trashStackHeight stackP = liftIO $ do
+    let stackP' = unsafeManagedPtrGetPtr stackP
+    result <- g_trash_stack_height stackP'
+    touchManagedPtr stackP
+    return result
+
+-- method TrashStack::push
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "stack_p", argType = TInterface "GLib" "TrashStack", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data_p", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                              -- stackP
+    -> Ptr ()                               -- dataP
+    -> m ()                                 -- result
+trashStackPush stackP dataP = liftIO $ do
+    let stackP' = unsafeManagedPtrGetPtr stackP
+    g_trash_stack_push stackP' dataP
+    touchManagedPtr stackP
+    return ()
+
+type family ResolveTrashStackMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTrashStackMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTrashStackMethod t TrashStack, MethodInfo info TrashStack p) => IsLabelProxy t (TrashStack -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTrashStackMethod t TrashStack, MethodInfo info TrashStack p) => IsLabel t (TrashStack -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Tree.hs b/GI/GLib/Structs/Tree.hs
--- a/GI/GLib/Structs/Tree.hs
+++ b/GI/GLib/Structs/Tree.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -19,38 +20,47 @@
 
  -- * Methods
 -- ** treeDestroy
+    TreeDestroyMethodInfo                   ,
     treeDestroy                             ,
 
 
 -- ** treeHeight
+    TreeHeightMethodInfo                    ,
     treeHeight                              ,
 
 
 -- ** treeInsert
+    TreeInsertMethodInfo                    ,
     treeInsert                              ,
 
 
 -- ** treeLookupExtended
+    TreeLookupExtendedMethodInfo            ,
     treeLookupExtended                      ,
 
 
 -- ** treeNnodes
+    TreeNnodesMethodInfo                    ,
     treeNnodes                              ,
 
 
 -- ** treeRemove
+    TreeRemoveMethodInfo                    ,
     treeRemove                              ,
 
 
 -- ** treeReplace
+    TreeReplaceMethodInfo                   ,
     treeReplace                             ,
 
 
 -- ** treeSteal
+    TreeStealMethodInfo                     ,
     treeSteal                               ,
 
 
 -- ** treeUnref
+    TreeUnrefMethodInfo                     ,
     treeUnref                               ,
 
 
@@ -74,9 +84,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -88,19 +97,22 @@
 
 treeDestroy ::
     (MonadIO m) =>
-    Tree ->                                 -- _obj
-    m ()
+    Tree                                    -- _obj
+    -> m ()                                 -- result
 treeDestroy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_tree_destroy _obj'
     touchManagedPtr _obj
     return ()
 
+data TreeDestroyMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TreeDestroyMethodInfo Tree signature where
+    overloadedMethod _ = treeDestroy
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -112,19 +124,22 @@
 
 treeHeight ::
     (MonadIO m) =>
-    Tree ->                                 -- _obj
-    m Int32
+    Tree                                    -- _obj
+    -> m Int32                              -- result
 treeHeight _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_tree_height _obj'
     touchManagedPtr _obj
     return result
 
+data TreeHeightMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo TreeHeightMethodInfo Tree signature where
+    overloadedMethod _ = treeHeight
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -138,21 +153,24 @@
 
 treeInsert ::
     (MonadIO m) =>
-    Tree ->                                 -- _obj
-    Ptr () ->                               -- key
-    Ptr () ->                               -- value
-    m ()
+    Tree                                    -- _obj
+    -> Ptr ()                               -- key
+    -> Ptr ()                               -- value
+    -> m ()                                 -- result
 treeInsert _obj key value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_tree_insert _obj' key value
     touchManagedPtr _obj
     return ()
 
+data TreeInsertMethodInfo
+instance (signature ~ (Ptr () -> Ptr () -> m ()), MonadIO m) => MethodInfo TreeInsertMethodInfo Tree signature where
+    overloadedMethod _ = treeInsert
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lookup_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "orig_key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -167,23 +185,26 @@
 
 treeLookupExtended ::
     (MonadIO m) =>
-    Tree ->                                 -- _obj
-    Ptr () ->                               -- lookup_key
-    Ptr () ->                               -- orig_key
-    Ptr () ->                               -- value
-    m Bool
-treeLookupExtended _obj lookup_key orig_key value = liftIO $ do
+    Tree                                    -- _obj
+    -> Ptr ()                               -- lookupKey
+    -> Ptr ()                               -- origKey
+    -> Ptr ()                               -- value
+    -> m Bool                               -- result
+treeLookupExtended _obj lookupKey origKey value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- g_tree_lookup_extended _obj' lookup_key orig_key value
+    result <- g_tree_lookup_extended _obj' lookupKey origKey value
     let result' = (/= 0) result
     touchManagedPtr _obj
     return result'
 
+data TreeLookupExtendedMethodInfo
+instance (signature ~ (Ptr () -> Ptr () -> Ptr () -> m Bool), MonadIO m) => MethodInfo TreeLookupExtendedMethodInfo Tree signature where
+    overloadedMethod _ = treeLookupExtended
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -195,19 +216,22 @@
 
 treeNnodes ::
     (MonadIO m) =>
-    Tree ->                                 -- _obj
-    m Int32
+    Tree                                    -- _obj
+    -> m Int32                              -- result
 treeNnodes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_tree_nnodes _obj'
     touchManagedPtr _obj
     return result
 
+data TreeNnodesMethodInfo
+instance (signature ~ (m Int32), MonadIO m) => MethodInfo TreeNnodesMethodInfo Tree signature where
+    overloadedMethod _ = treeNnodes
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -220,9 +244,9 @@
 
 treeRemove ::
     (MonadIO m) =>
-    Tree ->                                 -- _obj
-    Ptr () ->                               -- key
-    m Bool
+    Tree                                    -- _obj
+    -> Ptr ()                               -- key
+    -> m Bool                               -- result
 treeRemove _obj key = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_tree_remove _obj' key
@@ -230,11 +254,14 @@
     touchManagedPtr _obj
     return result'
 
+data TreeRemoveMethodInfo
+instance (signature ~ (Ptr () -> m Bool), MonadIO m) => MethodInfo TreeRemoveMethodInfo Tree signature where
+    overloadedMethod _ = treeRemove
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -248,21 +275,24 @@
 
 treeReplace ::
     (MonadIO m) =>
-    Tree ->                                 -- _obj
-    Ptr () ->                               -- key
-    Ptr () ->                               -- value
-    m ()
+    Tree                                    -- _obj
+    -> Ptr ()                               -- key
+    -> Ptr ()                               -- value
+    -> m ()                                 -- result
 treeReplace _obj key value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_tree_replace _obj' key value
     touchManagedPtr _obj
     return ()
 
+data TreeReplaceMethodInfo
+instance (signature ~ (Ptr () -> Ptr () -> m ()), MonadIO m) => MethodInfo TreeReplaceMethodInfo Tree signature where
+    overloadedMethod _ = treeReplace
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -275,9 +305,9 @@
 
 treeSteal ::
     (MonadIO m) =>
-    Tree ->                                 -- _obj
-    Ptr () ->                               -- key
-    m Bool
+    Tree                                    -- _obj
+    -> Ptr ()                               -- key
+    -> m Bool                               -- result
 treeSteal _obj key = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_tree_steal _obj' key
@@ -285,11 +315,14 @@
     touchManagedPtr _obj
     return result'
 
+data TreeStealMethodInfo
+instance (signature ~ (Ptr () -> m Bool), MonadIO m) => MethodInfo TreeStealMethodInfo Tree signature where
+    overloadedMethod _ = treeSteal
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Tree", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -301,12 +334,36 @@
 
 treeUnref ::
     (MonadIO m) =>
-    Tree ->                                 -- _obj
-    m ()
+    Tree                                    -- _obj
+    -> m ()                                 -- result
 treeUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_tree_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data TreeUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TreeUnrefMethodInfo Tree signature where
+    overloadedMethod _ = treeUnref
+
+type family ResolveTreeMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTreeMethod "destroy" o = TreeDestroyMethodInfo
+    ResolveTreeMethod "height" o = TreeHeightMethodInfo
+    ResolveTreeMethod "insert" o = TreeInsertMethodInfo
+    ResolveTreeMethod "lookupExtended" o = TreeLookupExtendedMethodInfo
+    ResolveTreeMethod "nnodes" o = TreeNnodesMethodInfo
+    ResolveTreeMethod "remove" o = TreeRemoveMethodInfo
+    ResolveTreeMethod "replace" o = TreeReplaceMethodInfo
+    ResolveTreeMethod "steal" o = TreeStealMethodInfo
+    ResolveTreeMethod "unref" o = TreeUnrefMethodInfo
+    ResolveTreeMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTreeMethod t Tree, MethodInfo info Tree p) => IsLabelProxy t (Tree -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTreeMethod t Tree, MethodInfo info Tree p) => IsLabel t (Tree -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/Tree.hs-boot b/GI/GLib/Structs/Tree.hs-boot
--- a/GI/GLib/Structs/Tree.hs-boot
+++ b/GI/GLib/Structs/Tree.hs-boot
@@ -8,3 +8,12 @@
 import qualified Data.Map as Map
 
 newtype Tree = Tree (ForeignPtr Tree)
+data TreeDestroyMethodInfo
+data TreeHeightMethodInfo
+data TreeInsertMethodInfo
+data TreeLookupExtendedMethodInfo
+data TreeNnodesMethodInfo
+data TreeRemoveMethodInfo
+data TreeReplaceMethodInfo
+data TreeStealMethodInfo
+data TreeUnrefMethodInfo
diff --git a/GI/GLib/Structs/VariantBuilder.hs b/GI/GLib/Structs/VariantBuilder.hs
--- a/GI/GLib/Structs/VariantBuilder.hs
+++ b/GI/GLib/Structs/VariantBuilder.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -18,19 +19,23 @@
 
 -- * Exported types
     VariantBuilder(..)                      ,
+    newZeroVariantBuilder                   ,
     noVariantBuilder                        ,
 
 
  -- * Methods
 -- ** variantBuilderAddValue
+    VariantBuilderAddValueMethodInfo        ,
     variantBuilderAddValue                  ,
 
 
 -- ** variantBuilderClose
+    VariantBuilderCloseMethodInfo           ,
     variantBuilderClose                     ,
 
 
 -- ** variantBuilderEnd
+    VariantBuilderEndMethodInfo             ,
     variantBuilderEnd                       ,
 
 
@@ -39,14 +44,17 @@
 
 
 -- ** variantBuilderOpen
+    VariantBuilderOpenMethodInfo            ,
     variantBuilderOpen                      ,
 
 
 -- ** variantBuilderRef
+    VariantBuilderRefMethodInfo             ,
     variantBuilderRef                       ,
 
 
 -- ** variantBuilderUnref
+    VariantBuilderUnrefMethodInfo           ,
     variantBuilderUnref                     ,
 
 
@@ -71,14 +79,17 @@
 instance BoxedObject VariantBuilder where
     boxedType _ = c_g_variant_builder_get_type
 
+-- | Construct a `VariantBuilder` struct initialized to zero.
+newZeroVariantBuilder :: MonadIO m => m VariantBuilder
+newZeroVariantBuilder = liftIO $ callocBoxedBytes 128 >>= wrapBoxed VariantBuilder
+
 noVariantBuilder :: Maybe VariantBuilder
 noVariantBuilder = Nothing
 
 -- 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}]
+-- Args : [Arg {argCName = "type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -90,8 +101,8 @@
 
 variantBuilderNew ::
     (MonadIO m) =>
-    VariantType ->                          -- type
-    m VariantBuilder
+    VariantType                             -- type_
+    -> m VariantBuilder                     -- result
 variantBuilderNew type_ = liftIO $ do
     let type_' = unsafeManagedPtrGetPtr type_
     result <- g_variant_builder_new type_'
@@ -102,9 +113,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -117,9 +127,9 @@
 
 variantBuilderAddValue ::
     (MonadIO m) =>
-    VariantBuilder ->                       -- _obj
-    GVariant ->                             -- value
-    m ()
+    VariantBuilder                          -- _obj
+    -> GVariant                             -- value
+    -> m ()                                 -- result
 variantBuilderAddValue _obj value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let value' = unsafeManagedPtrGetPtr value
@@ -127,11 +137,14 @@
     touchManagedPtr _obj
     return ()
 
+data VariantBuilderAddValueMethodInfo
+instance (signature ~ (GVariant -> m ()), MonadIO m) => MethodInfo VariantBuilderAddValueMethodInfo VariantBuilder signature where
+    overloadedMethod _ = variantBuilderAddValue
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -143,19 +156,22 @@
 
 variantBuilderClose ::
     (MonadIO m) =>
-    VariantBuilder ->                       -- _obj
-    m ()
+    VariantBuilder                          -- _obj
+    -> m ()                                 -- result
 variantBuilderClose _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_variant_builder_close _obj'
     touchManagedPtr _obj
     return ()
 
+data VariantBuilderCloseMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo VariantBuilderCloseMethodInfo VariantBuilder signature where
+    overloadedMethod _ = variantBuilderClose
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -167,8 +183,8 @@
 
 variantBuilderEnd ::
     (MonadIO m) =>
-    VariantBuilder ->                       -- _obj
-    m GVariant
+    VariantBuilder                          -- _obj
+    -> m GVariant                           -- result
 variantBuilderEnd _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_builder_end _obj'
@@ -177,11 +193,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantBuilderEndMethodInfo
+instance (signature ~ (m GVariant), MonadIO m) => MethodInfo VariantBuilderEndMethodInfo VariantBuilder signature where
+    overloadedMethod _ = variantBuilderEnd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -194,9 +213,9 @@
 
 variantBuilderOpen ::
     (MonadIO m) =>
-    VariantBuilder ->                       -- _obj
-    VariantType ->                          -- type
-    m ()
+    VariantBuilder                          -- _obj
+    -> VariantType                          -- type_
+    -> m ()                                 -- result
 variantBuilderOpen _obj type_ = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let type_' = unsafeManagedPtrGetPtr type_
@@ -205,11 +224,14 @@
     touchManagedPtr type_
     return ()
 
+data VariantBuilderOpenMethodInfo
+instance (signature ~ (VariantType -> m ()), MonadIO m) => MethodInfo VariantBuilderOpenMethodInfo VariantBuilder signature where
+    overloadedMethod _ = variantBuilderOpen
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -221,8 +243,8 @@
 
 variantBuilderRef ::
     (MonadIO m) =>
-    VariantBuilder ->                       -- _obj
-    m VariantBuilder
+    VariantBuilder                          -- _obj
+    -> m VariantBuilder                     -- result
 variantBuilderRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_builder_ref _obj'
@@ -231,11 +253,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantBuilderRefMethodInfo
+instance (signature ~ (m VariantBuilder), MonadIO m) => MethodInfo VariantBuilderRefMethodInfo VariantBuilder signature where
+    overloadedMethod _ = variantBuilderRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantBuilder", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -247,12 +272,33 @@
 
 variantBuilderUnref ::
     (MonadIO m) =>
-    VariantBuilder ->                       -- _obj
-    m ()
+    VariantBuilder                          -- _obj
+    -> m ()                                 -- result
 variantBuilderUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_variant_builder_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data VariantBuilderUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo VariantBuilderUnrefMethodInfo VariantBuilder signature where
+    overloadedMethod _ = variantBuilderUnref
+
+type family ResolveVariantBuilderMethod (t :: Symbol) (o :: *) :: * where
+    ResolveVariantBuilderMethod "addValue" o = VariantBuilderAddValueMethodInfo
+    ResolveVariantBuilderMethod "close" o = VariantBuilderCloseMethodInfo
+    ResolveVariantBuilderMethod "end" o = VariantBuilderEndMethodInfo
+    ResolveVariantBuilderMethod "open" o = VariantBuilderOpenMethodInfo
+    ResolveVariantBuilderMethod "ref" o = VariantBuilderRefMethodInfo
+    ResolveVariantBuilderMethod "unref" o = VariantBuilderUnrefMethodInfo
+    ResolveVariantBuilderMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveVariantBuilderMethod t VariantBuilder, MethodInfo info VariantBuilder p) => IsLabelProxy t (VariantBuilder -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveVariantBuilderMethod t VariantBuilder, MethodInfo info VariantBuilder p) => IsLabel t (VariantBuilder -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/VariantBuilder.hs-boot b/GI/GLib/Structs/VariantBuilder.hs-boot
--- a/GI/GLib/Structs/VariantBuilder.hs-boot
+++ b/GI/GLib/Structs/VariantBuilder.hs-boot
@@ -9,3 +9,9 @@
 
 newtype VariantBuilder = VariantBuilder (ForeignPtr VariantBuilder)
 instance BoxedObject VariantBuilder where
+data VariantBuilderAddValueMethodInfo
+data VariantBuilderCloseMethodInfo
+data VariantBuilderEndMethodInfo
+data VariantBuilderOpenMethodInfo
+data VariantBuilderRefMethodInfo
+data VariantBuilderUnrefMethodInfo
diff --git a/GI/GLib/Structs/VariantDict.hs b/GI/GLib/Structs/VariantDict.hs
--- a/GI/GLib/Structs/VariantDict.hs
+++ b/GI/GLib/Structs/VariantDict.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -100,27 +101,33 @@
 
 -- * Exported types
     VariantDict(..)                         ,
+    newZeroVariantDict                      ,
     noVariantDict                           ,
 
 
  -- * Methods
 -- ** variantDictClear
+    VariantDictClearMethodInfo              ,
     variantDictClear                        ,
 
 
 -- ** variantDictContains
+    VariantDictContainsMethodInfo           ,
     variantDictContains                     ,
 
 
 -- ** variantDictEnd
+    VariantDictEndMethodInfo                ,
     variantDictEnd                          ,
 
 
 -- ** variantDictInsertValue
+    VariantDictInsertValueMethodInfo        ,
     variantDictInsertValue                  ,
 
 
 -- ** variantDictLookupValue
+    VariantDictLookupValueMethodInfo        ,
     variantDictLookupValue                  ,
 
 
@@ -129,14 +136,17 @@
 
 
 -- ** variantDictRef
+    VariantDictRefMethodInfo                ,
     variantDictRef                          ,
 
 
 -- ** variantDictRemove
+    VariantDictRemoveMethodInfo             ,
     variantDictRemove                       ,
 
 
 -- ** variantDictUnref
+    VariantDictUnrefMethodInfo              ,
     variantDictUnref                        ,
 
 
@@ -161,14 +171,17 @@
 instance BoxedObject VariantDict where
     boxedType _ = c_g_variant_dict_get_type
 
+-- | Construct a `VariantDict` struct initialized to zero.
+newZeroVariantDict :: MonadIO m => m VariantDict
+newZeroVariantDict = liftIO $ callocBoxedBytes 128 >>= wrapBoxed VariantDict
+
 noVariantDict :: Maybe VariantDict
 noVariantDict = Nothing
 
 -- 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}]
+-- Args : [Arg {argCName = "from_asv", argType = TVariant, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -180,24 +193,23 @@
 
 variantDictNew ::
     (MonadIO m) =>
-    Maybe (GVariant) ->                     -- from_asv
-    m VariantDict
-variantDictNew from_asv = liftIO $ do
-    maybeFrom_asv <- case from_asv of
+    Maybe (GVariant)                        -- fromAsv
+    -> m VariantDict                        -- result
+variantDictNew fromAsv = liftIO $ do
+    maybeFromAsv <- case fromAsv of
         Nothing -> return nullPtr
-        Just jFrom_asv -> do
-            let jFrom_asv' = unsafeManagedPtrGetPtr jFrom_asv
-            return jFrom_asv'
-    result <- g_variant_dict_new maybeFrom_asv
+        Just jFromAsv -> do
+            let jFromAsv' = unsafeManagedPtrGetPtr jFromAsv
+            return jFromAsv'
+    result <- g_variant_dict_new maybeFromAsv
     checkUnexpectedReturnNULL "g_variant_dict_new" result
     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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -209,19 +221,22 @@
 
 variantDictClear ::
     (MonadIO m) =>
-    VariantDict ->                          -- _obj
-    m ()
+    VariantDict                             -- _obj
+    -> m ()                                 -- result
 variantDictClear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_variant_dict_clear _obj'
     touchManagedPtr _obj
     return ()
 
+data VariantDictClearMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo VariantDictClearMethodInfo VariantDict signature where
+    overloadedMethod _ = variantDictClear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -234,9 +249,9 @@
 
 variantDictContains ::
     (MonadIO m) =>
-    VariantDict ->                          -- _obj
-    T.Text ->                               -- key
-    m Bool
+    VariantDict                             -- _obj
+    -> T.Text                               -- key
+    -> m Bool                               -- result
 variantDictContains _obj key = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     key' <- textToCString key
@@ -246,11 +261,14 @@
     freeMem key'
     return result'
 
+data VariantDictContainsMethodInfo
+instance (signature ~ (T.Text -> m Bool), MonadIO m) => MethodInfo VariantDictContainsMethodInfo VariantDict signature where
+    overloadedMethod _ = variantDictContains
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -262,8 +280,8 @@
 
 variantDictEnd ::
     (MonadIO m) =>
-    VariantDict ->                          -- _obj
-    m GVariant
+    VariantDict                             -- _obj
+    -> m GVariant                           -- result
 variantDictEnd _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_dict_end _obj'
@@ -272,11 +290,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantDictEndMethodInfo
+instance (signature ~ (m GVariant), MonadIO m) => MethodInfo VariantDictEndMethodInfo VariantDict signature where
+    overloadedMethod _ = variantDictEnd
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TVariant, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -290,10 +311,10 @@
 
 variantDictInsertValue ::
     (MonadIO m) =>
-    VariantDict ->                          -- _obj
-    T.Text ->                               -- key
-    GVariant ->                             -- value
-    m ()
+    VariantDict                             -- _obj
+    -> T.Text                               -- key
+    -> GVariant                             -- value
+    -> m ()                                 -- result
 variantDictInsertValue _obj key value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     key' <- textToCString key
@@ -303,11 +324,14 @@
     freeMem key'
     return ()
 
+data VariantDictInsertValueMethodInfo
+instance (signature ~ (T.Text -> GVariant -> m ()), MonadIO m) => MethodInfo VariantDictInsertValueMethodInfo VariantDict signature where
+    overloadedMethod _ = variantDictInsertValue
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "expected_type", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -321,31 +345,34 @@
 
 variantDictLookupValue ::
     (MonadIO m) =>
-    VariantDict ->                          -- _obj
-    T.Text ->                               -- key
-    Maybe (VariantType) ->                  -- expected_type
-    m GVariant
-variantDictLookupValue _obj key expected_type = liftIO $ do
+    VariantDict                             -- _obj
+    -> T.Text                               -- key
+    -> Maybe (VariantType)                  -- expectedType
+    -> m GVariant                           -- result
+variantDictLookupValue _obj key expectedType = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     key' <- textToCString key
-    maybeExpected_type <- case expected_type of
+    maybeExpectedType <- case expectedType 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
+        Just jExpectedType -> do
+            let jExpectedType' = unsafeManagedPtrGetPtr jExpectedType
+            return jExpectedType'
+    result <- g_variant_dict_lookup_value _obj' key' maybeExpectedType
     checkUnexpectedReturnNULL "g_variant_dict_lookup_value" result
     result' <- wrapGVariantPtr result
     touchManagedPtr _obj
-    whenJust expected_type touchManagedPtr
+    whenJust expectedType touchManagedPtr
     freeMem key'
     return result'
 
+data VariantDictLookupValueMethodInfo
+instance (signature ~ (T.Text -> Maybe (VariantType) -> m GVariant), MonadIO m) => MethodInfo VariantDictLookupValueMethodInfo VariantDict signature where
+    overloadedMethod _ = variantDictLookupValue
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -357,8 +384,8 @@
 
 variantDictRef ::
     (MonadIO m) =>
-    VariantDict ->                          -- _obj
-    m VariantDict
+    VariantDict                             -- _obj
+    -> m VariantDict                        -- result
 variantDictRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_dict_ref _obj'
@@ -367,11 +394,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantDictRefMethodInfo
+instance (signature ~ (m VariantDict), MonadIO m) => MethodInfo VariantDictRefMethodInfo VariantDict signature where
+    overloadedMethod _ = variantDictRef
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -384,9 +414,9 @@
 
 variantDictRemove ::
     (MonadIO m) =>
-    VariantDict ->                          -- _obj
-    T.Text ->                               -- key
-    m Bool
+    VariantDict                             -- _obj
+    -> T.Text                               -- key
+    -> m Bool                               -- result
 variantDictRemove _obj key = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     key' <- textToCString key
@@ -396,11 +426,14 @@
     freeMem key'
     return result'
 
+data VariantDictRemoveMethodInfo
+instance (signature ~ (T.Text -> m Bool), MonadIO m) => MethodInfo VariantDictRemoveMethodInfo VariantDict signature where
+    overloadedMethod _ = variantDictRemove
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantDict", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -412,12 +445,35 @@
 
 variantDictUnref ::
     (MonadIO m) =>
-    VariantDict ->                          -- _obj
-    m ()
+    VariantDict                             -- _obj
+    -> m ()                                 -- result
 variantDictUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_variant_dict_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data VariantDictUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo VariantDictUnrefMethodInfo VariantDict signature where
+    overloadedMethod _ = variantDictUnref
+
+type family ResolveVariantDictMethod (t :: Symbol) (o :: *) :: * where
+    ResolveVariantDictMethod "clear" o = VariantDictClearMethodInfo
+    ResolveVariantDictMethod "contains" o = VariantDictContainsMethodInfo
+    ResolveVariantDictMethod "end" o = VariantDictEndMethodInfo
+    ResolveVariantDictMethod "insertValue" o = VariantDictInsertValueMethodInfo
+    ResolveVariantDictMethod "lookupValue" o = VariantDictLookupValueMethodInfo
+    ResolveVariantDictMethod "ref" o = VariantDictRefMethodInfo
+    ResolveVariantDictMethod "remove" o = VariantDictRemoveMethodInfo
+    ResolveVariantDictMethod "unref" o = VariantDictUnrefMethodInfo
+    ResolveVariantDictMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveVariantDictMethod t VariantDict, MethodInfo info VariantDict p) => IsLabelProxy t (VariantDict -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveVariantDictMethod t VariantDict, MethodInfo info VariantDict p) => IsLabel t (VariantDict -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/VariantDict.hs-boot b/GI/GLib/Structs/VariantDict.hs-boot
--- a/GI/GLib/Structs/VariantDict.hs-boot
+++ b/GI/GLib/Structs/VariantDict.hs-boot
@@ -9,3 +9,11 @@
 
 newtype VariantDict = VariantDict (ForeignPtr VariantDict)
 instance BoxedObject VariantDict where
+data VariantDictClearMethodInfo
+data VariantDictContainsMethodInfo
+data VariantDictEndMethodInfo
+data VariantDictInsertValueMethodInfo
+data VariantDictLookupValueMethodInfo
+data VariantDictRefMethodInfo
+data VariantDictRemoveMethodInfo
+data VariantDictUnrefMethodInfo
diff --git a/GI/GLib/Structs/VariantType.hs b/GI/GLib/Structs/VariantType.hs
--- a/GI/GLib/Structs/VariantType.hs
+++ b/GI/GLib/Structs/VariantType.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -159,79 +160,102 @@
 
 
  -- * Methods
+-- ** variantTypeChecked_
+    variantTypeChecked_                     ,
+
+
 -- ** variantTypeCopy
+    VariantTypeCopyMethodInfo               ,
     variantTypeCopy                         ,
 
 
 -- ** variantTypeDupString
+    VariantTypeDupStringMethodInfo          ,
     variantTypeDupString                    ,
 
 
 -- ** variantTypeElement
+    VariantTypeElementMethodInfo            ,
     variantTypeElement                      ,
 
 
 -- ** variantTypeEqual
+    VariantTypeEqualMethodInfo              ,
     variantTypeEqual                        ,
 
 
 -- ** variantTypeFirst
+    VariantTypeFirstMethodInfo              ,
     variantTypeFirst                        ,
 
 
 -- ** variantTypeFree
+    VariantTypeFreeMethodInfo               ,
     variantTypeFree                         ,
 
 
 -- ** variantTypeGetStringLength
+    VariantTypeGetStringLengthMethodInfo    ,
     variantTypeGetStringLength              ,
 
 
 -- ** variantTypeHash
+    VariantTypeHashMethodInfo               ,
     variantTypeHash                         ,
 
 
 -- ** variantTypeIsArray
+    VariantTypeIsArrayMethodInfo            ,
     variantTypeIsArray                      ,
 
 
 -- ** variantTypeIsBasic
+    VariantTypeIsBasicMethodInfo            ,
     variantTypeIsBasic                      ,
 
 
 -- ** variantTypeIsContainer
+    VariantTypeIsContainerMethodInfo        ,
     variantTypeIsContainer                  ,
 
 
 -- ** variantTypeIsDefinite
+    VariantTypeIsDefiniteMethodInfo         ,
     variantTypeIsDefinite                   ,
 
 
 -- ** variantTypeIsDictEntry
+    VariantTypeIsDictEntryMethodInfo        ,
     variantTypeIsDictEntry                  ,
 
 
 -- ** variantTypeIsMaybe
+    VariantTypeIsMaybeMethodInfo            ,
     variantTypeIsMaybe                      ,
 
 
 -- ** variantTypeIsSubtypeOf
+    VariantTypeIsSubtypeOfMethodInfo        ,
     variantTypeIsSubtypeOf                  ,
 
 
 -- ** variantTypeIsTuple
+    VariantTypeIsTupleMethodInfo            ,
     variantTypeIsTuple                      ,
 
 
 -- ** variantTypeIsVariant
+    VariantTypeIsVariantMethodInfo          ,
     variantTypeIsVariant                    ,
 
 
 -- ** variantTypeKey
+    VariantTypeKeyMethodInfo                ,
     variantTypeKey                          ,
 
 
 -- ** variantTypeNItems
+    VariantTypeNItemsMethodInfo             ,
     variantTypeNItems                       ,
 
 
@@ -256,10 +280,20 @@
 
 
 -- ** variantTypeNext
+    VariantTypeNextMethodInfo               ,
     variantTypeNext                         ,
 
 
+-- ** variantTypeStringIsValid
+    variantTypeStringIsValid                ,
+
+
+-- ** variantTypeStringScan
+    variantTypeStringScan                   ,
+
+
 -- ** variantTypeValue
+    VariantTypeValueMethodInfo              ,
     variantTypeValue                        ,
 
 
@@ -289,9 +323,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "type_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -303,21 +336,20 @@
 
 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'
+    T.Text                                  -- typeString
+    -> m VariantType                        -- result
+variantTypeNew typeString = liftIO $ do
+    typeString' <- textToCString typeString
+    result <- g_variant_type_new typeString'
     checkUnexpectedReturnNULL "g_variant_type_new" result
     result' <- (wrapBoxed VariantType) result
-    freeMem type_string'
+    freeMem typeString'
     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}]
+-- Args : [Arg {argCName = "element", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -329,8 +361,8 @@
 
 variantTypeNewArray ::
     (MonadIO m) =>
-    VariantType ->                          -- element
-    m VariantType
+    VariantType                             -- element
+    -> m VariantType                        -- result
 variantTypeNewArray element = liftIO $ do
     let element' = unsafeManagedPtrGetPtr element
     result <- g_variant_type_new_array element'
@@ -341,9 +373,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "key", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -356,9 +387,9 @@
 
 variantTypeNewDictEntry ::
     (MonadIO m) =>
-    VariantType ->                          -- key
-    VariantType ->                          -- value
-    m VariantType
+    VariantType                             -- key
+    -> VariantType                          -- value
+    -> m VariantType                        -- result
 variantTypeNewDictEntry key value = liftIO $ do
     let key' = unsafeManagedPtrGetPtr key
     let value' = unsafeManagedPtrGetPtr value
@@ -371,9 +402,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "element", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -385,8 +415,8 @@
 
 variantTypeNewMaybe ::
     (MonadIO m) =>
-    VariantType ->                          -- element
-    m VariantType
+    VariantType                             -- element
+    -> m VariantType                        -- result
 variantTypeNewMaybe element = liftIO $ do
     let element' = unsafeManagedPtrGetPtr element
     result <- g_variant_type_new_maybe element'
@@ -397,9 +427,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "items", argType = TCArray False (-1) 1 (TInterface "GLib" "VariantType"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TInterface "GLib" "VariantType"
 -- throws : False
 -- Skip return : False
@@ -412,8 +441,8 @@
 
 variantTypeNewTuple ::
     (MonadIO m) =>
-    [VariantType] ->                        -- items
-    m VariantType
+    [VariantType]                           -- items
+    -> m VariantType                        -- result
 variantTypeNewTuple items = liftIO $ do
     let length_ = fromIntegral $ length items
     let items' = map unsafeManagedPtrGetPtr items
@@ -427,9 +456,8 @@
 
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -441,8 +469,8 @@
 
 variantTypeCopy ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m VariantType
+    VariantType                             -- _obj
+    -> m VariantType                        -- result
 variantTypeCopy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_copy _obj'
@@ -451,11 +479,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeCopyMethodInfo
+instance (signature ~ (m VariantType), MonadIO m) => MethodInfo VariantTypeCopyMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeCopy
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -467,8 +498,8 @@
 
 variantTypeDupString ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m T.Text
+    VariantType                             -- _obj
+    -> m T.Text                             -- result
 variantTypeDupString _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_dup_string _obj'
@@ -478,11 +509,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeDupStringMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo VariantTypeDupStringMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeDupString
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -494,8 +528,8 @@
 
 variantTypeElement ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m VariantType
+    VariantType                             -- _obj
+    -> m VariantType                        -- result
 variantTypeElement _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_element _obj'
@@ -504,11 +538,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeElementMethodInfo
+instance (signature ~ (m VariantType), MonadIO m) => MethodInfo VariantTypeElementMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeElement
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type2", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -521,9 +558,9 @@
 
 variantTypeEqual ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    VariantType ->                          -- type2
-    m Bool
+    VariantType                             -- _obj
+    -> VariantType                          -- type2
+    -> m Bool                               -- result
 variantTypeEqual _obj type2 = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let type2' = unsafeManagedPtrGetPtr type2
@@ -533,11 +570,14 @@
     touchManagedPtr type2
     return result'
 
+data VariantTypeEqualMethodInfo
+instance (signature ~ (VariantType -> m Bool), MonadIO m) => MethodInfo VariantTypeEqualMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeEqual
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -549,8 +589,8 @@
 
 variantTypeFirst ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m VariantType
+    VariantType                             -- _obj
+    -> m VariantType                        -- result
 variantTypeFirst _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_first _obj'
@@ -559,11 +599,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeFirstMethodInfo
+instance (signature ~ (m VariantType), MonadIO m) => MethodInfo VariantTypeFirstMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeFirst
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -575,19 +618,22 @@
 
 variantTypeFree ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m ()
+    VariantType                             -- _obj
+    -> m ()                                 -- result
 variantTypeFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_variant_type_free _obj'
     touchManagedPtr _obj
     return ()
 
+data VariantTypeFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo VariantTypeFreeMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeFree
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -599,19 +645,22 @@
 
 variantTypeGetStringLength ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Word64
+    VariantType                             -- _obj
+    -> m Word64                             -- result
 variantTypeGetStringLength _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_get_string_length _obj'
     touchManagedPtr _obj
     return result
 
+data VariantTypeGetStringLengthMethodInfo
+instance (signature ~ (m Word64), MonadIO m) => MethodInfo VariantTypeGetStringLengthMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeGetStringLength
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -623,19 +672,22 @@
 
 variantTypeHash ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Word32
+    VariantType                             -- _obj
+    -> m Word32                             -- result
 variantTypeHash _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_hash _obj'
     touchManagedPtr _obj
     return result
 
+data VariantTypeHashMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo VariantTypeHashMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeHash
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -647,8 +699,8 @@
 
 variantTypeIsArray ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Bool
+    VariantType                             -- _obj
+    -> m Bool                               -- result
 variantTypeIsArray _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_is_array _obj'
@@ -656,11 +708,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeIsArrayMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo VariantTypeIsArrayMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeIsArray
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -672,8 +727,8 @@
 
 variantTypeIsBasic ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Bool
+    VariantType                             -- _obj
+    -> m Bool                               -- result
 variantTypeIsBasic _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_is_basic _obj'
@@ -681,11 +736,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeIsBasicMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo VariantTypeIsBasicMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeIsBasic
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -697,8 +755,8 @@
 
 variantTypeIsContainer ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Bool
+    VariantType                             -- _obj
+    -> m Bool                               -- result
 variantTypeIsContainer _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_is_container _obj'
@@ -706,11 +764,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeIsContainerMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo VariantTypeIsContainerMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeIsContainer
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -722,8 +783,8 @@
 
 variantTypeIsDefinite ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Bool
+    VariantType                             -- _obj
+    -> m Bool                               -- result
 variantTypeIsDefinite _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_is_definite _obj'
@@ -731,11 +792,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeIsDefiniteMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo VariantTypeIsDefiniteMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeIsDefinite
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -747,8 +811,8 @@
 
 variantTypeIsDictEntry ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Bool
+    VariantType                             -- _obj
+    -> m Bool                               -- result
 variantTypeIsDictEntry _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_is_dict_entry _obj'
@@ -756,11 +820,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeIsDictEntryMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo VariantTypeIsDictEntryMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeIsDictEntry
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -772,8 +839,8 @@
 
 variantTypeIsMaybe ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Bool
+    VariantType                             -- _obj
+    -> m Bool                               -- result
 variantTypeIsMaybe _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_is_maybe _obj'
@@ -781,11 +848,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeIsMaybeMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo VariantTypeIsMaybeMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeIsMaybe
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "supertype", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -798,9 +868,9 @@
 
 variantTypeIsSubtypeOf ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    VariantType ->                          -- supertype
-    m Bool
+    VariantType                             -- _obj
+    -> VariantType                          -- supertype
+    -> m Bool                               -- result
 variantTypeIsSubtypeOf _obj supertype = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let supertype' = unsafeManagedPtrGetPtr supertype
@@ -810,11 +880,14 @@
     touchManagedPtr supertype
     return result'
 
+data VariantTypeIsSubtypeOfMethodInfo
+instance (signature ~ (VariantType -> m Bool), MonadIO m) => MethodInfo VariantTypeIsSubtypeOfMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeIsSubtypeOf
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -826,8 +899,8 @@
 
 variantTypeIsTuple ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Bool
+    VariantType                             -- _obj
+    -> m Bool                               -- result
 variantTypeIsTuple _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_is_tuple _obj'
@@ -835,11 +908,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeIsTupleMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo VariantTypeIsTupleMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeIsTuple
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -851,8 +927,8 @@
 
 variantTypeIsVariant ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Bool
+    VariantType                             -- _obj
+    -> m Bool                               -- result
 variantTypeIsVariant _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_is_variant _obj'
@@ -860,11 +936,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeIsVariantMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo VariantTypeIsVariantMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeIsVariant
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -876,8 +955,8 @@
 
 variantTypeKey ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m VariantType
+    VariantType                             -- _obj
+    -> m VariantType                        -- result
 variantTypeKey _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_key _obj'
@@ -886,11 +965,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeKeyMethodInfo
+instance (signature ~ (m VariantType), MonadIO m) => MethodInfo VariantTypeKeyMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeKey
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -902,19 +984,22 @@
 
 variantTypeNItems ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m Word64
+    VariantType                             -- _obj
+    -> m Word64                             -- result
 variantTypeNItems _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_n_items _obj'
     touchManagedPtr _obj
     return result
 
+data VariantTypeNItemsMethodInfo
+instance (signature ~ (m Word64), MonadIO m) => MethodInfo VariantTypeNItemsMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeNItems
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -926,8 +1011,8 @@
 
 variantTypeNext ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m VariantType
+    VariantType                             -- _obj
+    -> m VariantType                        -- result
 variantTypeNext _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_next _obj'
@@ -936,11 +1021,14 @@
     touchManagedPtr _obj
     return result'
 
+data VariantTypeNextMethodInfo
+instance (signature ~ (m VariantType), MonadIO m) => MethodInfo VariantTypeNextMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeNext
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "VariantType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -952,8 +1040,8 @@
 
 variantTypeValue ::
     (MonadIO m) =>
-    VariantType ->                          -- _obj
-    m VariantType
+    VariantType                             -- _obj
+    -> m VariantType                        -- result
 variantTypeValue _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_variant_type_value _obj'
@@ -961,5 +1049,128 @@
     result' <- (newBoxed VariantType) result
     touchManagedPtr _obj
     return result'
+
+data VariantTypeValueMethodInfo
+instance (signature ~ (m VariantType), MonadIO m) => MethodInfo VariantTypeValueMethodInfo VariantType signature where
+    overloadedMethod _ = variantTypeValue
+
+-- method VariantType::checked_
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "arg0", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                        -- result
+variantTypeChecked_ arg0 = liftIO $ do
+    arg0' <- textToCString arg0
+    result <- g_variant_type_checked_ arg0'
+    checkUnexpectedReturnNULL "g_variant_type_checked_" result
+    result' <- (newBoxed VariantType) result
+    freeMem arg0'
+    return result'
+
+-- method VariantType::string_is_valid
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "type_string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- 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                                  -- typeString
+    -> m Bool                               -- result
+variantTypeStringIsValid typeString = liftIO $ do
+    typeString' <- textToCString typeString
+    result <- g_variant_type_string_is_valid typeString'
+    let result' = (/= 0) result
+    freeMem typeString'
+    return result'
+
+-- method VariantType::string_scan
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "string", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "limit", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "endptr", argType = TBasicType TUTF8, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- 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)                      -- result
+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'')
+
+type family ResolveVariantTypeMethod (t :: Symbol) (o :: *) :: * where
+    ResolveVariantTypeMethod "copy" o = VariantTypeCopyMethodInfo
+    ResolveVariantTypeMethod "dupString" o = VariantTypeDupStringMethodInfo
+    ResolveVariantTypeMethod "element" o = VariantTypeElementMethodInfo
+    ResolveVariantTypeMethod "equal" o = VariantTypeEqualMethodInfo
+    ResolveVariantTypeMethod "first" o = VariantTypeFirstMethodInfo
+    ResolveVariantTypeMethod "free" o = VariantTypeFreeMethodInfo
+    ResolveVariantTypeMethod "hash" o = VariantTypeHashMethodInfo
+    ResolveVariantTypeMethod "isArray" o = VariantTypeIsArrayMethodInfo
+    ResolveVariantTypeMethod "isBasic" o = VariantTypeIsBasicMethodInfo
+    ResolveVariantTypeMethod "isContainer" o = VariantTypeIsContainerMethodInfo
+    ResolveVariantTypeMethod "isDefinite" o = VariantTypeIsDefiniteMethodInfo
+    ResolveVariantTypeMethod "isDictEntry" o = VariantTypeIsDictEntryMethodInfo
+    ResolveVariantTypeMethod "isMaybe" o = VariantTypeIsMaybeMethodInfo
+    ResolveVariantTypeMethod "isSubtypeOf" o = VariantTypeIsSubtypeOfMethodInfo
+    ResolveVariantTypeMethod "isTuple" o = VariantTypeIsTupleMethodInfo
+    ResolveVariantTypeMethod "isVariant" o = VariantTypeIsVariantMethodInfo
+    ResolveVariantTypeMethod "key" o = VariantTypeKeyMethodInfo
+    ResolveVariantTypeMethod "nItems" o = VariantTypeNItemsMethodInfo
+    ResolveVariantTypeMethod "next" o = VariantTypeNextMethodInfo
+    ResolveVariantTypeMethod "value" o = VariantTypeValueMethodInfo
+    ResolveVariantTypeMethod "getStringLength" o = VariantTypeGetStringLengthMethodInfo
+    ResolveVariantTypeMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveVariantTypeMethod t VariantType, MethodInfo info VariantType p) => IsLabelProxy t (VariantType -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveVariantTypeMethod t VariantType, MethodInfo info VariantType p) => IsLabel t (VariantType -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Structs/VariantType.hs-boot b/GI/GLib/Structs/VariantType.hs-boot
--- a/GI/GLib/Structs/VariantType.hs-boot
+++ b/GI/GLib/Structs/VariantType.hs-boot
@@ -9,3 +9,24 @@
 
 newtype VariantType = VariantType (ForeignPtr VariantType)
 instance BoxedObject VariantType where
+data VariantTypeCopyMethodInfo
+data VariantTypeDupStringMethodInfo
+data VariantTypeElementMethodInfo
+data VariantTypeEqualMethodInfo
+data VariantTypeFirstMethodInfo
+data VariantTypeFreeMethodInfo
+data VariantTypeGetStringLengthMethodInfo
+data VariantTypeHashMethodInfo
+data VariantTypeIsArrayMethodInfo
+data VariantTypeIsBasicMethodInfo
+data VariantTypeIsContainerMethodInfo
+data VariantTypeIsDefiniteMethodInfo
+data VariantTypeIsDictEntryMethodInfo
+data VariantTypeIsMaybeMethodInfo
+data VariantTypeIsSubtypeOfMethodInfo
+data VariantTypeIsTupleMethodInfo
+data VariantTypeIsVariantMethodInfo
+data VariantTypeKeyMethodInfo
+data VariantTypeNItemsMethodInfo
+data VariantTypeNextMethodInfo
+data VariantTypeValueMethodInfo
diff --git a/GI/GLib/Unions.hs b/GI/GLib/Unions.hs
--- a/GI/GLib/Unions.hs
+++ b/GI/GLib/Unions.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
diff --git a/GI/GLib/Unions/DoubleIEEE754.hs b/GI/GLib/Unions/DoubleIEEE754.hs
--- a/GI/GLib/Unions/DoubleIEEE754.hs
+++ b/GI/GLib/Unions/DoubleIEEE754.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -10,6 +11,7 @@
 
 -- * Exported types
     DoubleIEEE754(..)                       ,
+    newZeroDoubleIEEE754                    ,
     noDoubleIEEE754                         ,
 
 
@@ -33,6 +35,10 @@
 import GI.GLib.Callbacks
 
 newtype DoubleIEEE754 = DoubleIEEE754 (ForeignPtr DoubleIEEE754)
+-- | Construct a `DoubleIEEE754` struct initialized to zero.
+newZeroDoubleIEEE754 :: MonadIO m => m DoubleIEEE754
+newZeroDoubleIEEE754 = liftIO $ callocBytes 8 >>= wrapPtr DoubleIEEE754
+
 noDoubleIEEE754 :: Maybe DoubleIEEE754
 noDoubleIEEE754 = Nothing
 
@@ -41,5 +47,16 @@
     val <- peek (ptr `plusPtr` 0) :: IO CDouble
     let val' = realToFrac val
     return val'
+
+type family ResolveDoubleIEEE754Method (t :: Symbol) (o :: *) :: * where
+    ResolveDoubleIEEE754Method l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDoubleIEEE754Method t DoubleIEEE754, MethodInfo info DoubleIEEE754 p) => IsLabelProxy t (DoubleIEEE754 -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDoubleIEEE754Method t DoubleIEEE754, MethodInfo info DoubleIEEE754 p) => IsLabel t (DoubleIEEE754 -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Unions/FloatIEEE754.hs b/GI/GLib/Unions/FloatIEEE754.hs
--- a/GI/GLib/Unions/FloatIEEE754.hs
+++ b/GI/GLib/Unions/FloatIEEE754.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -10,6 +11,7 @@
 
 -- * Exported types
     FloatIEEE754(..)                        ,
+    newZeroFloatIEEE754                     ,
     noFloatIEEE754                          ,
 
 
@@ -33,6 +35,10 @@
 import GI.GLib.Callbacks
 
 newtype FloatIEEE754 = FloatIEEE754 (ForeignPtr FloatIEEE754)
+-- | Construct a `FloatIEEE754` struct initialized to zero.
+newZeroFloatIEEE754 :: MonadIO m => m FloatIEEE754
+newZeroFloatIEEE754 = liftIO $ callocBytes 4 >>= wrapPtr FloatIEEE754
+
 noFloatIEEE754 :: Maybe FloatIEEE754
 noFloatIEEE754 = Nothing
 
@@ -41,5 +47,16 @@
     val <- peek (ptr `plusPtr` 0) :: IO CFloat
     let val' = realToFrac val
     return val'
+
+type family ResolveFloatIEEE754Method (t :: Symbol) (o :: *) :: * where
+    ResolveFloatIEEE754Method l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveFloatIEEE754Method t FloatIEEE754, MethodInfo info FloatIEEE754 p) => IsLabelProxy t (FloatIEEE754 -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveFloatIEEE754Method t FloatIEEE754, MethodInfo info FloatIEEE754 p) => IsLabel t (FloatIEEE754 -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Unions/Mutex.hs b/GI/GLib/Unions/Mutex.hs
--- a/GI/GLib/Unions/Mutex.hs
+++ b/GI/GLib/Unions/Mutex.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -10,27 +11,33 @@
 
 -- * Exported types
     Mutex(..)                               ,
+    newZeroMutex                            ,
     noMutex                                 ,
 
 
  -- * Methods
 -- ** mutexClear
+    MutexClearMethodInfo                    ,
     mutexClear                              ,
 
 
 -- ** mutexInit
+    MutexInitMethodInfo                     ,
     mutexInit                               ,
 
 
 -- ** mutexLock
+    MutexLockMethodInfo                     ,
     mutexLock                               ,
 
 
 -- ** mutexTrylock
+    MutexTrylockMethodInfo                  ,
     mutexTrylock                            ,
 
 
 -- ** mutexUnlock
+    MutexUnlockMethodInfo                   ,
     mutexUnlock                             ,
 
 
@@ -49,14 +56,17 @@
 import GI.GLib.Callbacks
 
 newtype Mutex = Mutex (ForeignPtr Mutex)
+-- | Construct a `Mutex` struct initialized to zero.
+newZeroMutex :: MonadIO m => m Mutex
+newZeroMutex = liftIO $ callocBytes 8 >>= wrapPtr 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -68,19 +78,22 @@
 
 mutexClear ::
     (MonadIO m) =>
-    Mutex ->                                -- _obj
-    m ()
+    Mutex                                   -- _obj
+    -> m ()                                 -- result
 mutexClear _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_mutex_clear _obj'
     touchManagedPtr _obj
     return ()
 
+data MutexClearMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MutexClearMethodInfo Mutex signature where
+    overloadedMethod _ = mutexClear
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -92,19 +105,22 @@
 
 mutexInit ::
     (MonadIO m) =>
-    Mutex ->                                -- _obj
-    m ()
+    Mutex                                   -- _obj
+    -> m ()                                 -- result
 mutexInit _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_mutex_init _obj'
     touchManagedPtr _obj
     return ()
 
+data MutexInitMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MutexInitMethodInfo Mutex signature where
+    overloadedMethod _ = mutexInit
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -116,19 +132,22 @@
 
 mutexLock ::
     (MonadIO m) =>
-    Mutex ->                                -- _obj
-    m ()
+    Mutex                                   -- _obj
+    -> m ()                                 -- result
 mutexLock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_mutex_lock _obj'
     touchManagedPtr _obj
     return ()
 
+data MutexLockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MutexLockMethodInfo Mutex signature where
+    overloadedMethod _ = mutexLock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -140,8 +159,8 @@
 
 mutexTrylock ::
     (MonadIO m) =>
-    Mutex ->                                -- _obj
-    m Bool
+    Mutex                                   -- _obj
+    -> m Bool                               -- result
 mutexTrylock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_mutex_trylock _obj'
@@ -149,11 +168,14 @@
     touchManagedPtr _obj
     return result'
 
+data MutexTrylockMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo MutexTrylockMethodInfo Mutex signature where
+    overloadedMethod _ = mutexTrylock
+
 -- 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GLib" "Mutex", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, 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
@@ -165,12 +187,32 @@
 
 mutexUnlock ::
     (MonadIO m) =>
-    Mutex ->                                -- _obj
-    m ()
+    Mutex                                   -- _obj
+    -> m ()                                 -- result
 mutexUnlock _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_mutex_unlock _obj'
     touchManagedPtr _obj
     return ()
+
+data MutexUnlockMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo MutexUnlockMethodInfo Mutex signature where
+    overloadedMethod _ = mutexUnlock
+
+type family ResolveMutexMethod (t :: Symbol) (o :: *) :: * where
+    ResolveMutexMethod "clear" o = MutexClearMethodInfo
+    ResolveMutexMethod "init" o = MutexInitMethodInfo
+    ResolveMutexMethod "lock" o = MutexLockMethodInfo
+    ResolveMutexMethod "trylock" o = MutexTrylockMethodInfo
+    ResolveMutexMethod "unlock" o = MutexUnlockMethodInfo
+    ResolveMutexMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveMutexMethod t Mutex, MethodInfo info Mutex p) => IsLabelProxy t (Mutex -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveMutexMethod t Mutex, MethodInfo info Mutex p) => IsLabel t (Mutex -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GLib/Unions/Mutex.hs-boot b/GI/GLib/Unions/Mutex.hs-boot
--- a/GI/GLib/Unions/Mutex.hs-boot
+++ b/GI/GLib/Unions/Mutex.hs-boot
@@ -8,3 +8,8 @@
 import qualified Data.Map as Map
 
 newtype Mutex = Mutex (ForeignPtr Mutex)
+data MutexClearMethodInfo
+data MutexInitMethodInfo
+data MutexLockMethodInfo
+data MutexTrylockMethodInfo
+data MutexUnlockMethodInfo
diff --git a/GI/GLib/Unions/TokenValue.hs b/GI/GLib/Unions/TokenValue.hs
--- a/GI/GLib/Unions/TokenValue.hs
+++ b/GI/GLib/Unions/TokenValue.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -10,6 +11,7 @@
 
 -- * Exported types
     TokenValue(..)                          ,
+    newZeroTokenValue                       ,
     noTokenValue                            ,
 
 
@@ -77,6 +79,10 @@
 import GI.GLib.Callbacks
 
 newtype TokenValue = TokenValue (ForeignPtr TokenValue)
+-- | Construct a `TokenValue` struct initialized to zero.
+newZeroTokenValue :: MonadIO m => m TokenValue
+newZeroTokenValue = liftIO $ callocBytes 8 >>= wrapPtr TokenValue
+
 noTokenValue :: Maybe TokenValue
 noTokenValue = Nothing
 
@@ -143,5 +149,16 @@
 tokenValueReadVError s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO Word32
     return val
+
+type family ResolveTokenValueMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTokenValueMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTokenValueMethod t TokenValue, MethodInfo info TokenValue p) => IsLabelProxy t (TokenValue -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTokenValueMethod t TokenValue, MethodInfo info TokenValue p) => IsLabel t (TokenValue -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/gi-glib.cabal b/gi-glib.cabal
--- a/gi-glib.cabal
+++ b/gi-glib.cabal
@@ -1,6 +1,6 @@
 -- Autogenerated, do not edit.
 name:               gi-glib
-version:            0.2.46.12
+version:            0.2.46.13
 synopsis:           GLib bindings
 description:        Bindings for GLib, autogenerated by haskell-gi.
 homepage:           https://github.com/haskell-gi/haskell-gi
@@ -14,8 +14,8 @@
 
 library
     default-language:   Haskell2010
-    default-extensions: OverloadedStrings, NegativeLiterals, ConstraintKinds, TypeFamilies, MultiParamTypeClasses, KindSignatures, FlexibleInstances, UndecidableInstances, DataKinds, FlexibleContexts
-    other-extensions:   PatternSynonyms ScopedTypeVariables, ViewPatterns
+    default-extensions: 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
     exposed-modules:    GI.GLib.Types
                         GI.GLib
@@ -96,7 +96,7 @@
                         GI.GLib.Unions.TokenValue
     pkgconfig-depends:  glib-2.0 >= 2.46
     build-depends: base >= 4.7 && <5,
-        haskell-gi-base >= 0.12 && < 1,
+        haskell-gi-base >= 0.13 && < 1,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
