diff --git a/GI/GObject.hs b/GI/GObject.hs
--- a/GI/GObject.hs
+++ b/GI/GObject.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -16,6 +17,10 @@
     module GI.GObject.Unions                ,
 
 
+
+    module Data.GI.Base                     ,
+
+
     ) where
 
 import GI.GObject.Callbacks
@@ -37,6 +42,7 @@
 import GI.GObject.Types
 import GI.GObject.Callbacks
 
+import Data.GI.Base
 -- APIObject "ParamSpec" does not descend from GObject, it will be ignored.
 -- APIObject "ParamSpecBoolean" does not descend from GObject, it will be ignored.
 -- APIObject "ParamSpecBoxed" does not descend from GObject, it will be ignored.
diff --git a/GI/GObject/Callbacks.hs b/GI/GObject/Callbacks.hs
--- a/GI/GObject/Callbacks.hs
+++ b/GI/GObject/Callbacks.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -338,9 +339,9 @@
     Ptr () ->
     Ptr Object ->
     IO ()
-weakNotifyWrapper funptrptr _cb data_ where_the_object_was = do
-    where_the_object_was' <- (newObject Object) where_the_object_was
-    _cb  data_ where_the_object_was'
+weakNotifyWrapper funptrptr _cb data_ whereTheObjectWas = do
+    whereTheObjectWas' <- (newObject Object) whereTheObjectWas
+    _cb  data_ whereTheObjectWas'
     maybeReleaseFunPtr funptrptr
 
 -- callback ValueTransform
@@ -370,10 +371,10 @@
     Ptr GValue ->
     Ptr GValue ->
     IO ()
-valueTransformWrapper funptrptr _cb src_value dest_value = do
-    src_value' <- (newBoxed GValue) src_value
-    dest_value' <- (newBoxed GValue) dest_value
-    _cb  src_value' dest_value'
+valueTransformWrapper funptrptr _cb srcValue destValue = do
+    srcValue' <- (newBoxed GValue) srcValue
+    destValue' <- (newBoxed GValue) destValue
+    _cb  srcValue' destValue'
     maybeReleaseFunPtr funptrptr
 
 -- callback TypeValueTableValueInitFieldCallback
@@ -461,10 +462,10 @@
     Ptr GValue ->
     Ptr GValue ->
     IO ()
-typeValueTableValueCopyFieldCallbackWrapper funptrptr _cb src_value dest_value = do
-    src_value' <- (newBoxed GValue) src_value
-    dest_value' <- (newBoxed GValue) dest_value
-    _cb  src_value' dest_value'
+typeValueTableValueCopyFieldCallbackWrapper funptrptr _cb srcValue destValue = do
+    srcValue' <- (newBoxed GValue) srcValue
+    destValue' <- (newBoxed GValue) destValue
+    _cb  srcValue' destValue'
     maybeReleaseFunPtr funptrptr
 
 -- callback TypeValueTableLcopyValueFieldCallback
@@ -500,10 +501,10 @@
     Ptr TypeCValue ->
     Word32 ->
     IO CString
-typeValueTableLcopyValueFieldCallbackWrapper funptrptr _cb value n_collect_values collect_values collect_flags = do
+typeValueTableLcopyValueFieldCallbackWrapper funptrptr _cb value nCollectValues collectValues collectFlags = do
     value' <- (newBoxed GValue) value
-    collect_values' <- (newPtr 8 TypeCValue) collect_values
-    result <- _cb  value' n_collect_values collect_values' collect_flags
+    collectValues' <- (newPtr 8 TypeCValue) collectValues
+    result <- _cb  value' nCollectValues collectValues' collectFlags
     maybeReleaseFunPtr funptrptr
     result' <- textToCString result
     return result'
@@ -541,10 +542,10 @@
     Ptr TypeCValue ->
     Word32 ->
     IO CString
-typeValueTableCollectValueFieldCallbackWrapper funptrptr _cb value n_collect_values collect_values collect_flags = do
+typeValueTableCollectValueFieldCallbackWrapper funptrptr _cb value nCollectValues collectValues collectFlags = do
     value' <- (newBoxed GValue) value
-    collect_values' <- (newPtr 8 TypeCValue) collect_values
-    result <- _cb  value' n_collect_values collect_values' collect_flags
+    collectValues' <- (newPtr 8 TypeCValue) collectValues
+    result <- _cb  value' nCollectValues collectValues' collectFlags
     maybeReleaseFunPtr funptrptr
     result' <- textToCString result
     return result'
@@ -588,8 +589,8 @@
     Ptr () ->
     Ptr () ->
     IO ()
-typeInterfaceCheckFuncWrapper funptrptr _cb check_data g_iface = do
-    _cb  check_data g_iface
+typeInterfaceCheckFuncWrapper funptrptr _cb checkData gIface = do
+    _cb  checkData gIface
     maybeReleaseFunPtr funptrptr
 
 -- callback TypeClassCacheFunc
@@ -619,9 +620,9 @@
     Ptr () ->
     Ptr TypeClass ->
     IO CInt
-typeClassCacheFuncWrapper funptrptr _cb cache_data g_class = do
-    g_class' <- (newPtr 8 TypeClass) g_class
-    result <- _cb  cache_data g_class'
+typeClassCacheFuncWrapper funptrptr _cb cacheData gClass = do
+    gClass' <- (newPtr 8 TypeClass) gClass
+    result <- _cb  cacheData gClass'
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -656,10 +657,10 @@
     Ptr Object ->
     CInt ->
     IO ()
-toggleNotifyWrapper funptrptr _cb data_ object is_last_ref = do
+toggleNotifyWrapper funptrptr _cb data_ object isLastRef = do
     object' <- (newObject Object) object
-    let is_last_ref' = (/= 0) is_last_ref
-    _cb  data_ object' is_last_ref'
+    let isLastRef' = (/= 0) isLastRef
+    _cb  data_ object' isLastRef'
     maybeReleaseFunPtr funptrptr
 
 -- callback SignalEmissionHook
@@ -694,11 +695,11 @@
     Ptr GValue ->
     Ptr () ->
     IO CInt
-signalEmissionHookWrapper funptrptr _cb ihint n_param_values param_values data_ = do
+signalEmissionHookWrapper funptrptr _cb ihint nParamValues paramValues data_ = do
     ihint' <- (newPtr 12 SignalInvocationHint) ihint
-    param_values' <- (unpackBoxedArrayWithLength 24 n_param_values) param_values
-    param_values'' <- mapM (newBoxed GValue) param_values'
-    result <- _cb  ihint' param_values'' data_
+    paramValues' <- (unpackBoxedArrayWithLength 24 nParamValues) paramValues
+    paramValues'' <- mapM (newBoxed GValue) paramValues'
+    result <- _cb  ihint' paramValues'' data_
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -736,11 +737,11 @@
     Ptr GValue ->
     Ptr () ->
     IO CInt
-signalAccumulatorWrapper funptrptr _cb ihint return_accu handler_return data_ = do
+signalAccumulatorWrapper funptrptr _cb ihint returnAccu handlerReturn data_ = do
     ihint' <- (newPtr 12 SignalInvocationHint) ihint
-    return_accu' <- (newBoxed GValue) return_accu
-    handler_return' <- (newBoxed GValue) handler_return
-    result <- _cb  ihint' return_accu' handler_return' data_
+    returnAccu' <- (newBoxed GValue) returnAccu
+    handlerReturn' <- (newBoxed GValue) handlerReturn
+    result <- _cb  ihint' returnAccu' handlerReturn' data_
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -942,11 +943,11 @@
     Ptr GValue ->
     Ptr GParamSpec ->
     IO ()
-objectSetPropertyFuncWrapper funptrptr _cb object property_id value pspec = do
+objectSetPropertyFuncWrapper funptrptr _cb object propertyId value pspec = do
     object' <- (newObject Object) object
     value' <- (newBoxed GValue) value
     pspec' <- newGParamSpecFromPtr pspec
-    _cb  object' property_id value' pspec'
+    _cb  object' propertyId value' pspec'
     maybeReleaseFunPtr funptrptr
 
 -- callback ObjectGetPropertyFunc
@@ -982,11 +983,11 @@
     Ptr GValue ->
     Ptr GParamSpec ->
     IO ()
-objectGetPropertyFuncWrapper funptrptr _cb object property_id value pspec = do
+objectGetPropertyFuncWrapper funptrptr _cb object propertyId value pspec = do
     object' <- (newObject Object) object
     value' <- (newBoxed GValue) value
     pspec' <- newGParamSpecFromPtr pspec
-    _cb  object' property_id value' pspec'
+    _cb  object' propertyId value' pspec'
     maybeReleaseFunPtr funptrptr
 
 -- callback ObjectFinalizeFunc
@@ -1045,8 +1046,8 @@
     Ptr () ->
     Ptr () ->
     IO ()
-interfaceInitFuncWrapper funptrptr _cb g_iface iface_data = do
-    _cb  g_iface iface_data
+interfaceInitFuncWrapper funptrptr _cb gIface ifaceData = do
+    _cb  gIface ifaceData
     maybeReleaseFunPtr funptrptr
 
 -- callback InterfaceFinalizeFunc
@@ -1076,8 +1077,8 @@
     Ptr () ->
     Ptr () ->
     IO ()
-interfaceFinalizeFuncWrapper funptrptr _cb g_iface iface_data = do
-    _cb  g_iface iface_data
+interfaceFinalizeFuncWrapper funptrptr _cb gIface ifaceData = do
+    _cb  gIface ifaceData
     maybeReleaseFunPtr funptrptr
 
 -- callback InstanceInitFunc
@@ -1107,9 +1108,9 @@
     Ptr TypeInstance ->
     Ptr () ->
     IO ()
-instanceInitFuncWrapper funptrptr _cb instance_ g_class = do
+instanceInitFuncWrapper funptrptr _cb instance_ gClass = do
     instance_' <- (newPtr 8 TypeInstance) instance_
-    _cb  instance_' g_class
+    _cb  instance_' gClass
     maybeReleaseFunPtr funptrptr
 
 -- callback ClosureNotify
@@ -1183,11 +1184,11 @@
     Ptr () ->
     Ptr () ->
     IO ()
-closureMarshalFieldCallbackWrapper funptrptr _cb closure return_value n_param_values param_values invocation_hint marshal_data = do
+closureMarshalFieldCallbackWrapper funptrptr _cb closure returnValue nParamValues paramValues invocationHint marshalData = do
     closure' <- (newBoxed Closure) closure
-    return_value' <- (newBoxed GValue) return_value
-    param_values' <- (newBoxed GValue) param_values
-    _cb  closure' return_value' n_param_values param_values' invocation_hint marshal_data
+    returnValue' <- (newBoxed GValue) returnValue
+    paramValues' <- (newBoxed GValue) paramValues
+    _cb  closure' returnValue' nParamValues paramValues' invocationHint marshalData
     maybeReleaseFunPtr funptrptr
 
 -- callback ClassInitFunc
@@ -1217,8 +1218,8 @@
     Ptr () ->
     Ptr () ->
     IO ()
-classInitFuncWrapper funptrptr _cb g_class class_data = do
-    _cb  g_class class_data
+classInitFuncWrapper funptrptr _cb gClass classData = do
+    _cb  gClass classData
     maybeReleaseFunPtr funptrptr
 
 -- callback ClassFinalizeFunc
@@ -1248,8 +1249,8 @@
     Ptr () ->
     Ptr () ->
     IO ()
-classFinalizeFuncWrapper funptrptr _cb g_class class_data = do
-    _cb  g_class class_data
+classFinalizeFuncWrapper funptrptr _cb gClass classData = do
+    _cb  gClass classData
     maybeReleaseFunPtr funptrptr
 
 -- callback Callback
@@ -1337,11 +1338,11 @@
     Ptr GValue ->
     Ptr () ->
     IO CInt
-bindingTransformFuncWrapper funptrptr _cb binding from_value to_value _ = do
+bindingTransformFuncWrapper funptrptr _cb binding fromValue toValue _ = do
     binding' <- (newObject Binding) binding
-    from_value' <- (newBoxed GValue) from_value
-    to_value' <- (newBoxed GValue) to_value
-    result <- _cb  binding' from_value' to_value'
+    fromValue' <- (newBoxed GValue) fromValue
+    toValue' <- (newBoxed GValue) toValue
+    result <- _cb  binding' fromValue' toValue'
     maybeReleaseFunPtr funptrptr
     let result' = (fromIntegral . fromEnum) result
     return result'
@@ -1370,8 +1371,8 @@
     BaseInitFunc ->
     Ptr () ->
     IO ()
-baseInitFuncWrapper funptrptr _cb g_class = do
-    _cb  g_class
+baseInitFuncWrapper funptrptr _cb gClass = do
+    _cb  gClass
     maybeReleaseFunPtr funptrptr
 
 -- callback BaseFinalizeFunc
@@ -1398,8 +1399,8 @@
     BaseFinalizeFunc ->
     Ptr () ->
     IO ()
-baseFinalizeFuncWrapper funptrptr _cb g_class = do
-    _cb  g_class
+baseFinalizeFuncWrapper funptrptr _cb gClass = do
+    _cb  gClass
     maybeReleaseFunPtr funptrptr
 
 
diff --git a/GI/GObject/Constants.hs b/GI/GObject/Constants.hs
--- a/GI/GObject/Constants.hs
+++ b/GI/GObject/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/GObject/Flags.hs b/GI/GObject/Flags.hs
--- a/GI/GObject/Flags.hs
+++ b/GI/GObject/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/GObject/Functions.hs b/GI/GObject/Functions.hs
--- a/GI/GObject/Functions.hs
+++ b/GI/GObject/Functions.hs
@@ -1,5229 +1,3816 @@
 
-{- |
-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.GObject.Functions
-    ( 
-
- -- * Methods
--- ** boxedCopy
-    boxedCopy                               ,
-
-
--- ** boxedFree
-    boxedFree                               ,
-
-
--- ** cclosureMarshalBOOLEAN_BOXEDBOXED
-    cclosureMarshalBOOLEAN_BOXEDBOXED       ,
-
-
--- ** cclosureMarshalBOOLEAN_FLAGS
-    cclosureMarshalBOOLEAN_FLAGS            ,
-
-
--- ** cclosureMarshalGeneric
-    cclosureMarshalGeneric                  ,
-
-
--- ** cclosureMarshalSTRING_OBJECTPOINTER
-    cclosureMarshalSTRING_OBJECTPOINTER     ,
-
-
--- ** cclosureMarshalVOID_BOOLEAN
-    cclosureMarshalVOID_BOOLEAN             ,
-
-
--- ** cclosureMarshalVOID_BOXED
-    cclosureMarshalVOID_BOXED               ,
-
-
--- ** cclosureMarshalVOID_CHAR
-    cclosureMarshalVOID_CHAR                ,
-
-
--- ** cclosureMarshalVOID_DOUBLE
-    cclosureMarshalVOID_DOUBLE              ,
-
-
--- ** cclosureMarshalVOID_ENUM
-    cclosureMarshalVOID_ENUM                ,
-
-
--- ** cclosureMarshalVOID_FLAGS
-    cclosureMarshalVOID_FLAGS               ,
-
-
--- ** cclosureMarshalVOID_FLOAT
-    cclosureMarshalVOID_FLOAT               ,
-
-
--- ** cclosureMarshalVOID_INT
-    cclosureMarshalVOID_INT                 ,
-
-
--- ** cclosureMarshalVOID_LONG
-    cclosureMarshalVOID_LONG                ,
-
-
--- ** cclosureMarshalVOID_OBJECT
-    cclosureMarshalVOID_OBJECT              ,
-
-
--- ** cclosureMarshalVOID_PARAM
-    cclosureMarshalVOID_PARAM               ,
-
-
--- ** cclosureMarshalVOID_POINTER
-    cclosureMarshalVOID_POINTER             ,
-
-
--- ** cclosureMarshalVOID_STRING
-    cclosureMarshalVOID_STRING              ,
-
-
--- ** cclosureMarshalVOID_UCHAR
-    cclosureMarshalVOID_UCHAR               ,
-
-
--- ** cclosureMarshalVOID_UINT
-    cclosureMarshalVOID_UINT                ,
-
-
--- ** cclosureMarshalVOID_UINTPOINTER
-    cclosureMarshalVOID_UINTPOINTER         ,
-
-
--- ** cclosureMarshalVOID_ULONG
-    cclosureMarshalVOID_ULONG               ,
-
-
--- ** cclosureMarshalVOID_VARIANT
-    cclosureMarshalVOID_VARIANT             ,
-
-
--- ** cclosureMarshalVOID_VOID
-    cclosureMarshalVOID_VOID                ,
-
-
--- ** enumCompleteTypeInfo
-    enumCompleteTypeInfo                    ,
-
-
--- ** enumGetValue
-    enumGetValue                            ,
-
-
--- ** enumGetValueByName
-    enumGetValueByName                      ,
-
-
--- ** enumGetValueByNick
-    enumGetValueByNick                      ,
-
-
--- ** enumRegisterStatic
-    enumRegisterStatic                      ,
-
-
--- ** flagsCompleteTypeInfo
-    flagsCompleteTypeInfo                   ,
-
-
--- ** flagsGetFirstValue
-    flagsGetFirstValue                      ,
-
-
--- ** flagsGetValueByName
-    flagsGetValueByName                     ,
-
-
--- ** flagsGetValueByNick
-    flagsGetValueByNick                     ,
-
-
--- ** flagsRegisterStatic
-    flagsRegisterStatic                     ,
-
-
--- ** gtypeGetType
-    gtypeGetType                            ,
-
-
--- ** paramSpecBoolean
-    paramSpecBoolean                        ,
-
-
--- ** paramSpecBoxed
-    paramSpecBoxed                          ,
-
-
--- ** paramSpecChar
-    paramSpecChar                           ,
-
-
--- ** paramSpecDouble
-    paramSpecDouble                         ,
-
-
--- ** paramSpecEnum
-    paramSpecEnum                           ,
-
-
--- ** paramSpecFlags
-    paramSpecFlags                          ,
-
-
--- ** paramSpecFloat
-    paramSpecFloat                          ,
-
-
--- ** paramSpecGtype
-    paramSpecGtype                          ,
-
-
--- ** paramSpecInt
-    paramSpecInt                            ,
-
-
--- ** paramSpecInt64
-    paramSpecInt64                          ,
-
-
--- ** paramSpecLong
-    paramSpecLong                           ,
-
-
--- ** paramSpecObject
-    paramSpecObject                         ,
-
-
--- ** paramSpecParam
-    paramSpecParam                          ,
-
-
--- ** paramSpecPointer
-    paramSpecPointer                        ,
-
-
--- ** paramSpecPoolNew
-    paramSpecPoolNew                        ,
-
-
--- ** paramSpecString
-    paramSpecString                         ,
-
-
--- ** paramSpecUchar
-    paramSpecUchar                          ,
-
-
--- ** paramSpecUint
-    paramSpecUint                           ,
-
-
--- ** paramSpecUint64
-    paramSpecUint64                         ,
-
-
--- ** paramSpecUlong
-    paramSpecUlong                          ,
-
-
--- ** paramSpecUnichar
-    paramSpecUnichar                        ,
-
-
--- ** paramSpecVariant
-    paramSpecVariant                        ,
-
-
--- ** paramTypeRegisterStatic
-    paramTypeRegisterStatic                 ,
-
-
--- ** paramValueConvert
-    paramValueConvert                       ,
-
-
--- ** paramValueDefaults
-    paramValueDefaults                      ,
-
-
--- ** paramValueSetDefault
-    paramValueSetDefault                    ,
-
-
--- ** paramValueValidate
-    paramValueValidate                      ,
-
-
--- ** paramValuesCmp
-    paramValuesCmp                          ,
-
-
--- ** pointerTypeRegisterStatic
-    pointerTypeRegisterStatic               ,
-
-
--- ** signalAccumulatorFirstWins
-    signalAccumulatorFirstWins              ,
-
-
--- ** signalAccumulatorTrueHandled
-    signalAccumulatorTrueHandled            ,
-
-
--- ** signalAddEmissionHook
-    signalAddEmissionHook                   ,
-
-
--- ** signalChainFromOverridden
-    signalChainFromOverridden               ,
-
-
--- ** signalConnectClosure
-    signalConnectClosure                    ,
-
-
--- ** signalConnectClosureById
-    signalConnectClosureById                ,
-
-
--- ** signalEmitv
-    signalEmitv                             ,
-
-
--- ** signalGetInvocationHint
-    signalGetInvocationHint                 ,
-
-
--- ** signalHandlerBlock
-    signalHandlerBlock                      ,
-
-
--- ** signalHandlerDisconnect
-    signalHandlerDisconnect                 ,
-
-
--- ** signalHandlerFind
-    signalHandlerFind                       ,
-
-
--- ** signalHandlerIsConnected
-    signalHandlerIsConnected                ,
-
-
--- ** signalHandlerUnblock
-    signalHandlerUnblock                    ,
-
-
--- ** signalHandlersBlockMatched
-    signalHandlersBlockMatched              ,
-
-
--- ** signalHandlersDestroy
-    signalHandlersDestroy                   ,
-
-
--- ** signalHandlersDisconnectMatched
-    signalHandlersDisconnectMatched         ,
-
-
--- ** signalHandlersUnblockMatched
-    signalHandlersUnblockMatched            ,
-
-
--- ** signalHasHandlerPending
-    signalHasHandlerPending                 ,
-
-
--- ** signalListIds
-    signalListIds                           ,
-
-
--- ** signalLookup
-    signalLookup                            ,
-
-
--- ** signalName
-    signalName                              ,
-
-
--- ** signalOverrideClassClosure
-    signalOverrideClassClosure              ,
-
-
--- ** signalParseName
-    signalParseName                         ,
-
-
--- ** signalQuery
-    signalQuery                             ,
-
-
--- ** signalRemoveEmissionHook
-    signalRemoveEmissionHook                ,
-
-
--- ** signalStopEmission
-    signalStopEmission                      ,
-
-
--- ** signalStopEmissionByName
-    signalStopEmissionByName                ,
-
-
--- ** signalTypeCclosureNew
-    signalTypeCclosureNew                   ,
-
-
--- ** sourceSetClosure
-    sourceSetClosure                        ,
-
-
--- ** sourceSetDummyCallback
-    sourceSetDummyCallback                  ,
-
-
--- ** strdupValueContents
-    strdupValueContents                     ,
-
-
--- ** typeAddClassPrivate
-    typeAddClassPrivate                     ,
-
-
--- ** typeAddInstancePrivate
-    typeAddInstancePrivate                  ,
-
-
--- ** typeAddInterfaceDynamic
-    typeAddInterfaceDynamic                 ,
-
-
--- ** typeAddInterfaceStatic
-    typeAddInterfaceStatic                  ,
-
-
--- ** typeCheckClassIsA
-    typeCheckClassIsA                       ,
-
-
--- ** typeCheckInstance
-    typeCheckInstance                       ,
-
-
--- ** typeCheckInstanceIsA
-    typeCheckInstanceIsA                    ,
-
-
--- ** typeCheckInstanceIsFundamentallyA
-    typeCheckInstanceIsFundamentallyA       ,
-
-
--- ** typeCheckIsValueType
-    typeCheckIsValueType                    ,
-
-
--- ** typeCheckValue
-    typeCheckValue                          ,
-
-
--- ** typeCheckValueHolds
-    typeCheckValueHolds                     ,
-
-
--- ** typeChildren
-    typeChildren                            ,
-
-
--- ** typeClassAddPrivate
-    typeClassAddPrivate                     ,
-
-
--- ** typeClassAdjustPrivateOffset
-    typeClassAdjustPrivateOffset            ,
-
-
--- ** typeClassPeek
-    typeClassPeek                           ,
-
-
--- ** typeClassPeekStatic
-    typeClassPeekStatic                     ,
-
-
--- ** typeClassRef
-    typeClassRef                            ,
-
-
--- ** typeDefaultInterfacePeek
-    typeDefaultInterfacePeek                ,
-
-
--- ** typeDefaultInterfaceRef
-    typeDefaultInterfaceRef                 ,
-
-
--- ** typeDefaultInterfaceUnref
-    typeDefaultInterfaceUnref               ,
-
-
--- ** typeDepth
-    typeDepth                               ,
-
-
--- ** typeEnsure
-    typeEnsure                              ,
-
-
--- ** typeFreeInstance
-    typeFreeInstance                        ,
-
-
--- ** typeFromName
-    typeFromName                            ,
-
-
--- ** typeFundamental
-    typeFundamental                         ,
-
-
--- ** typeFundamentalNext
-    typeFundamentalNext                     ,
-
-
--- ** typeGetInstanceCount
-    typeGetInstanceCount                    ,
-
-
--- ** typeGetQdata
-    typeGetQdata                            ,
-
-
--- ** typeGetTypeRegistrationSerial
-    typeGetTypeRegistrationSerial           ,
-
-
--- ** typeInit
-    typeInit                                ,
-
-
--- ** typeInitWithDebugFlags
-    typeInitWithDebugFlags                  ,
-
-
--- ** typeInterfaceAddPrerequisite
-    typeInterfaceAddPrerequisite            ,
-
-
--- ** typeInterfacePeek
-    typeInterfacePeek                       ,
-
-
--- ** typeInterfacePrerequisites
-    typeInterfacePrerequisites              ,
-
-
--- ** typeInterfaces
-    typeInterfaces                          ,
-
-
--- ** typeIsA
-    typeIsA                                 ,
-
-
--- ** typeName
-    typeName                                ,
-
-
--- ** typeNameFromClass
-    typeNameFromClass                       ,
-
-
--- ** typeNameFromInstance
-    typeNameFromInstance                    ,
-
-
--- ** typeNextBase
-    typeNextBase                            ,
-
-
--- ** typeParent
-    typeParent                              ,
-
-
--- ** typeQname
-    typeQname                               ,
-
-
--- ** typeQuery
-    typeQuery                               ,
-
-
--- ** typeRegisterDynamic
-    typeRegisterDynamic                     ,
-
-
--- ** typeRegisterFundamental
-    typeRegisterFundamental                 ,
-
-
--- ** typeRegisterStatic
-    typeRegisterStatic                      ,
-
-
--- ** typeSetQdata
-    typeSetQdata                            ,
-
-
--- ** typeTestFlags
-    typeTestFlags                           ,
-
-
--- ** valueTypeCompatible
-    valueTypeCompatible                     ,
-
-
--- ** valueTypeTransformable
-    valueTypeTransformable                  ,
-
-
-
-
-    ) 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.GObject.Types
-import GI.GObject.Callbacks
-import qualified GI.GLib as GLib
-
--- function g_value_type_transformable
--- Args : [Arg {argName = "src_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "src_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_value_type_transformable" g_value_type_transformable :: 
-    CGType ->                               -- src_type : TBasicType TGType
-    CGType ->                               -- dest_type : TBasicType TGType
-    IO CInt
-
-
-valueTypeTransformable ::
-    (MonadIO m) =>
-    GType ->                                -- src_type
-    GType ->                                -- dest_type
-    m Bool
-valueTypeTransformable src_type dest_type = liftIO $ do
-    let src_type' = gtypeToCGType src_type
-    let dest_type' = gtypeToCGType dest_type
-    result <- g_value_type_transformable src_type' dest_type'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_value_type_compatible
--- Args : [Arg {argName = "src_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "src_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_value_type_compatible" g_value_type_compatible :: 
-    CGType ->                               -- src_type : TBasicType TGType
-    CGType ->                               -- dest_type : TBasicType TGType
-    IO CInt
-
-
-valueTypeCompatible ::
-    (MonadIO m) =>
-    GType ->                                -- src_type
-    GType ->                                -- dest_type
-    m Bool
-valueTypeCompatible src_type dest_type = liftIO $ do
-    let src_type' = gtypeToCGType src_type
-    let dest_type' = gtypeToCGType dest_type
-    result <- g_value_type_compatible src_type' dest_type'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_type_test_flags
--- Args : [Arg {argName = "type", argType = TBasicType TGType, 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 = "type", argType = TBasicType TGType, 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 TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_test_flags" g_type_test_flags :: 
-    CGType ->                               -- type : TBasicType TGType
-    Word32 ->                               -- flags : TBasicType TUInt32
-    IO CInt
-
-
-typeTestFlags ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    Word32 ->                               -- flags
-    m Bool
-typeTestFlags type_ flags = liftIO $ do
-    let type_' = gtypeToCGType type_
-    result <- g_type_test_flags type_' flags
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_type_set_qdata
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "quark", 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}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "quark", 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}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_set_qdata" g_type_set_qdata :: 
-    CGType ->                               -- type : TBasicType TGType
-    Word32 ->                               -- quark : TBasicType TUInt32
-    Ptr () ->                               -- data : TBasicType TVoid
-    IO ()
-
-
-typeSetQdata ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    Word32 ->                               -- quark
-    Ptr () ->                               -- data
-    m ()
-typeSetQdata type_ quark data_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    g_type_set_qdata type_' quark data_
-    return ()
-
-
--- function g_type_register_static
--- Args : [Arg {argName = "parent_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "parent_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_register_static" g_type_register_static :: 
-    CGType ->                               -- parent_type : TBasicType TGType
-    CString ->                              -- type_name : TBasicType TUTF8
-    Ptr TypeInfo ->                         -- info : TInterface "GObject" "TypeInfo"
-    CUInt ->                                -- flags : TInterface "GObject" "TypeFlags"
-    IO CGType
-
-
-typeRegisterStatic ::
-    (MonadIO m) =>
-    GType ->                                -- parent_type
-    T.Text ->                               -- type_name
-    TypeInfo ->                             -- info
-    [TypeFlags] ->                          -- flags
-    m GType
-typeRegisterStatic parent_type type_name info flags = liftIO $ do
-    let parent_type' = gtypeToCGType parent_type
-    type_name' <- textToCString type_name
-    let info' = unsafeManagedPtrGetPtr info
-    let flags' = gflagsToWord flags
-    result <- g_type_register_static parent_type' type_name' info' flags'
-    let result' = GType result
-    touchManagedPtr info
-    freeMem type_name'
-    return result'
-
-
--- function g_type_register_fundamental
--- Args : [Arg {argName = "type_id", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "finfo", argType = TInterface "GObject" "TypeFundamentalInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type_id", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "finfo", argType = TInterface "GObject" "TypeFundamentalInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_register_fundamental" g_type_register_fundamental :: 
-    CGType ->                               -- type_id : TBasicType TGType
-    CString ->                              -- type_name : TBasicType TUTF8
-    Ptr TypeInfo ->                         -- info : TInterface "GObject" "TypeInfo"
-    Ptr TypeFundamentalInfo ->              -- finfo : TInterface "GObject" "TypeFundamentalInfo"
-    CUInt ->                                -- flags : TInterface "GObject" "TypeFlags"
-    IO CGType
-
-
-typeRegisterFundamental ::
-    (MonadIO m) =>
-    GType ->                                -- type_id
-    T.Text ->                               -- type_name
-    TypeInfo ->                             -- info
-    TypeFundamentalInfo ->                  -- finfo
-    [TypeFlags] ->                          -- flags
-    m GType
-typeRegisterFundamental type_id type_name info finfo flags = liftIO $ do
-    let type_id' = gtypeToCGType type_id
-    type_name' <- textToCString type_name
-    let info' = unsafeManagedPtrGetPtr info
-    let finfo' = unsafeManagedPtrGetPtr finfo
-    let flags' = gflagsToWord flags
-    result <- g_type_register_fundamental type_id' type_name' info' finfo' flags'
-    let result' = GType result
-    touchManagedPtr info
-    touchManagedPtr finfo
-    freeMem type_name'
-    return result'
-
-
--- function g_type_register_dynamic
--- Args : [Arg {argName = "parent_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "plugin", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "parent_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "plugin", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_register_dynamic" g_type_register_dynamic :: 
-    CGType ->                               -- parent_type : TBasicType TGType
-    CString ->                              -- type_name : TBasicType TUTF8
-    Ptr TypePlugin ->                       -- plugin : TInterface "GObject" "TypePlugin"
-    CUInt ->                                -- flags : TInterface "GObject" "TypeFlags"
-    IO CGType
-
-
-typeRegisterDynamic ::
-    (MonadIO m, TypePluginK a) =>
-    GType ->                                -- parent_type
-    T.Text ->                               -- type_name
-    a ->                                    -- plugin
-    [TypeFlags] ->                          -- flags
-    m GType
-typeRegisterDynamic parent_type type_name plugin flags = liftIO $ do
-    let parent_type' = gtypeToCGType parent_type
-    type_name' <- textToCString type_name
-    let plugin' = unsafeManagedPtrCastPtr plugin
-    let flags' = gflagsToWord flags
-    result <- g_type_register_dynamic parent_type' type_name' plugin' flags'
-    let result' = GType result
-    touchManagedPtr plugin
-    freeMem type_name'
-    return result'
-
-
--- function g_type_query
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "query", argType = TInterface "GObject" "TypeQuery", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_query" g_type_query :: 
-    CGType ->                               -- type : TBasicType TGType
-    Ptr TypeQuery ->                        -- query : TInterface "GObject" "TypeQuery"
-    IO ()
-
-
-typeQuery ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m (TypeQuery)
-typeQuery type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    query <- callocBytes 24 :: IO (Ptr TypeQuery)
-    g_type_query type_' query
-    query' <- (wrapPtr TypeQuery) query
-    return query'
-
-
--- function g_type_qname
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_qname" g_type_qname :: 
-    CGType ->                               -- type : TBasicType TGType
-    IO Word32
-
-
-typeQname ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m Word32
-typeQname type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    result <- g_type_qname type_'
-    return result
-
-
--- function g_type_parent
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_parent" g_type_parent :: 
-    CGType ->                               -- type : TBasicType TGType
-    IO CGType
-
-
-typeParent ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m GType
-typeParent type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    result <- g_type_parent type_'
-    let result' = GType result
-    return result'
-
-
--- function g_type_next_base
--- Args : [Arg {argName = "leaf_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "leaf_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_next_base" g_type_next_base :: 
-    CGType ->                               -- leaf_type : TBasicType TGType
-    CGType ->                               -- root_type : TBasicType TGType
-    IO CGType
-
-
-typeNextBase ::
-    (MonadIO m) =>
-    GType ->                                -- leaf_type
-    GType ->                                -- root_type
-    m GType
-typeNextBase leaf_type root_type = liftIO $ do
-    let leaf_type' = gtypeToCGType leaf_type
-    let root_type' = gtypeToCGType root_type
-    result <- g_type_next_base leaf_type' root_type'
-    let result' = GType result
-    return result'
-
-
--- function g_type_name_from_instance
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_name_from_instance" g_type_name_from_instance :: 
-    Ptr TypeInstance ->                     -- instance : TInterface "GObject" "TypeInstance"
-    IO CString
-
-
-typeNameFromInstance ::
-    (MonadIO m) =>
-    TypeInstance ->                         -- instance
-    m T.Text
-typeNameFromInstance instance_ = liftIO $ do
-    let instance_' = unsafeManagedPtrGetPtr instance_
-    result <- g_type_name_from_instance instance_'
-    checkUnexpectedReturnNULL "g_type_name_from_instance" result
-    result' <- cstringToText result
-    touchManagedPtr instance_
-    return result'
-
-
--- function g_type_name_from_class
--- Args : [Arg {argName = "g_class", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "g_class", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_name_from_class" g_type_name_from_class :: 
-    Ptr TypeClass ->                        -- g_class : TInterface "GObject" "TypeClass"
-    IO CString
-
-
-typeNameFromClass ::
-    (MonadIO m) =>
-    TypeClass ->                            -- g_class
-    m T.Text
-typeNameFromClass g_class = liftIO $ do
-    let g_class' = unsafeManagedPtrGetPtr g_class
-    result <- g_type_name_from_class g_class'
-    checkUnexpectedReturnNULL "g_type_name_from_class" result
-    result' <- cstringToText result
-    touchManagedPtr g_class
-    return result'
-
-
--- function g_type_name
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_name" g_type_name :: 
-    CGType ->                               -- type : TBasicType TGType
-    IO CString
-
-
-typeName ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m T.Text
-typeName type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    result <- g_type_name type_'
-    checkUnexpectedReturnNULL "g_type_name" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_type_is_a
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_a_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_a_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_is_a" g_type_is_a :: 
-    CGType ->                               -- type : TBasicType TGType
-    CGType ->                               -- is_a_type : TBasicType TGType
-    IO CInt
-
-
-typeIsA ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    GType ->                                -- is_a_type
-    m Bool
-typeIsA type_ is_a_type = liftIO $ do
-    let type_' = gtypeToCGType type_
-    let is_a_type' = gtypeToCGType is_a_type
-    result <- g_type_is_a type_' is_a_type'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_type_interfaces
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_interfaces", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "n_interfaces", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TCArray False (-1) 1 (TBasicType TGType)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_interfaces" g_type_interfaces :: 
-    CGType ->                               -- type : TBasicType TGType
-    Ptr Word32 ->                           -- n_interfaces : TBasicType TUInt32
-    IO (Ptr CGType)
-
-
-typeInterfaces ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m [GType]
-typeInterfaces type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    n_interfaces <- allocMem :: IO (Ptr Word32)
-    result <- g_type_interfaces type_' n_interfaces
-    n_interfaces' <- peek n_interfaces
-    checkUnexpectedReturnNULL "g_type_interfaces" result
-    result' <- (unpackMapStorableArrayWithLength GType n_interfaces') result
-    freeMem result
-    freeMem n_interfaces
-    return result'
-
-
--- function g_type_interface_prerequisites
--- Args : [Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_prerequisites", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "n_prerequisites", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TCArray False (-1) 1 (TBasicType TGType)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_interface_prerequisites" g_type_interface_prerequisites :: 
-    CGType ->                               -- interface_type : TBasicType TGType
-    Ptr Word32 ->                           -- n_prerequisites : TBasicType TUInt32
-    IO (Ptr CGType)
-
-
-typeInterfacePrerequisites ::
-    (MonadIO m) =>
-    GType ->                                -- interface_type
-    m [GType]
-typeInterfacePrerequisites interface_type = liftIO $ do
-    let interface_type' = gtypeToCGType interface_type
-    n_prerequisites <- allocMem :: IO (Ptr Word32)
-    result <- g_type_interface_prerequisites interface_type' n_prerequisites
-    n_prerequisites' <- peek n_prerequisites
-    checkUnexpectedReturnNULL "g_type_interface_prerequisites" result
-    result' <- (unpackMapStorableArrayWithLength GType n_prerequisites') result
-    freeMem result
-    freeMem n_prerequisites
-    return result'
-
-
--- function g_type_interface_peek
--- Args : [Arg {argName = "instance_class", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "iface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance_class", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "iface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "TypeInterface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_interface_peek" g_type_interface_peek :: 
-    Ptr TypeClass ->                        -- instance_class : TInterface "GObject" "TypeClass"
-    CGType ->                               -- iface_type : TBasicType TGType
-    IO (Ptr TypeInterface)
-
-
-typeInterfacePeek ::
-    (MonadIO m) =>
-    TypeClass ->                            -- instance_class
-    GType ->                                -- iface_type
-    m TypeInterface
-typeInterfacePeek instance_class iface_type = liftIO $ do
-    let instance_class' = unsafeManagedPtrGetPtr instance_class
-    let iface_type' = gtypeToCGType iface_type
-    result <- g_type_interface_peek instance_class' iface_type'
-    checkUnexpectedReturnNULL "g_type_interface_peek" result
-    result' <- (newPtr 16 TypeInterface) result
-    touchManagedPtr instance_class
-    return result'
-
-
--- function g_type_interface_get_plugin
--- XXX Could not generate function g_type_interface_get_plugin
--- Error was : Bad introspection data: "Wrapping not a GObject with no copy..."
-
--- function g_type_interface_add_prerequisite
--- Args : [Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "prerequisite_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "prerequisite_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_interface_add_prerequisite" g_type_interface_add_prerequisite :: 
-    CGType ->                               -- interface_type : TBasicType TGType
-    CGType ->                               -- prerequisite_type : TBasicType TGType
-    IO ()
-
-
-typeInterfaceAddPrerequisite ::
-    (MonadIO m) =>
-    GType ->                                -- interface_type
-    GType ->                                -- prerequisite_type
-    m ()
-typeInterfaceAddPrerequisite interface_type prerequisite_type = liftIO $ do
-    let interface_type' = gtypeToCGType interface_type
-    let prerequisite_type' = gtypeToCGType prerequisite_type
-    g_type_interface_add_prerequisite interface_type' prerequisite_type'
-    return ()
-
-
--- function g_type_init_with_debug_flags
--- Args : [Arg {argName = "debug_flags", argType = TInterface "GObject" "TypeDebugFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "debug_flags", argType = TInterface "GObject" "TypeDebugFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_init_with_debug_flags" g_type_init_with_debug_flags :: 
-    CUInt ->                                -- debug_flags : TInterface "GObject" "TypeDebugFlags"
-    IO ()
-
-{-# DEPRECATED typeInitWithDebugFlags ["(Since version 2.36)","the type system is now initialised automatically"]#-}
-typeInitWithDebugFlags ::
-    (MonadIO m) =>
-    [TypeDebugFlags] ->                     -- debug_flags
-    m ()
-typeInitWithDebugFlags debug_flags = liftIO $ do
-    let debug_flags' = gflagsToWord debug_flags
-    g_type_init_with_debug_flags debug_flags'
-    return ()
-
-
--- function g_type_init
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_init" g_type_init :: 
-    IO ()
-
-{-# DEPRECATED typeInit ["(Since version 2.36)","the type system is now initialised automatically"]#-}
-typeInit ::
-    (MonadIO m) =>
-    m ()
-typeInit  = liftIO $ do
-    g_type_init
-    return ()
-
-
--- function g_type_get_type_registration_serial
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_get_type_registration_serial" g_type_get_type_registration_serial :: 
-    IO Word32
-
-
-typeGetTypeRegistrationSerial ::
-    (MonadIO m) =>
-    m Word32
-typeGetTypeRegistrationSerial  = liftIO $ do
-    result <- g_type_get_type_registration_serial
-    return result
-
-
--- function g_type_get_qdata
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "quark", 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_type_get_qdata" g_type_get_qdata :: 
-    CGType ->                               -- type : TBasicType TGType
-    Word32 ->                               -- quark : TBasicType TUInt32
-    IO ()
-
-
-typeGetQdata ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    Word32 ->                               -- quark
-    m ()
-typeGetQdata type_ quark = liftIO $ do
-    let type_' = gtypeToCGType type_
-    g_type_get_qdata type_' quark
-    return ()
-
-
--- function g_type_get_plugin
--- XXX Could not generate function g_type_get_plugin
--- Error was : Bad introspection data: "Wrapping not a GObject with no copy..."
-
--- function g_type_get_instance_count
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_get_instance_count" g_type_get_instance_count :: 
-    CGType ->                               -- type : TBasicType TGType
-    IO Int32
-
-
-typeGetInstanceCount ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m Int32
-typeGetInstanceCount type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    result <- g_type_get_instance_count type_'
-    return result
-
-
--- function g_type_fundamental_next
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_fundamental_next" g_type_fundamental_next :: 
-    IO CGType
-
-
-typeFundamentalNext ::
-    (MonadIO m) =>
-    m GType
-typeFundamentalNext  = liftIO $ do
-    result <- g_type_fundamental_next
-    let result' = GType result
-    return result'
-
-
--- function g_type_fundamental
--- Args : [Arg {argName = "type_id", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type_id", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_fundamental" g_type_fundamental :: 
-    CGType ->                               -- type_id : TBasicType TGType
-    IO CGType
-
-
-typeFundamental ::
-    (MonadIO m) =>
-    GType ->                                -- type_id
-    m GType
-typeFundamental type_id = liftIO $ do
-    let type_id' = gtypeToCGType type_id
-    result <- g_type_fundamental type_id'
-    let result' = GType result
-    return result'
-
-
--- function g_type_from_name
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_from_name" g_type_from_name :: 
-    CString ->                              -- name : TBasicType TUTF8
-    IO CGType
-
-
-typeFromName ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    m GType
-typeFromName name = liftIO $ do
-    name' <- textToCString name
-    result <- g_type_from_name name'
-    let result' = GType result
-    freeMem name'
-    return result'
-
-
--- function g_type_free_instance
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_free_instance" g_type_free_instance :: 
-    Ptr TypeInstance ->                     -- instance : TInterface "GObject" "TypeInstance"
-    IO ()
-
-
-typeFreeInstance ::
-    (MonadIO m) =>
-    TypeInstance ->                         -- instance
-    m ()
-typeFreeInstance instance_ = liftIO $ do
-    let instance_' = unsafeManagedPtrGetPtr instance_
-    g_type_free_instance instance_'
-    touchManagedPtr instance_
-    return ()
-
-
--- function g_type_ensure
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_ensure" g_type_ensure :: 
-    CGType ->                               -- type : TBasicType TGType
-    IO ()
-
-
-typeEnsure ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m ()
-typeEnsure type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    g_type_ensure type_'
-    return ()
-
-
--- function g_type_depth
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_depth" g_type_depth :: 
-    CGType ->                               -- type : TBasicType TGType
-    IO Word32
-
-
-typeDepth ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m Word32
-typeDepth type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    result <- g_type_depth type_'
-    return result
-
-
--- function g_type_default_interface_unref
--- Args : [Arg {argName = "g_iface", argType = TInterface "GObject" "TypeInterface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "g_iface", argType = TInterface "GObject" "TypeInterface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_default_interface_unref" g_type_default_interface_unref :: 
-    Ptr TypeInterface ->                    -- g_iface : TInterface "GObject" "TypeInterface"
-    IO ()
-
-
-typeDefaultInterfaceUnref ::
-    (MonadIO m) =>
-    TypeInterface ->                        -- g_iface
-    m ()
-typeDefaultInterfaceUnref g_iface = liftIO $ do
-    let g_iface' = unsafeManagedPtrGetPtr g_iface
-    g_type_default_interface_unref g_iface'
-    touchManagedPtr g_iface
-    return ()
-
-
--- function g_type_default_interface_ref
--- Args : [Arg {argName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "TypeInterface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_default_interface_ref" g_type_default_interface_ref :: 
-    CGType ->                               -- g_type : TBasicType TGType
-    IO (Ptr TypeInterface)
-
-
-typeDefaultInterfaceRef ::
-    (MonadIO m) =>
-    GType ->                                -- g_type
-    m TypeInterface
-typeDefaultInterfaceRef g_type = liftIO $ do
-    let g_type' = gtypeToCGType g_type
-    result <- g_type_default_interface_ref g_type'
-    checkUnexpectedReturnNULL "g_type_default_interface_ref" result
-    result' <- (newPtr 16 TypeInterface) result
-    return result'
-
-
--- function g_type_default_interface_peek
--- Args : [Arg {argName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "TypeInterface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_default_interface_peek" g_type_default_interface_peek :: 
-    CGType ->                               -- g_type : TBasicType TGType
-    IO (Ptr TypeInterface)
-
-
-typeDefaultInterfacePeek ::
-    (MonadIO m) =>
-    GType ->                                -- g_type
-    m TypeInterface
-typeDefaultInterfacePeek g_type = liftIO $ do
-    let g_type' = gtypeToCGType g_type
-    result <- g_type_default_interface_peek g_type'
-    checkUnexpectedReturnNULL "g_type_default_interface_peek" result
-    result' <- (newPtr 16 TypeInterface) result
-    return result'
-
-
--- function g_type_class_ref
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "TypeClass"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_class_ref" g_type_class_ref :: 
-    CGType ->                               -- type : TBasicType TGType
-    IO (Ptr TypeClass)
-
-
-typeClassRef ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m TypeClass
-typeClassRef type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    result <- g_type_class_ref type_'
-    checkUnexpectedReturnNULL "g_type_class_ref" result
-    result' <- (newPtr 8 TypeClass) result
-    return result'
-
-
--- function g_type_class_peek_static
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "TypeClass"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_class_peek_static" g_type_class_peek_static :: 
-    CGType ->                               -- type : TBasicType TGType
-    IO (Ptr TypeClass)
-
-
-typeClassPeekStatic ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m TypeClass
-typeClassPeekStatic type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    result <- g_type_class_peek_static type_'
-    checkUnexpectedReturnNULL "g_type_class_peek_static" result
-    result' <- (newPtr 8 TypeClass) result
-    return result'
-
-
--- function g_type_class_peek
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "TypeClass"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_class_peek" g_type_class_peek :: 
-    CGType ->                               -- type : TBasicType TGType
-    IO (Ptr TypeClass)
-
-
-typeClassPeek ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m TypeClass
-typeClassPeek type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    result <- g_type_class_peek type_'
-    checkUnexpectedReturnNULL "g_type_class_peek" result
-    result' <- (newPtr 8 TypeClass) result
-    return result'
-
-
--- function g_type_class_adjust_private_offset
--- Args : [Arg {argName = "g_class", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "private_size_or_offset", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "g_class", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "private_size_or_offset", 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_type_class_adjust_private_offset" g_type_class_adjust_private_offset :: 
-    Ptr () ->                               -- g_class : TBasicType TVoid
-    Int32 ->                                -- private_size_or_offset : TBasicType TInt32
-    IO ()
-
-
-typeClassAdjustPrivateOffset ::
-    (MonadIO m) =>
-    Ptr () ->                               -- g_class
-    Int32 ->                                -- private_size_or_offset
-    m ()
-typeClassAdjustPrivateOffset g_class private_size_or_offset = liftIO $ do
-    g_type_class_adjust_private_offset g_class private_size_or_offset
-    return ()
-
-
--- function g_type_class_add_private
--- Args : [Arg {argName = "g_class", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "private_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "g_class", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "private_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_class_add_private" g_type_class_add_private :: 
-    Ptr () ->                               -- g_class : TBasicType TVoid
-    Word64 ->                               -- private_size : TBasicType TUInt64
-    IO ()
-
-
-typeClassAddPrivate ::
-    (MonadIO m) =>
-    Ptr () ->                               -- g_class
-    Word64 ->                               -- private_size
-    m ()
-typeClassAddPrivate g_class private_size = liftIO $ do
-    g_type_class_add_private g_class private_size
-    return ()
-
-
--- function g_type_children
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_children", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "n_children", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TCArray False (-1) 1 (TBasicType TGType)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_children" g_type_children :: 
-    CGType ->                               -- type : TBasicType TGType
-    Ptr Word32 ->                           -- n_children : TBasicType TUInt32
-    IO (Ptr CGType)
-
-
-typeChildren ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m [GType]
-typeChildren type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    n_children <- allocMem :: IO (Ptr Word32)
-    result <- g_type_children type_' n_children
-    n_children' <- peek n_children
-    checkUnexpectedReturnNULL "g_type_children" result
-    result' <- (unpackMapStorableArrayWithLength GType n_children') result
-    freeMem result
-    freeMem n_children
-    return result'
-
-
--- function g_type_check_value_holds
--- Args : [Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_check_value_holds" g_type_check_value_holds :: 
-    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
-    CGType ->                               -- type : TBasicType TGType
-    IO CInt
-
-
-typeCheckValueHolds ::
-    (MonadIO m) =>
-    GValue ->                               -- value
-    GType ->                                -- type
-    m Bool
-typeCheckValueHolds value type_ = liftIO $ do
-    let value' = unsafeManagedPtrGetPtr value
-    let type_' = gtypeToCGType type_
-    result <- g_type_check_value_holds value' type_'
-    let result' = (/= 0) result
-    touchManagedPtr value
-    return result'
-
-
--- function g_type_check_value
--- Args : [Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_check_value" g_type_check_value :: 
-    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
-    IO CInt
-
-
-typeCheckValue ::
-    (MonadIO m) =>
-    GValue ->                               -- value
-    m Bool
-typeCheckValue value = liftIO $ do
-    let value' = unsafeManagedPtrGetPtr value
-    result <- g_type_check_value value'
-    let result' = (/= 0) result
-    touchManagedPtr value
-    return result'
-
-
--- function g_type_check_is_value_type
--- Args : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_check_is_value_type" g_type_check_is_value_type :: 
-    CGType ->                               -- type : TBasicType TGType
-    IO CInt
-
-
-typeCheckIsValueType ::
-    (MonadIO m) =>
-    GType ->                                -- type
-    m Bool
-typeCheckIsValueType type_ = liftIO $ do
-    let type_' = gtypeToCGType type_
-    result <- g_type_check_is_value_type type_'
-    let result' = (/= 0) result
-    return result'
-
-
--- function g_type_check_instance_is_fundamentally_a
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fundamental_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "fundamental_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_check_instance_is_fundamentally_a" g_type_check_instance_is_fundamentally_a :: 
-    Ptr TypeInstance ->                     -- instance : TInterface "GObject" "TypeInstance"
-    CGType ->                               -- fundamental_type : TBasicType TGType
-    IO CInt
-
-
-typeCheckInstanceIsFundamentallyA ::
-    (MonadIO m) =>
-    TypeInstance ->                         -- instance
-    GType ->                                -- fundamental_type
-    m Bool
-typeCheckInstanceIsFundamentallyA instance_ fundamental_type = liftIO $ do
-    let instance_' = unsafeManagedPtrGetPtr instance_
-    let fundamental_type' = gtypeToCGType fundamental_type
-    result <- g_type_check_instance_is_fundamentally_a instance_' fundamental_type'
-    let result' = (/= 0) result
-    touchManagedPtr instance_
-    return result'
-
-
--- function g_type_check_instance_is_a
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "iface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "iface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_check_instance_is_a" g_type_check_instance_is_a :: 
-    Ptr TypeInstance ->                     -- instance : TInterface "GObject" "TypeInstance"
-    CGType ->                               -- iface_type : TBasicType TGType
-    IO CInt
-
-
-typeCheckInstanceIsA ::
-    (MonadIO m) =>
-    TypeInstance ->                         -- instance
-    GType ->                                -- iface_type
-    m Bool
-typeCheckInstanceIsA instance_ iface_type = liftIO $ do
-    let instance_' = unsafeManagedPtrGetPtr instance_
-    let iface_type' = gtypeToCGType iface_type
-    result <- g_type_check_instance_is_a instance_' iface_type'
-    let result' = (/= 0) result
-    touchManagedPtr instance_
-    return result'
-
-
--- function g_type_check_instance
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_check_instance" g_type_check_instance :: 
-    Ptr TypeInstance ->                     -- instance : TInterface "GObject" "TypeInstance"
-    IO CInt
-
-
-typeCheckInstance ::
-    (MonadIO m) =>
-    TypeInstance ->                         -- instance
-    m Bool
-typeCheckInstance instance_ = liftIO $ do
-    let instance_' = unsafeManagedPtrGetPtr instance_
-    result <- g_type_check_instance instance_'
-    let result' = (/= 0) result
-    touchManagedPtr instance_
-    return result'
-
-
--- function g_type_check_class_is_a
--- Args : [Arg {argName = "g_class", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_a_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "g_class", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_a_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_check_class_is_a" g_type_check_class_is_a :: 
-    Ptr TypeClass ->                        -- g_class : TInterface "GObject" "TypeClass"
-    CGType ->                               -- is_a_type : TBasicType TGType
-    IO CInt
-
-
-typeCheckClassIsA ::
-    (MonadIO m) =>
-    TypeClass ->                            -- g_class
-    GType ->                                -- is_a_type
-    m Bool
-typeCheckClassIsA g_class is_a_type = liftIO $ do
-    let g_class' = unsafeManagedPtrGetPtr g_class
-    let is_a_type' = gtypeToCGType is_a_type
-    result <- g_type_check_class_is_a g_class' is_a_type'
-    let result' = (/= 0) result
-    touchManagedPtr g_class
-    return result'
-
-
--- function g_type_add_interface_static
--- Args : [Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "InterfaceInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "InterfaceInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_add_interface_static" g_type_add_interface_static :: 
-    CGType ->                               -- instance_type : TBasicType TGType
-    CGType ->                               -- interface_type : TBasicType TGType
-    Ptr InterfaceInfo ->                    -- info : TInterface "GObject" "InterfaceInfo"
-    IO ()
-
-
-typeAddInterfaceStatic ::
-    (MonadIO m) =>
-    GType ->                                -- instance_type
-    GType ->                                -- interface_type
-    InterfaceInfo ->                        -- info
-    m ()
-typeAddInterfaceStatic instance_type interface_type info = liftIO $ do
-    let instance_type' = gtypeToCGType instance_type
-    let interface_type' = gtypeToCGType interface_type
-    let info' = unsafeManagedPtrGetPtr info
-    g_type_add_interface_static instance_type' interface_type' info'
-    touchManagedPtr info
-    return ()
-
-
--- function g_type_add_interface_dynamic
--- Args : [Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "plugin", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "plugin", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_add_interface_dynamic" g_type_add_interface_dynamic :: 
-    CGType ->                               -- instance_type : TBasicType TGType
-    CGType ->                               -- interface_type : TBasicType TGType
-    Ptr TypePlugin ->                       -- plugin : TInterface "GObject" "TypePlugin"
-    IO ()
-
-
-typeAddInterfaceDynamic ::
-    (MonadIO m, TypePluginK a) =>
-    GType ->                                -- instance_type
-    GType ->                                -- interface_type
-    a ->                                    -- plugin
-    m ()
-typeAddInterfaceDynamic instance_type interface_type plugin = liftIO $ do
-    let instance_type' = gtypeToCGType instance_type
-    let interface_type' = gtypeToCGType interface_type
-    let plugin' = unsafeManagedPtrCastPtr plugin
-    g_type_add_interface_dynamic instance_type' interface_type' plugin'
-    touchManagedPtr plugin
-    return ()
-
-
--- function g_type_add_instance_private
--- Args : [Arg {argName = "class_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "private_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "class_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "private_size", 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_type_add_instance_private" g_type_add_instance_private :: 
-    CGType ->                               -- class_type : TBasicType TGType
-    Word64 ->                               -- private_size : TBasicType TUInt64
-    IO Int32
-
-
-typeAddInstancePrivate ::
-    (MonadIO m) =>
-    GType ->                                -- class_type
-    Word64 ->                               -- private_size
-    m Int32
-typeAddInstancePrivate class_type private_size = liftIO $ do
-    let class_type' = gtypeToCGType class_type
-    result <- g_type_add_instance_private class_type' private_size
-    return result
-
-
--- function g_type_add_class_private
--- Args : [Arg {argName = "class_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "private_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "class_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "private_size", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_type_add_class_private" g_type_add_class_private :: 
-    CGType ->                               -- class_type : TBasicType TGType
-    Word64 ->                               -- private_size : TBasicType TUInt64
-    IO ()
-
-
-typeAddClassPrivate ::
-    (MonadIO m) =>
-    GType ->                                -- class_type
-    Word64 ->                               -- private_size
-    m ()
-typeAddClassPrivate class_type private_size = liftIO $ do
-    let class_type' = gtypeToCGType class_type
-    g_type_add_class_private class_type' private_size
-    return ()
-
-
--- function g_strdup_value_contents
--- Args : [Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "value", argType = TInterface "GObject" "Value", 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_value_contents" g_strdup_value_contents :: 
-    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
-    IO CString
-
-
-strdupValueContents ::
-    (MonadIO m) =>
-    GValue ->                               -- value
-    m T.Text
-strdupValueContents value = liftIO $ do
-    let value' = unsafeManagedPtrGetPtr value
-    result <- g_strdup_value_contents value'
-    checkUnexpectedReturnNULL "g_strdup_value_contents" result
-    result' <- cstringToText result
-    freeMem result
-    touchManagedPtr value
-    return result'
-
-
--- function g_source_set_dummy_callback
--- Args : [Arg {argName = "source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_source_set_dummy_callback" g_source_set_dummy_callback :: 
-    Ptr GLib.Source ->                      -- source : TInterface "GLib" "Source"
-    IO ()
-
-
-sourceSetDummyCallback ::
-    (MonadIO m) =>
-    GLib.Source ->                          -- source
-    m ()
-sourceSetDummyCallback source = liftIO $ do
-    let source' = unsafeManagedPtrGetPtr source
-    g_source_set_dummy_callback source'
-    touchManagedPtr source
-    return ()
-
-
--- function g_source_set_closure
--- Args : [Arg {argName = "source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", 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_closure" g_source_set_closure :: 
-    Ptr GLib.Source ->                      -- source : TInterface "GLib" "Source"
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    IO ()
-
-
-sourceSetClosure ::
-    (MonadIO m) =>
-    GLib.Source ->                          -- source
-    Closure ->                              -- closure
-    m ()
-sourceSetClosure source closure = liftIO $ do
-    let source' = unsafeManagedPtrGetPtr source
-    let closure' = unsafeManagedPtrGetPtr closure
-    g_source_set_closure source' closure'
-    touchManagedPtr source
-    touchManagedPtr closure
-    return ()
-
-
--- function g_signal_type_cclosure_new
--- Args : [Arg {argName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "struct_offset", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "struct_offset", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "Closure"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_type_cclosure_new" g_signal_type_cclosure_new :: 
-    CGType ->                               -- itype : TBasicType TGType
-    Word32 ->                               -- struct_offset : TBasicType TUInt32
-    IO (Ptr Closure)
-
-
-signalTypeCclosureNew ::
-    (MonadIO m) =>
-    GType ->                                -- itype
-    Word32 ->                               -- struct_offset
-    m Closure
-signalTypeCclosureNew itype struct_offset = liftIO $ do
-    let itype' = gtypeToCGType itype
-    result <- g_signal_type_cclosure_new itype' struct_offset
-    checkUnexpectedReturnNULL "g_signal_type_cclosure_new" result
-    result' <- (wrapBoxed Closure) result
-    return result'
-
-
--- function g_signal_stop_emission_by_name
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detailed_signal", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detailed_signal", 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_signal_stop_emission_by_name" g_signal_stop_emission_by_name :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    CString ->                              -- detailed_signal : TBasicType TUTF8
-    IO ()
-
-
-signalStopEmissionByName ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    T.Text ->                               -- detailed_signal
-    m ()
-signalStopEmissionByName instance_ detailed_signal = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    detailed_signal' <- textToCString detailed_signal
-    g_signal_stop_emission_by_name instance_' detailed_signal'
-    touchManagedPtr instance_
-    freeMem detailed_signal'
-    return ()
-
-
--- function g_signal_stop_emission
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", 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_signal_stop_emission" g_signal_stop_emission :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Word32 ->                               -- detail : TBasicType TUInt32
-    IO ()
-
-
-signalStopEmission ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    Word32 ->                               -- signal_id
-    Word32 ->                               -- detail
-    m ()
-signalStopEmission instance_ signal_id detail = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    g_signal_stop_emission instance_' signal_id detail
-    touchManagedPtr instance_
-    return ()
-
-
--- function g_signal_remove_emission_hook
--- Args : [Arg {argName = "signal_id", argType = TBasicType TUInt32, 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 = "signal_id", argType = TBasicType TUInt32, 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 TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_remove_emission_hook" g_signal_remove_emission_hook :: 
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Word64 ->                               -- hook_id : TBasicType TUInt64
-    IO ()
-
-
-signalRemoveEmissionHook ::
-    (MonadIO m) =>
-    Word32 ->                               -- signal_id
-    Word64 ->                               -- hook_id
-    m ()
-signalRemoveEmissionHook signal_id hook_id = liftIO $ do
-    g_signal_remove_emission_hook signal_id hook_id
-    return ()
-
-
--- function g_signal_query
--- Args : [Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "query", argType = TInterface "GObject" "SignalQuery", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "signal_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_signal_query" g_signal_query :: 
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Ptr SignalQuery ->                      -- query : TInterface "GObject" "SignalQuery"
-    IO ()
-
-
-signalQuery ::
-    (MonadIO m) =>
-    Word32 ->                               -- signal_id
-    m (SignalQuery)
-signalQuery signal_id = liftIO $ do
-    query <- callocBytes 56 :: IO (Ptr SignalQuery)
-    g_signal_query signal_id query
-    query' <- (wrapPtr SignalQuery) query
-    return query'
-
-
--- function g_signal_parse_name
--- Args : [Arg {argName = "detailed_signal", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id_p", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "detail_p", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "force_detail_quark", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "detailed_signal", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "force_detail_quark", 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_signal_parse_name" g_signal_parse_name :: 
-    CString ->                              -- detailed_signal : TBasicType TUTF8
-    CGType ->                               -- itype : TBasicType TGType
-    Ptr Word32 ->                           -- signal_id_p : TBasicType TUInt32
-    Ptr Word32 ->                           -- detail_p : TBasicType TUInt32
-    CInt ->                                 -- force_detail_quark : TBasicType TBoolean
-    IO CInt
-
-
-signalParseName ::
-    (MonadIO m) =>
-    T.Text ->                               -- detailed_signal
-    GType ->                                -- itype
-    Bool ->                                 -- force_detail_quark
-    m (Bool,Word32,Word32)
-signalParseName detailed_signal itype force_detail_quark = liftIO $ do
-    detailed_signal' <- textToCString detailed_signal
-    let itype' = gtypeToCGType itype
-    signal_id_p <- allocMem :: IO (Ptr Word32)
-    detail_p <- allocMem :: IO (Ptr Word32)
-    let force_detail_quark' = (fromIntegral . fromEnum) force_detail_quark
-    result <- g_signal_parse_name detailed_signal' itype' signal_id_p detail_p force_detail_quark'
-    let result' = (/= 0) result
-    signal_id_p' <- peek signal_id_p
-    detail_p' <- peek detail_p
-    freeMem detailed_signal'
-    freeMem signal_id_p
-    freeMem detail_p
-    return (result', signal_id_p', detail_p')
-
-
--- function g_signal_override_class_closure
--- Args : [Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "class_closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "class_closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_override_class_closure" g_signal_override_class_closure :: 
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    CGType ->                               -- instance_type : TBasicType TGType
-    Ptr Closure ->                          -- class_closure : TInterface "GObject" "Closure"
-    IO ()
-
-
-signalOverrideClassClosure ::
-    (MonadIO m) =>
-    Word32 ->                               -- signal_id
-    GType ->                                -- instance_type
-    Closure ->                              -- class_closure
-    m ()
-signalOverrideClassClosure signal_id instance_type class_closure = liftIO $ do
-    let instance_type' = gtypeToCGType instance_type
-    let class_closure' = unsafeManagedPtrGetPtr class_closure
-    g_signal_override_class_closure signal_id instance_type' class_closure'
-    touchManagedPtr class_closure
-    return ()
-
-
--- function g_signal_name
--- Args : [Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "signal_id", 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_signal_name" g_signal_name :: 
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    IO CString
-
-
-signalName ::
-    (MonadIO m) =>
-    Word32 ->                               -- signal_id
-    m T.Text
-signalName signal_id = liftIO $ do
-    result <- g_signal_name signal_id
-    checkUnexpectedReturnNULL "g_signal_name" result
-    result' <- cstringToText result
-    return result'
-
-
--- function g_signal_lookup
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_lookup" g_signal_lookup :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CGType ->                               -- itype : TBasicType TGType
-    IO Word32
-
-
-signalLookup ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    GType ->                                -- itype
-    m Word32
-signalLookup name itype = liftIO $ do
-    name' <- textToCString name
-    let itype' = gtypeToCGType itype
-    result <- g_signal_lookup name' itype'
-    freeMem name'
-    return result
-
-
--- function g_signal_list_ids
--- Args : [Arg {argName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_ids", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "n_ids", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TCArray False (-1) 1 (TBasicType TUInt32)
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_list_ids" g_signal_list_ids :: 
-    CGType ->                               -- itype : TBasicType TGType
-    Ptr Word32 ->                           -- n_ids : TBasicType TUInt32
-    IO (Ptr Word32)
-
-
-signalListIds ::
-    (MonadIO m) =>
-    GType ->                                -- itype
-    m [Word32]
-signalListIds itype = liftIO $ do
-    let itype' = gtypeToCGType itype
-    n_ids <- allocMem :: IO (Ptr Word32)
-    result <- g_signal_list_ids itype' n_ids
-    n_ids' <- peek n_ids
-    checkUnexpectedReturnNULL "g_signal_list_ids" result
-    result' <- (unpackStorableArrayWithLength n_ids') result
-    freeMem n_ids
-    return result'
-
-
--- function g_signal_has_handler_pending
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "may_be_blocked", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "may_be_blocked", 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_signal_has_handler_pending" g_signal_has_handler_pending :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Word32 ->                               -- detail : TBasicType TUInt32
-    CInt ->                                 -- may_be_blocked : TBasicType TBoolean
-    IO CInt
-
-
-signalHasHandlerPending ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    Word32 ->                               -- signal_id
-    Word32 ->                               -- detail
-    Bool ->                                 -- may_be_blocked
-    m Bool
-signalHasHandlerPending instance_ signal_id detail may_be_blocked = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    let may_be_blocked' = (fromIntegral . fromEnum) may_be_blocked
-    result <- g_signal_has_handler_pending instance_' signal_id detail may_be_blocked'
-    let result' = (/= 0) result
-    touchManagedPtr instance_
-    return result'
-
-
--- function g_signal_handlers_unblock_matched
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TVoid, 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 = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_handlers_unblock_matched" g_signal_handlers_unblock_matched :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    CUInt ->                                -- mask : TInterface "GObject" "SignalMatchType"
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Word32 ->                               -- detail : TBasicType TUInt32
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr () ->                               -- func : TBasicType TVoid
-    Ptr () ->                               -- data : TBasicType TVoid
-    IO Word32
-
-
-signalHandlersUnblockMatched ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    [SignalMatchType] ->                    -- mask
-    Word32 ->                               -- signal_id
-    Word32 ->                               -- detail
-    Maybe (Closure) ->                      -- closure
-    Ptr () ->                               -- func
-    Ptr () ->                               -- data
-    m Word32
-signalHandlersUnblockMatched instance_ mask signal_id detail closure func data_ = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    let mask' = gflagsToWord mask
-    maybeClosure <- case closure of
-        Nothing -> return nullPtr
-        Just jClosure -> do
-            let jClosure' = unsafeManagedPtrGetPtr jClosure
-            return jClosure'
-    result <- g_signal_handlers_unblock_matched instance_' mask' signal_id detail maybeClosure func data_
-    touchManagedPtr instance_
-    whenJust closure touchManagedPtr
-    return result
-
-
--- function g_signal_handlers_disconnect_matched
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TVoid, 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 = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_handlers_disconnect_matched" g_signal_handlers_disconnect_matched :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    CUInt ->                                -- mask : TInterface "GObject" "SignalMatchType"
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Word32 ->                               -- detail : TBasicType TUInt32
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr () ->                               -- func : TBasicType TVoid
-    Ptr () ->                               -- data : TBasicType TVoid
-    IO Word32
-
-
-signalHandlersDisconnectMatched ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    [SignalMatchType] ->                    -- mask
-    Word32 ->                               -- signal_id
-    Word32 ->                               -- detail
-    Maybe (Closure) ->                      -- closure
-    Ptr () ->                               -- func
-    Ptr () ->                               -- data
-    m Word32
-signalHandlersDisconnectMatched instance_ mask signal_id detail closure func data_ = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    let mask' = gflagsToWord mask
-    maybeClosure <- case closure of
-        Nothing -> return nullPtr
-        Just jClosure -> do
-            let jClosure' = unsafeManagedPtrGetPtr jClosure
-            return jClosure'
-    result <- g_signal_handlers_disconnect_matched instance_' mask' signal_id detail maybeClosure func data_
-    touchManagedPtr instance_
-    whenJust closure touchManagedPtr
-    return result
-
-
--- function g_signal_handlers_destroy
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_handlers_destroy" g_signal_handlers_destroy :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    IO ()
-
-
-signalHandlersDestroy ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    m ()
-signalHandlersDestroy instance_ = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    g_signal_handlers_destroy instance_'
-    touchManagedPtr instance_
-    return ()
-
-
--- function g_signal_handlers_block_matched
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TVoid, 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 = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_handlers_block_matched" g_signal_handlers_block_matched :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    CUInt ->                                -- mask : TInterface "GObject" "SignalMatchType"
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Word32 ->                               -- detail : TBasicType TUInt32
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr () ->                               -- func : TBasicType TVoid
-    Ptr () ->                               -- data : TBasicType TVoid
-    IO Word32
-
-
-signalHandlersBlockMatched ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    [SignalMatchType] ->                    -- mask
-    Word32 ->                               -- signal_id
-    Word32 ->                               -- detail
-    Maybe (Closure) ->                      -- closure
-    Ptr () ->                               -- func
-    Ptr () ->                               -- data
-    m Word32
-signalHandlersBlockMatched instance_ mask signal_id detail closure func data_ = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    let mask' = gflagsToWord mask
-    maybeClosure <- case closure of
-        Nothing -> return nullPtr
-        Just jClosure -> do
-            let jClosure' = unsafeManagedPtrGetPtr jClosure
-            return jClosure'
-    result <- g_signal_handlers_block_matched instance_' mask' signal_id detail maybeClosure func data_
-    touchManagedPtr instance_
-    whenJust closure touchManagedPtr
-    return result
-
-
--- function g_signal_handler_unblock
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", 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_signal_handler_unblock" g_signal_handler_unblock :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    Word64 ->                               -- handler_id : TBasicType TUInt64
-    IO ()
-
-
-signalHandlerUnblock ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    Word64 ->                               -- handler_id
-    m ()
-signalHandlerUnblock instance_ handler_id = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    g_signal_handler_unblock instance_' handler_id
-    touchManagedPtr instance_
-    return ()
-
-
--- function g_signal_handler_is_connected
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_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_signal_handler_is_connected" g_signal_handler_is_connected :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    Word64 ->                               -- handler_id : TBasicType TUInt64
-    IO CInt
-
-
-signalHandlerIsConnected ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    Word64 ->                               -- handler_id
-    m Bool
-signalHandlerIsConnected instance_ handler_id = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    result <- g_signal_handler_is_connected instance_' handler_id
-    let result' = (/= 0) result
-    touchManagedPtr instance_
-    return result'
-
-
--- function g_signal_handler_find
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TVoid, 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 = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "func", argType = TBasicType TVoid, 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 TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_handler_find" g_signal_handler_find :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    CUInt ->                                -- mask : TInterface "GObject" "SignalMatchType"
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Word32 ->                               -- detail : TBasicType TUInt32
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr () ->                               -- func : TBasicType TVoid
-    Ptr () ->                               -- data : TBasicType TVoid
-    IO Word64
-
-
-signalHandlerFind ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    [SignalMatchType] ->                    -- mask
-    Word32 ->                               -- signal_id
-    Word32 ->                               -- detail
-    Maybe (Closure) ->                      -- closure
-    Ptr () ->                               -- func
-    Ptr () ->                               -- data
-    m Word64
-signalHandlerFind instance_ mask signal_id detail closure func data_ = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    let mask' = gflagsToWord mask
-    maybeClosure <- case closure of
-        Nothing -> return nullPtr
-        Just jClosure -> do
-            let jClosure' = unsafeManagedPtrGetPtr jClosure
-            return jClosure'
-    result <- g_signal_handler_find instance_' mask' signal_id detail maybeClosure func data_
-    touchManagedPtr instance_
-    whenJust closure touchManagedPtr
-    return result
-
-
--- function g_signal_handler_disconnect
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", 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_signal_handler_disconnect" g_signal_handler_disconnect :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    Word64 ->                               -- handler_id : TBasicType TUInt64
-    IO ()
-
-
-signalHandlerDisconnect ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    Word64 ->                               -- handler_id
-    m ()
-signalHandlerDisconnect instance_ handler_id = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    g_signal_handler_disconnect instance_' handler_id
-    touchManagedPtr instance_
-    return ()
-
-
--- function g_signal_handler_block
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_id", 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_signal_handler_block" g_signal_handler_block :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    Word64 ->                               -- handler_id : TBasicType TUInt64
-    IO ()
-
-
-signalHandlerBlock ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    Word64 ->                               -- handler_id
-    m ()
-signalHandlerBlock instance_ handler_id = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    g_signal_handler_block instance_' handler_id
-    touchManagedPtr instance_
-    return ()
-
-
--- function g_signal_get_invocation_hint
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "SignalInvocationHint"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_get_invocation_hint" g_signal_get_invocation_hint :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    IO (Ptr SignalInvocationHint)
-
-
-signalGetInvocationHint ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    m SignalInvocationHint
-signalGetInvocationHint instance_ = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    result <- g_signal_get_invocation_hint instance_'
-    checkUnexpectedReturnNULL "g_signal_get_invocation_hint" result
-    result' <- (newPtr 12 SignalInvocationHint) result
-    touchManagedPtr instance_
-    return result'
-
-
--- function g_signal_emitv
--- Args : [Arg {argName = "instance_and_params", argType = TCArray False (-1) (-1) (TInterface "GObject" "Value"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance_and_params", argType = TCArray False (-1) (-1) (TInterface "GObject" "Value"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_emitv" g_signal_emitv :: 
-    Ptr (Ptr GValue) ->                     -- instance_and_params : TCArray False (-1) (-1) (TInterface "GObject" "Value")
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Word32 ->                               -- detail : TBasicType TUInt32
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    IO ()
-
-
-signalEmitv ::
-    (MonadIO m) =>
-    Ptr (Ptr GValue) ->                     -- instance_and_params
-    Word32 ->                               -- signal_id
-    Word32 ->                               -- detail
-    GValue ->                               -- return_value
-    m (GValue)
-signalEmitv instance_and_params signal_id detail return_value = liftIO $ do
-    return_value' <- copyBoxed return_value
-    return_value'' <- callocBoxedBytes 24 :: IO (Ptr GValue)
-    memcpy return_value'' return_value' 24
-    g_signal_emitv instance_and_params signal_id detail return_value''
-    return_value''' <- (wrapBoxed GValue) return_value''
-    touchManagedPtr return_value
-    return return_value'''
-
-
--- function g_signal_connect_closure_by_id
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "after", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "after", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_connect_closure_by_id" g_signal_connect_closure_by_id :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Word32 ->                               -- detail : TBasicType TUInt32
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    CInt ->                                 -- after : TBasicType TBoolean
-    IO Word64
-
-
-signalConnectClosureById ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    Word32 ->                               -- signal_id
-    Word32 ->                               -- detail
-    Closure ->                              -- closure
-    Bool ->                                 -- after
-    m Word64
-signalConnectClosureById instance_ signal_id detail closure after = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    let closure' = unsafeManagedPtrGetPtr closure
-    let after' = (fromIntegral . fromEnum) after
-    result <- g_signal_connect_closure_by_id instance_' signal_id detail closure' after'
-    touchManagedPtr instance_
-    touchManagedPtr closure
-    return result
-
-
--- function g_signal_connect_closure
--- Args : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detailed_signal", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "after", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detailed_signal", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "after", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_connect_closure" g_signal_connect_closure :: 
-    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
-    CString ->                              -- detailed_signal : TBasicType TUTF8
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    CInt ->                                 -- after : TBasicType TBoolean
-    IO Word64
-
-
-signalConnectClosure ::
-    (MonadIO m, ObjectK a) =>
-    a ->                                    -- instance
-    T.Text ->                               -- detailed_signal
-    Closure ->                              -- closure
-    Bool ->                                 -- after
-    m Word64
-signalConnectClosure instance_ detailed_signal closure after = liftIO $ do
-    let instance_' = unsafeManagedPtrCastPtr instance_
-    detailed_signal' <- textToCString detailed_signal
-    let closure' = unsafeManagedPtrGetPtr closure
-    let after' = (fromIntegral . fromEnum) after
-    result <- g_signal_connect_closure instance_' detailed_signal' closure' after'
-    touchManagedPtr instance_
-    touchManagedPtr closure
-    freeMem detailed_signal'
-    return result
-
-
--- function g_signal_chain_from_overridden
--- Args : [Arg {argName = "instance_and_params", argType = TCArray False (-1) (-1) (TInterface "GObject" "Value"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "instance_and_params", argType = TCArray False (-1) (-1) (TInterface "GObject" "Value"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_chain_from_overridden" g_signal_chain_from_overridden :: 
-    Ptr (Ptr GValue) ->                     -- instance_and_params : TCArray False (-1) (-1) (TInterface "GObject" "Value")
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    IO ()
-
-
-signalChainFromOverridden ::
-    (MonadIO m) =>
-    Ptr (Ptr GValue) ->                     -- instance_and_params
-    GValue ->                               -- return_value
-    m ()
-signalChainFromOverridden instance_and_params return_value = liftIO $ do
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    g_signal_chain_from_overridden instance_and_params return_value'
-    touchManagedPtr return_value
-    return ()
-
-
--- function g_signal_add_emission_hook
--- Args : [Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook_func", argType = TInterface "GObject" "SignalEmissionHook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "hook_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data_destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hook_func", argType = TInterface "GObject" "SignalEmissionHook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
--- returnType : TBasicType TUInt64
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_signal_add_emission_hook" g_signal_add_emission_hook :: 
-    Word32 ->                               -- signal_id : TBasicType TUInt32
-    Word32 ->                               -- detail : TBasicType TUInt32
-    FunPtr SignalEmissionHookC ->           -- hook_func : TInterface "GObject" "SignalEmissionHook"
-    Ptr () ->                               -- hook_data : TBasicType TVoid
-    FunPtr GLib.DestroyNotifyC ->           -- data_destroy : TInterface "GLib" "DestroyNotify"
-    IO Word64
-
-
-signalAddEmissionHook ::
-    (MonadIO m) =>
-    Word32 ->                               -- signal_id
-    Word32 ->                               -- detail
-    SignalEmissionHook ->                   -- hook_func
-    m Word64
-signalAddEmissionHook signal_id detail hook_func = liftIO $ do
-    hook_func' <- mkSignalEmissionHook (signalEmissionHookWrapper Nothing hook_func)
-    let hook_data = castFunPtrToPtr hook_func'
-    let data_destroy = safeFreeFunPtrPtr
-    result <- g_signal_add_emission_hook signal_id detail hook_func' hook_data data_destroy
-    return result
-
-
--- function g_signal_accumulator_true_handled
--- Args : [Arg {argName = "ihint", argType = TInterface "GObject" "SignalInvocationHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_accu", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_return", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dummy", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "ihint", argType = TInterface "GObject" "SignalInvocationHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_accu", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_return", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dummy", 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_signal_accumulator_true_handled" g_signal_accumulator_true_handled :: 
-    Ptr SignalInvocationHint ->             -- ihint : TInterface "GObject" "SignalInvocationHint"
-    Ptr GValue ->                           -- return_accu : TInterface "GObject" "Value"
-    Ptr GValue ->                           -- handler_return : TInterface "GObject" "Value"
-    Ptr () ->                               -- dummy : TBasicType TVoid
-    IO CInt
-
-
-signalAccumulatorTrueHandled ::
-    (MonadIO m) =>
-    SignalInvocationHint ->                 -- ihint
-    GValue ->                               -- return_accu
-    GValue ->                               -- handler_return
-    Ptr () ->                               -- dummy
-    m Bool
-signalAccumulatorTrueHandled ihint return_accu handler_return dummy = liftIO $ do
-    let ihint' = unsafeManagedPtrGetPtr ihint
-    let return_accu' = unsafeManagedPtrGetPtr return_accu
-    let handler_return' = unsafeManagedPtrGetPtr handler_return
-    result <- g_signal_accumulator_true_handled ihint' return_accu' handler_return' dummy
-    let result' = (/= 0) result
-    touchManagedPtr ihint
-    touchManagedPtr return_accu
-    touchManagedPtr handler_return
-    return result'
-
-
--- function g_signal_accumulator_first_wins
--- Args : [Arg {argName = "ihint", argType = TInterface "GObject" "SignalInvocationHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_accu", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_return", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dummy", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "ihint", argType = TInterface "GObject" "SignalInvocationHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_accu", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "handler_return", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dummy", 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_signal_accumulator_first_wins" g_signal_accumulator_first_wins :: 
-    Ptr SignalInvocationHint ->             -- ihint : TInterface "GObject" "SignalInvocationHint"
-    Ptr GValue ->                           -- return_accu : TInterface "GObject" "Value"
-    Ptr GValue ->                           -- handler_return : TInterface "GObject" "Value"
-    Ptr () ->                               -- dummy : TBasicType TVoid
-    IO CInt
-
-
-signalAccumulatorFirstWins ::
-    (MonadIO m) =>
-    SignalInvocationHint ->                 -- ihint
-    GValue ->                               -- return_accu
-    GValue ->                               -- handler_return
-    Ptr () ->                               -- dummy
-    m Bool
-signalAccumulatorFirstWins ihint return_accu handler_return dummy = liftIO $ do
-    let ihint' = unsafeManagedPtrGetPtr ihint
-    let return_accu' = unsafeManagedPtrGetPtr return_accu
-    let handler_return' = unsafeManagedPtrGetPtr handler_return
-    result <- g_signal_accumulator_first_wins ihint' return_accu' handler_return' dummy
-    let result' = (/= 0) result
-    touchManagedPtr ihint
-    touchManagedPtr return_accu
-    touchManagedPtr handler_return
-    return result'
-
-
--- function g_pointer_type_register_static
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_pointer_type_register_static" g_pointer_type_register_static :: 
-    CString ->                              -- name : TBasicType TUTF8
-    IO CGType
-
-
-pointerTypeRegisterStatic ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    m GType
-pointerTypeRegisterStatic name = liftIO $ do
-    name' <- textToCString name
-    result <- g_pointer_type_register_static name'
-    let result' = GType result
-    freeMem name'
-    return result'
-
-
--- function g_param_values_cmp
--- Args : [Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value1", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value2", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value1", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value2", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_values_cmp" g_param_values_cmp :: 
-    Ptr GParamSpec ->                       -- pspec : TParamSpec
-    Ptr GValue ->                           -- value1 : TInterface "GObject" "Value"
-    Ptr GValue ->                           -- value2 : TInterface "GObject" "Value"
-    IO Int32
-
-
-paramValuesCmp ::
-    (MonadIO m) =>
-    GParamSpec ->                           -- pspec
-    GValue ->                               -- value1
-    GValue ->                               -- value2
-    m Int32
-paramValuesCmp pspec value1 value2 = liftIO $ do
-    let pspec' = unsafeManagedPtrGetPtr pspec
-    let value1' = unsafeManagedPtrGetPtr value1
-    let value2' = unsafeManagedPtrGetPtr value2
-    result <- g_param_values_cmp pspec' value1' value2'
-    touchManagedPtr value1
-    touchManagedPtr value2
-    return result
-
-
--- function g_param_value_validate
--- Args : [Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_value_validate" g_param_value_validate :: 
-    Ptr GParamSpec ->                       -- pspec : TParamSpec
-    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
-    IO CInt
-
-
-paramValueValidate ::
-    (MonadIO m) =>
-    GParamSpec ->                           -- pspec
-    GValue ->                               -- value
-    m Bool
-paramValueValidate pspec value = liftIO $ do
-    let pspec' = unsafeManagedPtrGetPtr pspec
-    let value' = unsafeManagedPtrGetPtr value
-    result <- g_param_value_validate pspec' value'
-    let result' = (/= 0) result
-    touchManagedPtr value
-    return result'
-
-
--- function g_param_value_set_default
--- Args : [Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_value_set_default" g_param_value_set_default :: 
-    Ptr GParamSpec ->                       -- pspec : TParamSpec
-    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
-    IO ()
-
-
-paramValueSetDefault ::
-    (MonadIO m) =>
-    GParamSpec ->                           -- pspec
-    GValue ->                               -- value
-    m ()
-paramValueSetDefault pspec value = liftIO $ do
-    let pspec' = unsafeManagedPtrGetPtr pspec
-    let value' = unsafeManagedPtrGetPtr value
-    g_param_value_set_default pspec' value'
-    touchManagedPtr value
-    return ()
-
-
--- function g_param_value_defaults
--- Args : [Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_value_defaults" g_param_value_defaults :: 
-    Ptr GParamSpec ->                       -- pspec : TParamSpec
-    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
-    IO CInt
-
-
-paramValueDefaults ::
-    (MonadIO m) =>
-    GParamSpec ->                           -- pspec
-    GValue ->                               -- value
-    m Bool
-paramValueDefaults pspec value = liftIO $ do
-    let pspec' = unsafeManagedPtrGetPtr pspec
-    let value' = unsafeManagedPtrGetPtr value
-    result <- g_param_value_defaults pspec' value'
-    let result' = (/= 0) result
-    touchManagedPtr value
-    return result'
-
-
--- function g_param_value_convert
--- Args : [Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "strict_validation", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "strict_validation", 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_param_value_convert" g_param_value_convert :: 
-    Ptr GParamSpec ->                       -- pspec : TParamSpec
-    Ptr GValue ->                           -- src_value : TInterface "GObject" "Value"
-    Ptr GValue ->                           -- dest_value : TInterface "GObject" "Value"
-    CInt ->                                 -- strict_validation : TBasicType TBoolean
-    IO CInt
-
-
-paramValueConvert ::
-    (MonadIO m) =>
-    GParamSpec ->                           -- pspec
-    GValue ->                               -- src_value
-    GValue ->                               -- dest_value
-    Bool ->                                 -- strict_validation
-    m Bool
-paramValueConvert pspec src_value dest_value strict_validation = liftIO $ do
-    let pspec' = unsafeManagedPtrGetPtr pspec
-    let src_value' = unsafeManagedPtrGetPtr src_value
-    let dest_value' = unsafeManagedPtrGetPtr dest_value
-    let strict_validation' = (fromIntegral . fromEnum) strict_validation
-    result <- g_param_value_convert pspec' src_value' dest_value' strict_validation'
-    let result' = (/= 0) result
-    touchManagedPtr src_value
-    touchManagedPtr dest_value
-    return result'
-
-
--- function g_param_type_register_static
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec_info", argType = TInterface "GObject" "ParamSpecTypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec_info", argType = TInterface "GObject" "ParamSpecTypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_type_register_static" g_param_type_register_static :: 
-    CString ->                              -- name : TBasicType TUTF8
-    Ptr ParamSpecTypeInfo ->                -- pspec_info : TInterface "GObject" "ParamSpecTypeInfo"
-    IO CGType
-
-
-paramTypeRegisterStatic ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    ParamSpecTypeInfo ->                    -- pspec_info
-    m GType
-paramTypeRegisterStatic name pspec_info = liftIO $ do
-    name' <- textToCString name
-    let pspec_info' = unsafeManagedPtrGetPtr pspec_info
-    result <- g_param_type_register_static name' pspec_info'
-    let result' = GType result
-    touchManagedPtr pspec_info
-    freeMem name'
-    return result'
-
-
--- function g_param_spec_variant
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, 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},Arg {argName = "default_value", argType = TVariant, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, 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},Arg {argName = "default_value", argType = TVariant, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_variant" g_param_spec_variant :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    Ptr GLib.VariantType ->                 -- type : TInterface "GLib" "VariantType"
-    Ptr GVariant ->                         -- default_value : TVariant
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecVariant ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    GLib.VariantType ->                     -- type
-    Maybe (GVariant) ->                     -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecVariant name nick blurb type_ default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let type_' = unsafeManagedPtrGetPtr type_
-    maybeDefault_value <- case default_value of
-        Nothing -> return nullPtr
-        Just jDefault_value -> do
-            jDefault_value' <- refGVariant jDefault_value
-            return jDefault_value'
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_variant name' nick' blurb' type_' maybeDefault_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_variant" result
-    result' <- wrapGParamSpecPtr result
-    touchManagedPtr type_
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_unichar
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_unichar" g_param_spec_unichar :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CInt ->                                 -- default_value : TBasicType TUniChar
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecUnichar ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Char ->                                 -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecUnichar name nick blurb default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let default_value' = (fromIntegral . ord) default_value
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_unichar name' nick' blurb' default_value' flags'
-    checkUnexpectedReturnNULL "g_param_spec_unichar" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_ulong
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_ulong" g_param_spec_ulong :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    Word64 ->                               -- minimum : TBasicType TUInt64
-    Word64 ->                               -- maximum : TBasicType TUInt64
-    Word64 ->                               -- default_value : TBasicType TUInt64
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecUlong ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Word64 ->                               -- minimum
-    Word64 ->                               -- maximum
-    Word64 ->                               -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecUlong name nick blurb minimum maximum default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_ulong name' nick' blurb' minimum maximum default_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_ulong" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_uint64
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_uint64" g_param_spec_uint64 :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    Word64 ->                               -- minimum : TBasicType TUInt64
-    Word64 ->                               -- maximum : TBasicType TUInt64
-    Word64 ->                               -- default_value : TBasicType TUInt64
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecUint64 ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Word64 ->                               -- minimum
-    Word64 ->                               -- maximum
-    Word64 ->                               -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecUint64 name nick blurb minimum maximum default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_uint64 name' nick' blurb' minimum maximum default_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_uint64" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_uint
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_uint" g_param_spec_uint :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    Word32 ->                               -- minimum : TBasicType TUInt32
-    Word32 ->                               -- maximum : TBasicType TUInt32
-    Word32 ->                               -- default_value : TBasicType TUInt32
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecUint ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Word32 ->                               -- minimum
-    Word32 ->                               -- maximum
-    Word32 ->                               -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecUint name nick blurb minimum maximum default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_uint name' nick' blurb' minimum maximum default_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_uint" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_uchar
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_uchar" g_param_spec_uchar :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    Word8 ->                                -- minimum : TBasicType TUInt8
-    Word8 ->                                -- maximum : TBasicType TUInt8
-    Word8 ->                                -- default_value : TBasicType TUInt8
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecUchar ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Word8 ->                                -- minimum
-    Word8 ->                                -- maximum
-    Word8 ->                                -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecUchar name nick blurb minimum maximum default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_uchar name' nick' blurb' minimum maximum default_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_uchar" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_string
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_string" g_param_spec_string :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CString ->                              -- default_value : TBasicType TUTF8
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecString ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    T.Text ->                               -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecString name nick blurb default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    default_value' <- textToCString default_value
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_string name' nick' blurb' default_value' flags'
-    checkUnexpectedReturnNULL "g_param_spec_string" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    freeMem default_value'
-    return result'
-
-
--- function g_param_spec_pool_new
--- Args : [Arg {argName = "type_prefixing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "type_prefixing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "ParamSpecPool"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_pool_new" g_param_spec_pool_new :: 
-    CInt ->                                 -- type_prefixing : TBasicType TBoolean
-    IO (Ptr ParamSpecPool)
-
-
-paramSpecPoolNew ::
-    (MonadIO m) =>
-    Bool ->                                 -- type_prefixing
-    m ParamSpecPool
-paramSpecPoolNew type_prefixing = liftIO $ do
-    let type_prefixing' = (fromIntegral . fromEnum) type_prefixing
-    result <- g_param_spec_pool_new type_prefixing'
-    checkUnexpectedReturnNULL "g_param_spec_pool_new" result
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    result' <- (\x -> ParamSpecPool <$> newForeignPtr_ x) result
-    return result'
-
-
--- function g_param_spec_pointer
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_pointer" g_param_spec_pointer :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecPointer ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecPointer name nick blurb flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_pointer name' nick' blurb' flags'
-    checkUnexpectedReturnNULL "g_param_spec_pointer" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_param
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_param" g_param_spec_param :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CGType ->                               -- param_type : TBasicType TGType
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecParam ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    GType ->                                -- param_type
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecParam name nick blurb param_type flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let param_type' = gtypeToCGType param_type
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_param name' nick' blurb' param_type' flags'
-    checkUnexpectedReturnNULL "g_param_spec_param" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_object
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "object_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "object_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_object" g_param_spec_object :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CGType ->                               -- object_type : TBasicType TGType
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecObject ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    GType ->                                -- object_type
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecObject name nick blurb object_type flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let object_type' = gtypeToCGType object_type
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_object name' nick' blurb' object_type' flags'
-    checkUnexpectedReturnNULL "g_param_spec_object" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_long
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_long" g_param_spec_long :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    Int64 ->                                -- minimum : TBasicType TInt64
-    Int64 ->                                -- maximum : TBasicType TInt64
-    Int64 ->                                -- default_value : TBasicType TInt64
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecLong ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Int64 ->                                -- minimum
-    Int64 ->                                -- maximum
-    Int64 ->                                -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecLong name nick blurb minimum maximum default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_long name' nick' blurb' minimum maximum default_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_long" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_int64
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_int64" g_param_spec_int64 :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    Int64 ->                                -- minimum : TBasicType TInt64
-    Int64 ->                                -- maximum : TBasicType TInt64
-    Int64 ->                                -- default_value : TBasicType TInt64
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecInt64 ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Int64 ->                                -- minimum
-    Int64 ->                                -- maximum
-    Int64 ->                                -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecInt64 name nick blurb minimum maximum default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_int64 name' nick' blurb' minimum maximum default_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_int64" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_int
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_int" g_param_spec_int :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    Int32 ->                                -- minimum : TBasicType TInt32
-    Int32 ->                                -- maximum : TBasicType TInt32
-    Int32 ->                                -- default_value : TBasicType TInt32
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecInt ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Int32 ->                                -- minimum
-    Int32 ->                                -- maximum
-    Int32 ->                                -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecInt name nick blurb minimum maximum default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_int name' nick' blurb' minimum maximum default_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_int" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_gtype
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_a_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "is_a_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_gtype" g_param_spec_gtype :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CGType ->                               -- is_a_type : TBasicType TGType
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecGtype ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    GType ->                                -- is_a_type
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecGtype name nick blurb is_a_type flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let is_a_type' = gtypeToCGType is_a_type
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_gtype name' nick' blurb' is_a_type' flags'
-    checkUnexpectedReturnNULL "g_param_spec_gtype" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_float
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_float" g_param_spec_float :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CFloat ->                               -- minimum : TBasicType TFloat
-    CFloat ->                               -- maximum : TBasicType TFloat
-    CFloat ->                               -- default_value : TBasicType TFloat
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecFloat ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Float ->                                -- minimum
-    Float ->                                -- maximum
-    Float ->                                -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecFloat name nick blurb minimum maximum default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let minimum' = realToFrac minimum
-    let maximum' = realToFrac maximum
-    let default_value' = realToFrac default_value
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_float name' nick' blurb' minimum' maximum' default_value' flags'
-    checkUnexpectedReturnNULL "g_param_spec_float" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_flags
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_flags" g_param_spec_flags :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CGType ->                               -- flags_type : TBasicType TGType
-    Word32 ->                               -- default_value : TBasicType TUInt32
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecFlags ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    GType ->                                -- flags_type
-    Word32 ->                               -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecFlags name nick blurb flags_type default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let flags_type' = gtypeToCGType flags_type
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_flags name' nick' blurb' flags_type' default_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_flags" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_enum
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enum_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enum_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_enum" g_param_spec_enum :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CGType ->                               -- enum_type : TBasicType TGType
-    Int32 ->                                -- default_value : TBasicType TInt32
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecEnum ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    GType ->                                -- enum_type
-    Int32 ->                                -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecEnum name nick blurb enum_type default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let enum_type' = gtypeToCGType enum_type
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_enum name' nick' blurb' enum_type' default_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_enum" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_double
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_double" g_param_spec_double :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CDouble ->                              -- minimum : TBasicType TDouble
-    CDouble ->                              -- maximum : TBasicType TDouble
-    CDouble ->                              -- default_value : TBasicType TDouble
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecDouble ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Double ->                               -- minimum
-    Double ->                               -- maximum
-    Double ->                               -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecDouble name nick blurb minimum maximum default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let minimum' = realToFrac minimum
-    let maximum' = realToFrac maximum
-    let default_value' = realToFrac default_value
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_double name' nick' blurb' minimum' maximum' default_value' flags'
-    checkUnexpectedReturnNULL "g_param_spec_double" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_char
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minimum", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "maximum", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_char" g_param_spec_char :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    Int8 ->                                 -- minimum : TBasicType TInt8
-    Int8 ->                                 -- maximum : TBasicType TInt8
-    Int8 ->                                 -- default_value : TBasicType TInt8
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecChar ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Int8 ->                                 -- minimum
-    Int8 ->                                 -- maximum
-    Int8 ->                                 -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecChar name nick blurb minimum maximum default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_char name' nick' blurb' minimum maximum default_value flags'
-    checkUnexpectedReturnNULL "g_param_spec_char" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_boxed
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "boxed_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "boxed_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_boxed" g_param_spec_boxed :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CGType ->                               -- boxed_type : TBasicType TGType
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecBoxed ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    GType ->                                -- boxed_type
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecBoxed name nick blurb boxed_type flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let boxed_type' = gtypeToCGType boxed_type
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_boxed name' nick' blurb' boxed_type' flags'
-    checkUnexpectedReturnNULL "g_param_spec_boxed" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_param_spec_boolean
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "default_value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TParamSpec
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_param_spec_boolean" g_param_spec_boolean :: 
-    CString ->                              -- name : TBasicType TUTF8
-    CString ->                              -- nick : TBasicType TUTF8
-    CString ->                              -- blurb : TBasicType TUTF8
-    CInt ->                                 -- default_value : TBasicType TBoolean
-    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
-    IO (Ptr GParamSpec)
-
-
-paramSpecBoolean ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    T.Text ->                               -- nick
-    T.Text ->                               -- blurb
-    Bool ->                                 -- default_value
-    [ParamFlags] ->                         -- flags
-    m GParamSpec
-paramSpecBoolean name nick blurb default_value flags = liftIO $ do
-    name' <- textToCString name
-    nick' <- textToCString nick
-    blurb' <- textToCString blurb
-    let default_value' = (fromIntegral . fromEnum) default_value
-    let flags' = gflagsToWord flags
-    result <- g_param_spec_boolean name' nick' blurb' default_value' flags'
-    checkUnexpectedReturnNULL "g_param_spec_boolean" result
-    result' <- wrapGParamSpecPtr result
-    freeMem name'
-    freeMem nick'
-    freeMem blurb'
-    return result'
-
-
--- function g_gtype_get_type
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_gtype_get_type" g_gtype_get_type :: 
-    IO CGType
-
-
-gtypeGetType ::
-    (MonadIO m) =>
-    m GType
-gtypeGetType  = liftIO $ do
-    result <- g_gtype_get_type
-    let result' = GType result
-    return result'
-
-
--- function g_flags_register_static
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "const_static_values", argType = TInterface "GObject" "FlagsValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "const_static_values", argType = TInterface "GObject" "FlagsValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_flags_register_static" g_flags_register_static :: 
-    CString ->                              -- name : TBasicType TUTF8
-    Ptr FlagsValue ->                       -- const_static_values : TInterface "GObject" "FlagsValue"
-    IO CGType
-
-
-flagsRegisterStatic ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    FlagsValue ->                           -- const_static_values
-    m GType
-flagsRegisterStatic name const_static_values = liftIO $ do
-    name' <- textToCString name
-    let const_static_values' = unsafeManagedPtrGetPtr const_static_values
-    result <- g_flags_register_static name' const_static_values'
-    let result' = GType result
-    touchManagedPtr const_static_values
-    freeMem name'
-    return result'
-
-
--- function g_flags_get_value_by_nick
--- Args : [Arg {argName = "flags_class", argType = TInterface "GObject" "FlagsClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "flags_class", argType = TInterface "GObject" "FlagsClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "FlagsValue"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_flags_get_value_by_nick" g_flags_get_value_by_nick :: 
-    Ptr FlagsClass ->                       -- flags_class : TInterface "GObject" "FlagsClass"
-    CString ->                              -- nick : TBasicType TUTF8
-    IO (Ptr FlagsValue)
-
-
-flagsGetValueByNick ::
-    (MonadIO m) =>
-    FlagsClass ->                           -- flags_class
-    T.Text ->                               -- nick
-    m FlagsValue
-flagsGetValueByNick flags_class nick = liftIO $ do
-    let flags_class' = unsafeManagedPtrGetPtr flags_class
-    nick' <- textToCString nick
-    result <- g_flags_get_value_by_nick flags_class' nick'
-    checkUnexpectedReturnNULL "g_flags_get_value_by_nick" result
-    result' <- (newPtr 24 FlagsValue) result
-    touchManagedPtr flags_class
-    freeMem nick'
-    return result'
-
-
--- function g_flags_get_value_by_name
--- Args : [Arg {argName = "flags_class", argType = TInterface "GObject" "FlagsClass", 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 = "flags_class", argType = TInterface "GObject" "FlagsClass", 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 : TInterface "GObject" "FlagsValue"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_flags_get_value_by_name" g_flags_get_value_by_name :: 
-    Ptr FlagsClass ->                       -- flags_class : TInterface "GObject" "FlagsClass"
-    CString ->                              -- name : TBasicType TUTF8
-    IO (Ptr FlagsValue)
-
-
-flagsGetValueByName ::
-    (MonadIO m) =>
-    FlagsClass ->                           -- flags_class
-    T.Text ->                               -- name
-    m FlagsValue
-flagsGetValueByName flags_class name = liftIO $ do
-    let flags_class' = unsafeManagedPtrGetPtr flags_class
-    name' <- textToCString name
-    result <- g_flags_get_value_by_name flags_class' name'
-    checkUnexpectedReturnNULL "g_flags_get_value_by_name" result
-    result' <- (newPtr 24 FlagsValue) result
-    touchManagedPtr flags_class
-    freeMem name'
-    return result'
-
-
--- function g_flags_get_first_value
--- Args : [Arg {argName = "flags_class", argType = TInterface "GObject" "FlagsClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "flags_class", argType = TInterface "GObject" "FlagsClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "FlagsValue"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_flags_get_first_value" g_flags_get_first_value :: 
-    Ptr FlagsClass ->                       -- flags_class : TInterface "GObject" "FlagsClass"
-    Word32 ->                               -- value : TBasicType TUInt32
-    IO (Ptr FlagsValue)
-
-
-flagsGetFirstValue ::
-    (MonadIO m) =>
-    FlagsClass ->                           -- flags_class
-    Word32 ->                               -- value
-    m FlagsValue
-flagsGetFirstValue flags_class value = liftIO $ do
-    let flags_class' = unsafeManagedPtrGetPtr flags_class
-    result <- g_flags_get_first_value flags_class' value
-    checkUnexpectedReturnNULL "g_flags_get_first_value" result
-    result' <- (newPtr 24 FlagsValue) result
-    touchManagedPtr flags_class
-    return result'
-
-
--- function g_flags_complete_type_info
--- Args : [Arg {argName = "g_flags_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "const_values", argType = TInterface "GObject" "FlagsValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "g_flags_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "const_values", argType = TInterface "GObject" "FlagsValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_flags_complete_type_info" g_flags_complete_type_info :: 
-    CGType ->                               -- g_flags_type : TBasicType TGType
-    Ptr TypeInfo ->                         -- info : TInterface "GObject" "TypeInfo"
-    Ptr FlagsValue ->                       -- const_values : TInterface "GObject" "FlagsValue"
-    IO ()
-
-
-flagsCompleteTypeInfo ::
-    (MonadIO m) =>
-    GType ->                                -- g_flags_type
-    FlagsValue ->                           -- const_values
-    m (TypeInfo)
-flagsCompleteTypeInfo g_flags_type const_values = liftIO $ do
-    let g_flags_type' = gtypeToCGType g_flags_type
-    info <- callocBytes 72 :: IO (Ptr TypeInfo)
-    let const_values' = unsafeManagedPtrGetPtr const_values
-    g_flags_complete_type_info g_flags_type' info const_values'
-    info' <- (wrapPtr TypeInfo) info
-    touchManagedPtr const_values
-    return info'
-
-
--- function g_enum_register_static
--- Args : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "const_static_values", argType = TInterface "GObject" "EnumValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "const_static_values", argType = TInterface "GObject" "EnumValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TGType
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_enum_register_static" g_enum_register_static :: 
-    CString ->                              -- name : TBasicType TUTF8
-    Ptr EnumValue ->                        -- const_static_values : TInterface "GObject" "EnumValue"
-    IO CGType
-
-
-enumRegisterStatic ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    EnumValue ->                            -- const_static_values
-    m GType
-enumRegisterStatic name const_static_values = liftIO $ do
-    name' <- textToCString name
-    let const_static_values' = unsafeManagedPtrGetPtr const_static_values
-    result <- g_enum_register_static name' const_static_values'
-    let result' = GType result
-    touchManagedPtr const_static_values
-    freeMem name'
-    return result'
-
-
--- function g_enum_get_value_by_nick
--- Args : [Arg {argName = "enum_class", argType = TInterface "GObject" "EnumClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "enum_class", argType = TInterface "GObject" "EnumClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GObject" "EnumValue"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_enum_get_value_by_nick" g_enum_get_value_by_nick :: 
-    Ptr EnumClass ->                        -- enum_class : TInterface "GObject" "EnumClass"
-    CString ->                              -- nick : TBasicType TUTF8
-    IO (Ptr EnumValue)
-
-
-enumGetValueByNick ::
-    (MonadIO m) =>
-    EnumClass ->                            -- enum_class
-    T.Text ->                               -- nick
-    m EnumValue
-enumGetValueByNick enum_class nick = liftIO $ do
-    let enum_class' = unsafeManagedPtrGetPtr enum_class
-    nick' <- textToCString nick
-    result <- g_enum_get_value_by_nick enum_class' nick'
-    checkUnexpectedReturnNULL "g_enum_get_value_by_nick" result
-    result' <- (newPtr 24 EnumValue) result
-    touchManagedPtr enum_class
-    freeMem nick'
-    return result'
-
-
--- function g_enum_get_value_by_name
--- Args : [Arg {argName = "enum_class", argType = TInterface "GObject" "EnumClass", 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 = "enum_class", argType = TInterface "GObject" "EnumClass", 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 : TInterface "GObject" "EnumValue"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_enum_get_value_by_name" g_enum_get_value_by_name :: 
-    Ptr EnumClass ->                        -- enum_class : TInterface "GObject" "EnumClass"
-    CString ->                              -- name : TBasicType TUTF8
-    IO (Ptr EnumValue)
-
-
-enumGetValueByName ::
-    (MonadIO m) =>
-    EnumClass ->                            -- enum_class
-    T.Text ->                               -- name
-    m EnumValue
-enumGetValueByName enum_class name = liftIO $ do
-    let enum_class' = unsafeManagedPtrGetPtr enum_class
-    name' <- textToCString name
-    result <- g_enum_get_value_by_name enum_class' name'
-    checkUnexpectedReturnNULL "g_enum_get_value_by_name" result
-    result' <- (newPtr 24 EnumValue) result
-    touchManagedPtr enum_class
-    freeMem name'
-    return result'
-
-
--- function g_enum_get_value
--- Args : [Arg {argName = "enum_class", argType = TInterface "GObject" "EnumClass", 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 = "enum_class", argType = TInterface "GObject" "EnumClass", 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 : TInterface "GObject" "EnumValue"
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_enum_get_value" g_enum_get_value :: 
-    Ptr EnumClass ->                        -- enum_class : TInterface "GObject" "EnumClass"
-    Int32 ->                                -- value : TBasicType TInt32
-    IO (Ptr EnumValue)
-
-
-enumGetValue ::
-    (MonadIO m) =>
-    EnumClass ->                            -- enum_class
-    Int32 ->                                -- value
-    m EnumValue
-enumGetValue enum_class value = liftIO $ do
-    let enum_class' = unsafeManagedPtrGetPtr enum_class
-    result <- g_enum_get_value enum_class' value
-    checkUnexpectedReturnNULL "g_enum_get_value" result
-    result' <- (newPtr 24 EnumValue) result
-    touchManagedPtr enum_class
-    return result'
-
-
--- function g_enum_complete_type_info
--- Args : [Arg {argName = "g_enum_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "const_values", argType = TInterface "GObject" "EnumValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "g_enum_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "const_values", argType = TInterface "GObject" "EnumValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "g_enum_complete_type_info" g_enum_complete_type_info :: 
-    CGType ->                               -- g_enum_type : TBasicType TGType
-    Ptr TypeInfo ->                         -- info : TInterface "GObject" "TypeInfo"
-    Ptr EnumValue ->                        -- const_values : TInterface "GObject" "EnumValue"
-    IO ()
-
-
-enumCompleteTypeInfo ::
-    (MonadIO m) =>
-    GType ->                                -- g_enum_type
-    EnumValue ->                            -- const_values
-    m (TypeInfo)
-enumCompleteTypeInfo g_enum_type const_values = liftIO $ do
-    let g_enum_type' = gtypeToCGType g_enum_type
-    info <- callocBytes 72 :: IO (Ptr TypeInfo)
-    let const_values' = unsafeManagedPtrGetPtr const_values
-    g_enum_complete_type_info g_enum_type' info const_values'
-    info' <- (wrapPtr TypeInfo) info
-    touchManagedPtr const_values
-    return info'
-
-
--- function g_cclosure_marshal_generic
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_gvalue", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_gvalue", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_generic" g_cclosure_marshal_generic :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_gvalue : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalGeneric ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_gvalue
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalGeneric closure return_gvalue n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_gvalue' = unsafeManagedPtrGetPtr return_gvalue
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_generic closure' return_gvalue' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_gvalue
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__VOID
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__VOID" g_cclosure_marshal_VOID__VOID :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_VOID ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_VOID closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__VOID closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__VARIANT
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__VARIANT" g_cclosure_marshal_VOID__VARIANT :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_VARIANT ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_VARIANT closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__VARIANT closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__ULONG
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__ULONG" g_cclosure_marshal_VOID__ULONG :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_ULONG ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_ULONG closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__ULONG closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__UINT_POINTER
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__UINT_POINTER" g_cclosure_marshal_VOID__UINT_POINTER :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_UINTPOINTER ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_UINTPOINTER closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__UINT_POINTER closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__UINT
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__UINT" g_cclosure_marshal_VOID__UINT :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_UINT ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_UINT closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__UINT closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__UCHAR
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__UCHAR" g_cclosure_marshal_VOID__UCHAR :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_UCHAR ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_UCHAR closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__UCHAR closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__STRING
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__STRING" g_cclosure_marshal_VOID__STRING :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_STRING ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_STRING closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__STRING closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__POINTER
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__POINTER" g_cclosure_marshal_VOID__POINTER :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_POINTER ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_POINTER closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__POINTER closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__PARAM
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__PARAM" g_cclosure_marshal_VOID__PARAM :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_PARAM ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_PARAM closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__PARAM closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__OBJECT
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__OBJECT" g_cclosure_marshal_VOID__OBJECT :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_OBJECT ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_OBJECT closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__OBJECT closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__LONG
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__LONG" g_cclosure_marshal_VOID__LONG :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_LONG ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_LONG closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__LONG closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__INT
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__INT" g_cclosure_marshal_VOID__INT :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_INT ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_INT closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__INT closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__FLOAT
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__FLOAT" g_cclosure_marshal_VOID__FLOAT :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_FLOAT ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_FLOAT closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__FLOAT closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__FLAGS
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__FLAGS" g_cclosure_marshal_VOID__FLAGS :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_FLAGS ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_FLAGS closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__FLAGS closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__ENUM
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__ENUM" g_cclosure_marshal_VOID__ENUM :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_ENUM ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_ENUM closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__ENUM closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__DOUBLE
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__DOUBLE" g_cclosure_marshal_VOID__DOUBLE :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_DOUBLE ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_DOUBLE closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__DOUBLE closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__CHAR
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__CHAR" g_cclosure_marshal_VOID__CHAR :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_CHAR ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_CHAR closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__CHAR closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__BOXED
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__BOXED" g_cclosure_marshal_VOID__BOXED :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_BOXED ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_BOXED closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__BOXED closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_VOID__BOOLEAN
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_VOID__BOOLEAN" g_cclosure_marshal_VOID__BOOLEAN :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalVOID_BOOLEAN ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalVOID_BOOLEAN closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_VOID__BOOLEAN closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_STRING__OBJECT_POINTER
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_STRING__OBJECT_POINTER" g_cclosure_marshal_STRING__OBJECT_POINTER :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalSTRING_OBJECTPOINTER ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalSTRING_OBJECTPOINTER closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_STRING__OBJECT_POINTER closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_BOOLEAN__FLAGS
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_BOOLEAN__FLAGS" g_cclosure_marshal_BOOLEAN__FLAGS :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalBOOLEAN_FLAGS ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalBOOLEAN_FLAGS closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_BOOLEAN__FLAGS closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_cclosure_marshal_BOOLEAN__BOXED_BOXED
--- Args : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "marshal_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_cclosure_marshal_BOOLEAN__BOXED_BOXED" g_cclosure_marshal_BOOLEAN__BOXED_BOXED :: 
-    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
-    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
-    Word32 ->                               -- n_param_values : TBasicType TUInt32
-    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
-    Ptr () ->                               -- invocation_hint : TBasicType TVoid
-    Ptr () ->                               -- marshal_data : TBasicType TVoid
-    IO ()
-
-
-cclosureMarshalBOOLEAN_BOXEDBOXED ::
-    (MonadIO m) =>
-    Closure ->                              -- closure
-    GValue ->                               -- return_value
-    Word32 ->                               -- n_param_values
-    GValue ->                               -- param_values
-    Ptr () ->                               -- invocation_hint
-    Ptr () ->                               -- marshal_data
-    m ()
-cclosureMarshalBOOLEAN_BOXEDBOXED closure return_value n_param_values param_values invocation_hint marshal_data = liftIO $ do
-    let closure' = unsafeManagedPtrGetPtr closure
-    let return_value' = unsafeManagedPtrGetPtr return_value
-    let param_values' = unsafeManagedPtrGetPtr param_values
-    g_cclosure_marshal_BOOLEAN__BOXED_BOXED closure' return_value' n_param_values param_values' invocation_hint marshal_data
-    touchManagedPtr closure
-    touchManagedPtr return_value
-    touchManagedPtr param_values
-    return ()
-
-
--- function g_boxed_free
--- Args : [Arg {argName = "boxed_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "boxed", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "boxed_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "boxed", 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_boxed_free" g_boxed_free :: 
-    CGType ->                               -- boxed_type : TBasicType TGType
-    Ptr () ->                               -- boxed : TBasicType TVoid
-    IO ()
-
-
-boxedFree ::
-    (MonadIO m) =>
-    GType ->                                -- boxed_type
-    Ptr () ->                               -- boxed
-    m ()
-boxedFree boxed_type boxed = liftIO $ do
-    let boxed_type' = gtypeToCGType boxed_type
-    g_boxed_free boxed_type' boxed
-    return ()
-
-
--- function g_boxed_copy
--- Args : [Arg {argName = "boxed_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_boxed", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "boxed_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_boxed", 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_boxed_copy" g_boxed_copy :: 
-    CGType ->                               -- boxed_type : TBasicType TGType
-    Ptr () ->                               -- src_boxed : TBasicType TVoid
-    IO ()
-
-
-boxedCopy ::
-    (MonadIO m) =>
-    GType ->                                -- boxed_type
-    Ptr () ->                               -- src_boxed
-    m ()
-boxedCopy boxed_type src_boxed = liftIO $ do
-    let boxed_type' = gtypeToCGType boxed_type
-    g_boxed_copy boxed_type' src_boxed
+
+{- |
+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.GObject.Functions
+    ( 
+
+ -- * Methods
+-- ** boxedCopy
+    boxedCopy                               ,
+
+
+-- ** boxedFree
+    boxedFree                               ,
+
+
+-- ** enumCompleteTypeInfo
+    enumCompleteTypeInfo                    ,
+
+
+-- ** enumGetValue
+    enumGetValue                            ,
+
+
+-- ** enumGetValueByName
+    enumGetValueByName                      ,
+
+
+-- ** enumGetValueByNick
+    enumGetValueByNick                      ,
+
+
+-- ** enumRegisterStatic
+    enumRegisterStatic                      ,
+
+
+-- ** flagsCompleteTypeInfo
+    flagsCompleteTypeInfo                   ,
+
+
+-- ** flagsGetFirstValue
+    flagsGetFirstValue                      ,
+
+
+-- ** flagsGetValueByName
+    flagsGetValueByName                     ,
+
+
+-- ** flagsGetValueByNick
+    flagsGetValueByNick                     ,
+
+
+-- ** flagsRegisterStatic
+    flagsRegisterStatic                     ,
+
+
+-- ** gtypeGetType
+    gtypeGetType                            ,
+
+
+-- ** paramSpecBoolean
+    paramSpecBoolean                        ,
+
+
+-- ** paramSpecBoxed
+    paramSpecBoxed                          ,
+
+
+-- ** paramSpecChar
+    paramSpecChar                           ,
+
+
+-- ** paramSpecDouble
+    paramSpecDouble                         ,
+
+
+-- ** paramSpecEnum
+    paramSpecEnum                           ,
+
+
+-- ** paramSpecFlags
+    paramSpecFlags                          ,
+
+
+-- ** paramSpecFloat
+    paramSpecFloat                          ,
+
+
+-- ** paramSpecGtype
+    paramSpecGtype                          ,
+
+
+-- ** paramSpecInt
+    paramSpecInt                            ,
+
+
+-- ** paramSpecInt64
+    paramSpecInt64                          ,
+
+
+-- ** paramSpecLong
+    paramSpecLong                           ,
+
+
+-- ** paramSpecObject
+    paramSpecObject                         ,
+
+
+-- ** paramSpecParam
+    paramSpecParam                          ,
+
+
+-- ** paramSpecPointer
+    paramSpecPointer                        ,
+
+
+-- ** paramSpecString
+    paramSpecString                         ,
+
+
+-- ** paramSpecUchar
+    paramSpecUchar                          ,
+
+
+-- ** paramSpecUint
+    paramSpecUint                           ,
+
+
+-- ** paramSpecUint64
+    paramSpecUint64                         ,
+
+
+-- ** paramSpecUlong
+    paramSpecUlong                          ,
+
+
+-- ** paramSpecUnichar
+    paramSpecUnichar                        ,
+
+
+-- ** paramSpecVariant
+    paramSpecVariant                        ,
+
+
+-- ** paramTypeRegisterStatic
+    paramTypeRegisterStatic                 ,
+
+
+-- ** paramValueConvert
+    paramValueConvert                       ,
+
+
+-- ** paramValueDefaults
+    paramValueDefaults                      ,
+
+
+-- ** paramValueSetDefault
+    paramValueSetDefault                    ,
+
+
+-- ** paramValueValidate
+    paramValueValidate                      ,
+
+
+-- ** paramValuesCmp
+    paramValuesCmp                          ,
+
+
+-- ** pointerTypeRegisterStatic
+    pointerTypeRegisterStatic               ,
+
+
+-- ** signalAccumulatorFirstWins
+    signalAccumulatorFirstWins              ,
+
+
+-- ** signalAccumulatorTrueHandled
+    signalAccumulatorTrueHandled            ,
+
+
+-- ** signalAddEmissionHook
+    signalAddEmissionHook                   ,
+
+
+-- ** signalChainFromOverridden
+    signalChainFromOverridden               ,
+
+
+-- ** signalConnectClosure
+    signalConnectClosure                    ,
+
+
+-- ** signalConnectClosureById
+    signalConnectClosureById                ,
+
+
+-- ** signalEmitv
+    signalEmitv                             ,
+
+
+-- ** signalGetInvocationHint
+    signalGetInvocationHint                 ,
+
+
+-- ** signalHandlerBlock
+    signalHandlerBlock                      ,
+
+
+-- ** signalHandlerDisconnect
+    signalHandlerDisconnect                 ,
+
+
+-- ** signalHandlerFind
+    signalHandlerFind                       ,
+
+
+-- ** signalHandlerIsConnected
+    signalHandlerIsConnected                ,
+
+
+-- ** signalHandlerUnblock
+    signalHandlerUnblock                    ,
+
+
+-- ** signalHandlersBlockMatched
+    signalHandlersBlockMatched              ,
+
+
+-- ** signalHandlersDestroy
+    signalHandlersDestroy                   ,
+
+
+-- ** signalHandlersDisconnectMatched
+    signalHandlersDisconnectMatched         ,
+
+
+-- ** signalHandlersUnblockMatched
+    signalHandlersUnblockMatched            ,
+
+
+-- ** signalHasHandlerPending
+    signalHasHandlerPending                 ,
+
+
+-- ** signalListIds
+    signalListIds                           ,
+
+
+-- ** signalLookup
+    signalLookup                            ,
+
+
+-- ** signalName
+    signalName                              ,
+
+
+-- ** signalOverrideClassClosure
+    signalOverrideClassClosure              ,
+
+
+-- ** signalParseName
+    signalParseName                         ,
+
+
+-- ** signalQuery
+    signalQuery                             ,
+
+
+-- ** signalRemoveEmissionHook
+    signalRemoveEmissionHook                ,
+
+
+-- ** signalStopEmission
+    signalStopEmission                      ,
+
+
+-- ** signalStopEmissionByName
+    signalStopEmissionByName                ,
+
+
+-- ** signalTypeCclosureNew
+    signalTypeCclosureNew                   ,
+
+
+-- ** sourceSetClosure
+    sourceSetClosure                        ,
+
+
+-- ** sourceSetDummyCallback
+    sourceSetDummyCallback                  ,
+
+
+-- ** strdupValueContents
+    strdupValueContents                     ,
+
+
+-- ** typeAddClassPrivate
+    typeAddClassPrivate                     ,
+
+
+-- ** typeAddInstancePrivate
+    typeAddInstancePrivate                  ,
+
+
+-- ** typeAddInterfaceDynamic
+    typeAddInterfaceDynamic                 ,
+
+
+-- ** typeAddInterfaceStatic
+    typeAddInterfaceStatic                  ,
+
+
+-- ** typeCheckClassIsA
+    typeCheckClassIsA                       ,
+
+
+-- ** typeCheckInstance
+    typeCheckInstance                       ,
+
+
+-- ** typeCheckInstanceIsA
+    typeCheckInstanceIsA                    ,
+
+
+-- ** typeCheckInstanceIsFundamentallyA
+    typeCheckInstanceIsFundamentallyA       ,
+
+
+-- ** typeCheckIsValueType
+    typeCheckIsValueType                    ,
+
+
+-- ** typeCheckValue
+    typeCheckValue                          ,
+
+
+-- ** typeCheckValueHolds
+    typeCheckValueHolds                     ,
+
+
+-- ** typeChildren
+    typeChildren                            ,
+
+
+-- ** typeDefaultInterfacePeek
+    typeDefaultInterfacePeek                ,
+
+
+-- ** typeDefaultInterfaceRef
+    typeDefaultInterfaceRef                 ,
+
+
+-- ** typeDefaultInterfaceUnref
+    typeDefaultInterfaceUnref               ,
+
+
+-- ** typeDepth
+    typeDepth                               ,
+
+
+-- ** typeEnsure
+    typeEnsure                              ,
+
+
+-- ** typeFreeInstance
+    typeFreeInstance                        ,
+
+
+-- ** typeFromName
+    typeFromName                            ,
+
+
+-- ** typeFundamental
+    typeFundamental                         ,
+
+
+-- ** typeFundamentalNext
+    typeFundamentalNext                     ,
+
+
+-- ** typeGetInstanceCount
+    typeGetInstanceCount                    ,
+
+
+-- ** typeGetQdata
+    typeGetQdata                            ,
+
+
+-- ** typeGetTypeRegistrationSerial
+    typeGetTypeRegistrationSerial           ,
+
+
+-- ** typeInit
+    typeInit                                ,
+
+
+-- ** typeInitWithDebugFlags
+    typeInitWithDebugFlags                  ,
+
+
+-- ** typeInterfaces
+    typeInterfaces                          ,
+
+
+-- ** typeIsA
+    typeIsA                                 ,
+
+
+-- ** typeName
+    typeName                                ,
+
+
+-- ** typeNameFromClass
+    typeNameFromClass                       ,
+
+
+-- ** typeNameFromInstance
+    typeNameFromInstance                    ,
+
+
+-- ** typeNextBase
+    typeNextBase                            ,
+
+
+-- ** typeParent
+    typeParent                              ,
+
+
+-- ** typeQname
+    typeQname                               ,
+
+
+-- ** typeQuery
+    typeQuery                               ,
+
+
+-- ** typeRegisterDynamic
+    typeRegisterDynamic                     ,
+
+
+-- ** typeRegisterFundamental
+    typeRegisterFundamental                 ,
+
+
+-- ** typeRegisterStatic
+    typeRegisterStatic                      ,
+
+
+-- ** typeSetQdata
+    typeSetQdata                            ,
+
+
+-- ** typeTestFlags
+    typeTestFlags                           ,
+
+
+
+
+    ) 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.GObject.Types
+import GI.GObject.Callbacks
+import qualified GI.GLib as GLib
+
+-- function g_type_test_flags
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, 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 TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_test_flags" g_type_test_flags :: 
+    CGType ->                               -- type : TBasicType TGType
+    Word32 ->                               -- flags : TBasicType TUInt32
+    IO CInt
+
+
+typeTestFlags ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> Word32                               -- flags
+    -> m Bool                               -- result
+typeTestFlags type_ flags = liftIO $ do
+    let type_' = gtypeToCGType type_
+    result <- g_type_test_flags type_' flags
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_type_set_qdata
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quark", 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}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_set_qdata" g_type_set_qdata :: 
+    CGType ->                               -- type : TBasicType TGType
+    Word32 ->                               -- quark : TBasicType TUInt32
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO ()
+
+
+typeSetQdata ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> Word32                               -- quark
+    -> Ptr ()                               -- data_
+    -> m ()                                 -- result
+typeSetQdata type_ quark data_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    g_type_set_qdata type_' quark data_
+    return ()
+
+
+-- function g_type_register_static
+-- Args : [Arg {argCName = "parent_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_register_static" g_type_register_static :: 
+    CGType ->                               -- parent_type : TBasicType TGType
+    CString ->                              -- type_name : TBasicType TUTF8
+    Ptr TypeInfo ->                         -- info : TInterface "GObject" "TypeInfo"
+    CUInt ->                                -- flags : TInterface "GObject" "TypeFlags"
+    IO CGType
+
+
+typeRegisterStatic ::
+    (MonadIO m) =>
+    GType                                   -- parentType
+    -> T.Text                               -- typeName
+    -> TypeInfo                             -- info
+    -> [TypeFlags]                          -- flags
+    -> m GType                              -- result
+typeRegisterStatic parentType typeName info flags = liftIO $ do
+    let parentType' = gtypeToCGType parentType
+    typeName' <- textToCString typeName
+    let info' = unsafeManagedPtrGetPtr info
+    let flags' = gflagsToWord flags
+    result <- g_type_register_static parentType' typeName' info' flags'
+    let result' = GType result
+    touchManagedPtr info
+    freeMem typeName'
+    return result'
+
+
+-- function g_type_register_fundamental
+-- Args : [Arg {argCName = "type_id", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "finfo", argType = TInterface "GObject" "TypeFundamentalInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_register_fundamental" g_type_register_fundamental :: 
+    CGType ->                               -- type_id : TBasicType TGType
+    CString ->                              -- type_name : TBasicType TUTF8
+    Ptr TypeInfo ->                         -- info : TInterface "GObject" "TypeInfo"
+    Ptr TypeFundamentalInfo ->              -- finfo : TInterface "GObject" "TypeFundamentalInfo"
+    CUInt ->                                -- flags : TInterface "GObject" "TypeFlags"
+    IO CGType
+
+
+typeRegisterFundamental ::
+    (MonadIO m) =>
+    GType                                   -- typeId
+    -> T.Text                               -- typeName
+    -> TypeInfo                             -- info
+    -> TypeFundamentalInfo                  -- finfo
+    -> [TypeFlags]                          -- flags
+    -> m GType                              -- result
+typeRegisterFundamental typeId typeName info finfo flags = liftIO $ do
+    let typeId' = gtypeToCGType typeId
+    typeName' <- textToCString typeName
+    let info' = unsafeManagedPtrGetPtr info
+    let finfo' = unsafeManagedPtrGetPtr finfo
+    let flags' = gflagsToWord flags
+    result <- g_type_register_fundamental typeId' typeName' info' finfo' flags'
+    let result' = GType result
+    touchManagedPtr info
+    touchManagedPtr finfo
+    freeMem typeName'
+    return result'
+
+
+-- function g_type_register_dynamic
+-- Args : [Arg {argCName = "parent_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plugin", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_register_dynamic" g_type_register_dynamic :: 
+    CGType ->                               -- parent_type : TBasicType TGType
+    CString ->                              -- type_name : TBasicType TUTF8
+    Ptr TypePlugin ->                       -- plugin : TInterface "GObject" "TypePlugin"
+    CUInt ->                                -- flags : TInterface "GObject" "TypeFlags"
+    IO CGType
+
+
+typeRegisterDynamic ::
+    (MonadIO m, TypePluginK a) =>
+    GType                                   -- parentType
+    -> T.Text                               -- typeName
+    -> a                                    -- plugin
+    -> [TypeFlags]                          -- flags
+    -> m GType                              -- result
+typeRegisterDynamic parentType typeName plugin flags = liftIO $ do
+    let parentType' = gtypeToCGType parentType
+    typeName' <- textToCString typeName
+    let plugin' = unsafeManagedPtrCastPtr plugin
+    let flags' = gflagsToWord flags
+    result <- g_type_register_dynamic parentType' typeName' plugin' flags'
+    let result' = GType result
+    touchManagedPtr plugin
+    freeMem typeName'
+    return result'
+
+
+-- function g_type_query
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query", argType = TInterface "GObject" "TypeQuery", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_query" g_type_query :: 
+    CGType ->                               -- type : TBasicType TGType
+    Ptr TypeQuery ->                        -- query : TInterface "GObject" "TypeQuery"
+    IO ()
+
+
+typeQuery ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m (TypeQuery)                        -- result
+typeQuery type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    query <- callocBytes 24 :: IO (Ptr TypeQuery)
+    g_type_query type_' query
+    query' <- (wrapPtr TypeQuery) query
+    return query'
+
+
+-- function g_type_qname
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, 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_type_qname" g_type_qname :: 
+    CGType ->                               -- type : TBasicType TGType
+    IO Word32
+
+
+typeQname ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m Word32                             -- result
+typeQname type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    result <- g_type_qname type_'
+    return result
+
+
+-- function g_type_parent
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_parent" g_type_parent :: 
+    CGType ->                               -- type : TBasicType TGType
+    IO CGType
+
+
+typeParent ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m GType                              -- result
+typeParent type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    result <- g_type_parent type_'
+    let result' = GType result
+    return result'
+
+
+-- function g_type_next_base
+-- Args : [Arg {argCName = "leaf_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_next_base" g_type_next_base :: 
+    CGType ->                               -- leaf_type : TBasicType TGType
+    CGType ->                               -- root_type : TBasicType TGType
+    IO CGType
+
+
+typeNextBase ::
+    (MonadIO m) =>
+    GType                                   -- leafType
+    -> GType                                -- rootType
+    -> m GType                              -- result
+typeNextBase leafType rootType = liftIO $ do
+    let leafType' = gtypeToCGType leafType
+    let rootType' = gtypeToCGType rootType
+    result <- g_type_next_base leafType' rootType'
+    let result' = GType result
+    return result'
+
+
+-- function g_type_name_from_instance
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "TypeInstance", 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_type_name_from_instance" g_type_name_from_instance :: 
+    Ptr TypeInstance ->                     -- instance : TInterface "GObject" "TypeInstance"
+    IO CString
+
+
+typeNameFromInstance ::
+    (MonadIO m) =>
+    TypeInstance                            -- instance_
+    -> m T.Text                             -- result
+typeNameFromInstance instance_ = liftIO $ do
+    let instance_' = unsafeManagedPtrGetPtr instance_
+    result <- g_type_name_from_instance instance_'
+    checkUnexpectedReturnNULL "g_type_name_from_instance" result
+    result' <- cstringToText result
+    touchManagedPtr instance_
+    return result'
+
+
+-- function g_type_name_from_class
+-- Args : [Arg {argCName = "g_class", argType = TInterface "GObject" "TypeClass", 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_type_name_from_class" g_type_name_from_class :: 
+    Ptr TypeClass ->                        -- g_class : TInterface "GObject" "TypeClass"
+    IO CString
+
+
+typeNameFromClass ::
+    (MonadIO m) =>
+    TypeClass                               -- gClass
+    -> m T.Text                             -- result
+typeNameFromClass gClass = liftIO $ do
+    let gClass' = unsafeManagedPtrGetPtr gClass
+    result <- g_type_name_from_class gClass'
+    checkUnexpectedReturnNULL "g_type_name_from_class" result
+    result' <- cstringToText result
+    touchManagedPtr gClass
+    return result'
+
+
+-- function g_type_name
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, 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_type_name" g_type_name :: 
+    CGType ->                               -- type : TBasicType TGType
+    IO CString
+
+
+typeName ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m T.Text                             -- result
+typeName type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    result <- g_type_name type_'
+    checkUnexpectedReturnNULL "g_type_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_type_is_a
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_a_type", argType = TBasicType TGType, 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_type_is_a" g_type_is_a :: 
+    CGType ->                               -- type : TBasicType TGType
+    CGType ->                               -- is_a_type : TBasicType TGType
+    IO CInt
+
+
+typeIsA ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> GType                                -- isAType
+    -> m Bool                               -- result
+typeIsA type_ isAType = liftIO $ do
+    let type_' = gtypeToCGType type_
+    let isAType' = gtypeToCGType isAType
+    result <- g_type_is_a type_' isAType'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_type_interfaces
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_interfaces", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_interfaces", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : TCArray False (-1) 1 (TBasicType TGType)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_interfaces" g_type_interfaces :: 
+    CGType ->                               -- type : TBasicType TGType
+    Ptr Word32 ->                           -- n_interfaces : TBasicType TUInt32
+    IO (Ptr CGType)
+
+
+typeInterfaces ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m [GType]                            -- result
+typeInterfaces type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    nInterfaces <- allocMem :: IO (Ptr Word32)
+    result <- g_type_interfaces type_' nInterfaces
+    nInterfaces' <- peek nInterfaces
+    checkUnexpectedReturnNULL "g_type_interfaces" result
+    result' <- (unpackMapStorableArrayWithLength GType nInterfaces') result
+    freeMem result
+    freeMem nInterfaces
+    return result'
+
+
+-- function g_type_init_with_debug_flags
+-- Args : [Arg {argCName = "debug_flags", argType = TInterface "GObject" "TypeDebugFlags", 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_type_init_with_debug_flags" g_type_init_with_debug_flags :: 
+    CUInt ->                                -- debug_flags : TInterface "GObject" "TypeDebugFlags"
+    IO ()
+
+{-# DEPRECATED typeInitWithDebugFlags ["(Since version 2.36)","the type system is now initialised automatically"]#-}
+typeInitWithDebugFlags ::
+    (MonadIO m) =>
+    [TypeDebugFlags]                        -- debugFlags
+    -> m ()                                 -- result
+typeInitWithDebugFlags debugFlags = liftIO $ do
+    let debugFlags' = gflagsToWord debugFlags
+    g_type_init_with_debug_flags debugFlags'
+    return ()
+
+
+-- function g_type_init
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_init" g_type_init :: 
+    IO ()
+
+{-# DEPRECATED typeInit ["(Since version 2.36)","the type system is now initialised automatically"]#-}
+typeInit ::
+    (MonadIO m) =>
+    m ()                                    -- result
+typeInit  = liftIO $ do
+    g_type_init
+    return ()
+
+
+-- function g_type_get_type_registration_serial
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_get_type_registration_serial" g_type_get_type_registration_serial :: 
+    IO Word32
+
+
+typeGetTypeRegistrationSerial ::
+    (MonadIO m) =>
+    m Word32                                -- result
+typeGetTypeRegistrationSerial  = liftIO $ do
+    result <- g_type_get_type_registration_serial
+    return result
+
+
+-- function g_type_get_qdata
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quark", 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_type_get_qdata" g_type_get_qdata :: 
+    CGType ->                               -- type : TBasicType TGType
+    Word32 ->                               -- quark : TBasicType TUInt32
+    IO ()
+
+
+typeGetQdata ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> Word32                               -- quark
+    -> m ()                                 -- result
+typeGetQdata type_ quark = liftIO $ do
+    let type_' = gtypeToCGType type_
+    g_type_get_qdata type_' quark
+    return ()
+
+
+-- function g_type_get_plugin
+-- XXX Could not generate function g_type_get_plugin
+-- Error was : Bad introspection data: "Wrapping not a GObject with no copy..."
+
+-- function g_type_get_instance_count
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, 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_type_get_instance_count" g_type_get_instance_count :: 
+    CGType ->                               -- type : TBasicType TGType
+    IO Int32
+
+
+typeGetInstanceCount ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m Int32                              -- result
+typeGetInstanceCount type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    result <- g_type_get_instance_count type_'
+    return result
+
+
+-- function g_type_fundamental_next
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_fundamental_next" g_type_fundamental_next :: 
+    IO CGType
+
+
+typeFundamentalNext ::
+    (MonadIO m) =>
+    m GType                                 -- result
+typeFundamentalNext  = liftIO $ do
+    result <- g_type_fundamental_next
+    let result' = GType result
+    return result'
+
+
+-- function g_type_fundamental
+-- Args : [Arg {argCName = "type_id", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_fundamental" g_type_fundamental :: 
+    CGType ->                               -- type_id : TBasicType TGType
+    IO CGType
+
+
+typeFundamental ::
+    (MonadIO m) =>
+    GType                                   -- typeId
+    -> m GType                              -- result
+typeFundamental typeId = liftIO $ do
+    let typeId' = gtypeToCGType typeId
+    result <- g_type_fundamental typeId'
+    let result' = GType result
+    return result'
+
+
+-- function g_type_from_name
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_from_name" g_type_from_name :: 
+    CString ->                              -- name : TBasicType TUTF8
+    IO CGType
+
+
+typeFromName ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> m GType                              -- result
+typeFromName name = liftIO $ do
+    name' <- textToCString name
+    result <- g_type_from_name name'
+    let result' = GType result
+    freeMem name'
+    return result'
+
+
+-- function g_type_free_instance
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "TypeInstance", 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_type_free_instance" g_type_free_instance :: 
+    Ptr TypeInstance ->                     -- instance : TInterface "GObject" "TypeInstance"
+    IO ()
+
+
+typeFreeInstance ::
+    (MonadIO m) =>
+    TypeInstance                            -- instance_
+    -> m ()                                 -- result
+typeFreeInstance instance_ = liftIO $ do
+    let instance_' = unsafeManagedPtrGetPtr instance_
+    g_type_free_instance instance_'
+    touchManagedPtr instance_
+    return ()
+
+
+-- function g_type_ensure
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, 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_type_ensure" g_type_ensure :: 
+    CGType ->                               -- type : TBasicType TGType
+    IO ()
+
+
+typeEnsure ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m ()                                 -- result
+typeEnsure type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    g_type_ensure type_'
+    return ()
+
+
+-- function g_type_depth
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, 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_type_depth" g_type_depth :: 
+    CGType ->                               -- type : TBasicType TGType
+    IO Word32
+
+
+typeDepth ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m Word32                             -- result
+typeDepth type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    result <- g_type_depth type_'
+    return result
+
+
+-- function g_type_default_interface_unref
+-- Args : [Arg {argCName = "g_iface", argType = TInterface "GObject" "TypeInterface", 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_type_default_interface_unref" g_type_default_interface_unref :: 
+    Ptr TypeInterface ->                    -- g_iface : TInterface "GObject" "TypeInterface"
+    IO ()
+
+
+typeDefaultInterfaceUnref ::
+    (MonadIO m) =>
+    TypeInterface                           -- gIface
+    -> m ()                                 -- result
+typeDefaultInterfaceUnref gIface = liftIO $ do
+    let gIface' = unsafeManagedPtrGetPtr gIface
+    g_type_default_interface_unref gIface'
+    touchManagedPtr gIface
+    return ()
+
+
+-- function g_type_default_interface_ref
+-- Args : [Arg {argCName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "TypeInterface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_default_interface_ref" g_type_default_interface_ref :: 
+    CGType ->                               -- g_type : TBasicType TGType
+    IO (Ptr TypeInterface)
+
+
+typeDefaultInterfaceRef ::
+    (MonadIO m) =>
+    GType                                   -- gType
+    -> m TypeInterface                      -- result
+typeDefaultInterfaceRef gType = liftIO $ do
+    let gType' = gtypeToCGType gType
+    result <- g_type_default_interface_ref gType'
+    checkUnexpectedReturnNULL "g_type_default_interface_ref" result
+    result' <- (newPtr 16 TypeInterface) result
+    return result'
+
+
+-- function g_type_default_interface_peek
+-- Args : [Arg {argCName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "TypeInterface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_default_interface_peek" g_type_default_interface_peek :: 
+    CGType ->                               -- g_type : TBasicType TGType
+    IO (Ptr TypeInterface)
+
+
+typeDefaultInterfacePeek ::
+    (MonadIO m) =>
+    GType                                   -- gType
+    -> m TypeInterface                      -- result
+typeDefaultInterfacePeek gType = liftIO $ do
+    let gType' = gtypeToCGType gType
+    result <- g_type_default_interface_peek gType'
+    checkUnexpectedReturnNULL "g_type_default_interface_peek" result
+    result' <- (newPtr 16 TypeInterface) result
+    return result'
+
+
+-- function g_type_children
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_children", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_children", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : TCArray False (-1) 1 (TBasicType TGType)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_children" g_type_children :: 
+    CGType ->                               -- type : TBasicType TGType
+    Ptr Word32 ->                           -- n_children : TBasicType TUInt32
+    IO (Ptr CGType)
+
+
+typeChildren ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m [GType]                            -- result
+typeChildren type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    nChildren <- allocMem :: IO (Ptr Word32)
+    result <- g_type_children type_' nChildren
+    nChildren' <- peek nChildren
+    checkUnexpectedReturnNULL "g_type_children" result
+    result' <- (unpackMapStorableArrayWithLength GType nChildren') result
+    freeMem result
+    freeMem nChildren
+    return result'
+
+
+-- function g_type_check_value_holds
+-- Args : [Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TBasicType TGType, 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_type_check_value_holds" g_type_check_value_holds :: 
+    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
+    CGType ->                               -- type : TBasicType TGType
+    IO CInt
+
+
+typeCheckValueHolds ::
+    (MonadIO m) =>
+    GValue                                  -- value
+    -> GType                                -- type_
+    -> m Bool                               -- result
+typeCheckValueHolds value type_ = liftIO $ do
+    let value' = unsafeManagedPtrGetPtr value
+    let type_' = gtypeToCGType type_
+    result <- g_type_check_value_holds value' type_'
+    let result' = (/= 0) result
+    touchManagedPtr value
+    return result'
+
+
+-- function g_type_check_value
+-- Args : [Arg {argCName = "value", argType = TInterface "GObject" "Value", 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_type_check_value" g_type_check_value :: 
+    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
+    IO CInt
+
+
+typeCheckValue ::
+    (MonadIO m) =>
+    GValue                                  -- value
+    -> m Bool                               -- result
+typeCheckValue value = liftIO $ do
+    let value' = unsafeManagedPtrGetPtr value
+    result <- g_type_check_value value'
+    let result' = (/= 0) result
+    touchManagedPtr value
+    return result'
+
+
+-- function g_type_check_is_value_type
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, 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_type_check_is_value_type" g_type_check_is_value_type :: 
+    CGType ->                               -- type : TBasicType TGType
+    IO CInt
+
+
+typeCheckIsValueType ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m Bool                               -- result
+typeCheckIsValueType type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    result <- g_type_check_is_value_type type_'
+    let result' = (/= 0) result
+    return result'
+
+
+-- function g_type_check_instance_is_fundamentally_a
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "fundamental_type", argType = TBasicType TGType, 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_type_check_instance_is_fundamentally_a" g_type_check_instance_is_fundamentally_a :: 
+    Ptr TypeInstance ->                     -- instance : TInterface "GObject" "TypeInstance"
+    CGType ->                               -- fundamental_type : TBasicType TGType
+    IO CInt
+
+
+typeCheckInstanceIsFundamentallyA ::
+    (MonadIO m) =>
+    TypeInstance                            -- instance_
+    -> GType                                -- fundamentalType
+    -> m Bool                               -- result
+typeCheckInstanceIsFundamentallyA instance_ fundamentalType = liftIO $ do
+    let instance_' = unsafeManagedPtrGetPtr instance_
+    let fundamentalType' = gtypeToCGType fundamentalType
+    result <- g_type_check_instance_is_fundamentally_a instance_' fundamentalType'
+    let result' = (/= 0) result
+    touchManagedPtr instance_
+    return result'
+
+
+-- function g_type_check_instance_is_a
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "TypeInstance", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iface_type", argType = TBasicType TGType, 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_type_check_instance_is_a" g_type_check_instance_is_a :: 
+    Ptr TypeInstance ->                     -- instance : TInterface "GObject" "TypeInstance"
+    CGType ->                               -- iface_type : TBasicType TGType
+    IO CInt
+
+
+typeCheckInstanceIsA ::
+    (MonadIO m) =>
+    TypeInstance                            -- instance_
+    -> GType                                -- ifaceType
+    -> m Bool                               -- result
+typeCheckInstanceIsA instance_ ifaceType = liftIO $ do
+    let instance_' = unsafeManagedPtrGetPtr instance_
+    let ifaceType' = gtypeToCGType ifaceType
+    result <- g_type_check_instance_is_a instance_' ifaceType'
+    let result' = (/= 0) result
+    touchManagedPtr instance_
+    return result'
+
+
+-- function g_type_check_instance
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "TypeInstance", 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_type_check_instance" g_type_check_instance :: 
+    Ptr TypeInstance ->                     -- instance : TInterface "GObject" "TypeInstance"
+    IO CInt
+
+
+typeCheckInstance ::
+    (MonadIO m) =>
+    TypeInstance                            -- instance_
+    -> m Bool                               -- result
+typeCheckInstance instance_ = liftIO $ do
+    let instance_' = unsafeManagedPtrGetPtr instance_
+    result <- g_type_check_instance instance_'
+    let result' = (/= 0) result
+    touchManagedPtr instance_
+    return result'
+
+
+-- function g_type_check_class_is_a
+-- Args : [Arg {argCName = "g_class", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_a_type", argType = TBasicType TGType, 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_type_check_class_is_a" g_type_check_class_is_a :: 
+    Ptr TypeClass ->                        -- g_class : TInterface "GObject" "TypeClass"
+    CGType ->                               -- is_a_type : TBasicType TGType
+    IO CInt
+
+
+typeCheckClassIsA ::
+    (MonadIO m) =>
+    TypeClass                               -- gClass
+    -> GType                                -- isAType
+    -> m Bool                               -- result
+typeCheckClassIsA gClass isAType = liftIO $ do
+    let gClass' = unsafeManagedPtrGetPtr gClass
+    let isAType' = gtypeToCGType isAType
+    result <- g_type_check_class_is_a gClass' isAType'
+    let result' = (/= 0) result
+    touchManagedPtr gClass
+    return result'
+
+
+-- function g_type_add_interface_static
+-- Args : [Arg {argCName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface "GObject" "InterfaceInfo", 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_type_add_interface_static" g_type_add_interface_static :: 
+    CGType ->                               -- instance_type : TBasicType TGType
+    CGType ->                               -- interface_type : TBasicType TGType
+    Ptr InterfaceInfo ->                    -- info : TInterface "GObject" "InterfaceInfo"
+    IO ()
+
+
+typeAddInterfaceStatic ::
+    (MonadIO m) =>
+    GType                                   -- instanceType
+    -> GType                                -- interfaceType
+    -> InterfaceInfo                        -- info
+    -> m ()                                 -- result
+typeAddInterfaceStatic instanceType interfaceType info = liftIO $ do
+    let instanceType' = gtypeToCGType instanceType
+    let interfaceType' = gtypeToCGType interfaceType
+    let info' = unsafeManagedPtrGetPtr info
+    g_type_add_interface_static instanceType' interfaceType' info'
+    touchManagedPtr info
+    return ()
+
+
+-- function g_type_add_interface_dynamic
+-- Args : [Arg {argCName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "plugin", argType = TInterface "GObject" "TypePlugin", 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_type_add_interface_dynamic" g_type_add_interface_dynamic :: 
+    CGType ->                               -- instance_type : TBasicType TGType
+    CGType ->                               -- interface_type : TBasicType TGType
+    Ptr TypePlugin ->                       -- plugin : TInterface "GObject" "TypePlugin"
+    IO ()
+
+
+typeAddInterfaceDynamic ::
+    (MonadIO m, TypePluginK a) =>
+    GType                                   -- instanceType
+    -> GType                                -- interfaceType
+    -> a                                    -- plugin
+    -> m ()                                 -- result
+typeAddInterfaceDynamic instanceType interfaceType plugin = liftIO $ do
+    let instanceType' = gtypeToCGType instanceType
+    let interfaceType' = gtypeToCGType interfaceType
+    let plugin' = unsafeManagedPtrCastPtr plugin
+    g_type_add_interface_dynamic instanceType' interfaceType' plugin'
+    touchManagedPtr plugin
+    return ()
+
+
+-- function g_type_add_instance_private
+-- Args : [Arg {argCName = "class_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "private_size", 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_type_add_instance_private" g_type_add_instance_private :: 
+    CGType ->                               -- class_type : TBasicType TGType
+    Word64 ->                               -- private_size : TBasicType TUInt64
+    IO Int32
+
+
+typeAddInstancePrivate ::
+    (MonadIO m) =>
+    GType                                   -- classType
+    -> Word64                               -- privateSize
+    -> m Int32                              -- result
+typeAddInstancePrivate classType privateSize = liftIO $ do
+    let classType' = gtypeToCGType classType
+    result <- g_type_add_instance_private classType' privateSize
+    return result
+
+
+-- function g_type_add_class_private
+-- Args : [Arg {argCName = "class_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "private_size", 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_type_add_class_private" g_type_add_class_private :: 
+    CGType ->                               -- class_type : TBasicType TGType
+    Word64 ->                               -- private_size : TBasicType TUInt64
+    IO ()
+
+
+typeAddClassPrivate ::
+    (MonadIO m) =>
+    GType                                   -- classType
+    -> Word64                               -- privateSize
+    -> m ()                                 -- result
+typeAddClassPrivate classType privateSize = liftIO $ do
+    let classType' = gtypeToCGType classType
+    g_type_add_class_private classType' privateSize
+    return ()
+
+
+-- function g_strdup_value_contents
+-- Args : [Arg {argCName = "value", argType = TInterface "GObject" "Value", 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_value_contents" g_strdup_value_contents :: 
+    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
+    IO CString
+
+
+strdupValueContents ::
+    (MonadIO m) =>
+    GValue                                  -- value
+    -> m T.Text                             -- result
+strdupValueContents value = liftIO $ do
+    let value' = unsafeManagedPtrGetPtr value
+    result <- g_strdup_value_contents value'
+    checkUnexpectedReturnNULL "g_strdup_value_contents" result
+    result' <- cstringToText result
+    freeMem result
+    touchManagedPtr value
+    return result'
+
+
+-- function g_source_set_dummy_callback
+-- Args : [Arg {argCName = "source", argType = TInterface "GLib" "Source", 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_dummy_callback" g_source_set_dummy_callback :: 
+    Ptr GLib.Source ->                      -- source : TInterface "GLib" "Source"
+    IO ()
+
+
+sourceSetDummyCallback ::
+    (MonadIO m) =>
+    GLib.Source                             -- source
+    -> m ()                                 -- result
+sourceSetDummyCallback source = liftIO $ do
+    let source' = unsafeManagedPtrGetPtr source
+    g_source_set_dummy_callback source'
+    touchManagedPtr source
+    return ()
+
+
+-- function g_source_set_closure
+-- Args : [Arg {argCName = "source", argType = TInterface "GLib" "Source", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "closure", argType = TInterface "GObject" "Closure", 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_closure" g_source_set_closure :: 
+    Ptr GLib.Source ->                      -- source : TInterface "GLib" "Source"
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    IO ()
+
+
+sourceSetClosure ::
+    (MonadIO m) =>
+    GLib.Source                             -- source
+    -> Closure                              -- closure
+    -> m ()                                 -- result
+sourceSetClosure source closure = liftIO $ do
+    let source' = unsafeManagedPtrGetPtr source
+    let closure' = unsafeManagedPtrGetPtr closure
+    g_source_set_closure source' closure'
+    touchManagedPtr source
+    touchManagedPtr closure
+    return ()
+
+
+-- function g_signal_type_cclosure_new
+-- Args : [Arg {argCName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "struct_offset", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "Closure"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_type_cclosure_new" g_signal_type_cclosure_new :: 
+    CGType ->                               -- itype : TBasicType TGType
+    Word32 ->                               -- struct_offset : TBasicType TUInt32
+    IO (Ptr Closure)
+
+
+signalTypeCclosureNew ::
+    (MonadIO m) =>
+    GType                                   -- itype
+    -> Word32                               -- structOffset
+    -> m Closure                            -- result
+signalTypeCclosureNew itype structOffset = liftIO $ do
+    let itype' = gtypeToCGType itype
+    result <- g_signal_type_cclosure_new itype' structOffset
+    checkUnexpectedReturnNULL "g_signal_type_cclosure_new" result
+    result' <- (wrapBoxed Closure) result
+    return result'
+
+
+-- function g_signal_stop_emission_by_name
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detailed_signal", 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_signal_stop_emission_by_name" g_signal_stop_emission_by_name :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    CString ->                              -- detailed_signal : TBasicType TUTF8
+    IO ()
+
+
+signalStopEmissionByName ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> T.Text                               -- detailedSignal
+    -> m ()                                 -- result
+signalStopEmissionByName instance_ detailedSignal = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    detailedSignal' <- textToCString detailedSignal
+    g_signal_stop_emission_by_name instance_' detailedSignal'
+    touchManagedPtr instance_
+    freeMem detailedSignal'
+    return ()
+
+
+-- function g_signal_stop_emission
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detail", 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_signal_stop_emission" g_signal_stop_emission :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Word32 ->                               -- detail : TBasicType TUInt32
+    IO ()
+
+
+signalStopEmission ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> Word32                               -- signalId
+    -> Word32                               -- detail
+    -> m ()                                 -- result
+signalStopEmission instance_ signalId detail = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    g_signal_stop_emission instance_' signalId detail
+    touchManagedPtr instance_
+    return ()
+
+
+-- function g_signal_remove_emission_hook
+-- Args : [Arg {argCName = "signal_id", argType = TBasicType TUInt32, 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 TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_remove_emission_hook" g_signal_remove_emission_hook :: 
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Word64 ->                               -- hook_id : TBasicType TUInt64
+    IO ()
+
+
+signalRemoveEmissionHook ::
+    (MonadIO m) =>
+    Word32                                  -- signalId
+    -> Word64                               -- hookId
+    -> m ()                                 -- result
+signalRemoveEmissionHook signalId hookId = liftIO $ do
+    g_signal_remove_emission_hook signalId hookId
+    return ()
+
+
+-- function g_signal_query
+-- Args : [Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "query", argType = TInterface "GObject" "SignalQuery", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_query" g_signal_query :: 
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Ptr SignalQuery ->                      -- query : TInterface "GObject" "SignalQuery"
+    IO ()
+
+
+signalQuery ::
+    (MonadIO m) =>
+    Word32                                  -- signalId
+    -> m (SignalQuery)                      -- result
+signalQuery signalId = liftIO $ do
+    query <- callocBytes 56 :: IO (Ptr SignalQuery)
+    g_signal_query signalId query
+    query' <- (wrapPtr SignalQuery) query
+    return query'
+
+
+-- function g_signal_parse_name
+-- Args : [Arg {argCName = "detailed_signal", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_id_p", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "detail_p", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "force_detail_quark", 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_signal_parse_name" g_signal_parse_name :: 
+    CString ->                              -- detailed_signal : TBasicType TUTF8
+    CGType ->                               -- itype : TBasicType TGType
+    Ptr Word32 ->                           -- signal_id_p : TBasicType TUInt32
+    Ptr Word32 ->                           -- detail_p : TBasicType TUInt32
+    CInt ->                                 -- force_detail_quark : TBasicType TBoolean
+    IO CInt
+
+
+signalParseName ::
+    (MonadIO m) =>
+    T.Text                                  -- detailedSignal
+    -> GType                                -- itype
+    -> Bool                                 -- forceDetailQuark
+    -> m (Bool,Word32,Word32)               -- result
+signalParseName detailedSignal itype forceDetailQuark = liftIO $ do
+    detailedSignal' <- textToCString detailedSignal
+    let itype' = gtypeToCGType itype
+    signalIdP <- allocMem :: IO (Ptr Word32)
+    detailP <- allocMem :: IO (Ptr Word32)
+    let forceDetailQuark' = (fromIntegral . fromEnum) forceDetailQuark
+    result <- g_signal_parse_name detailedSignal' itype' signalIdP detailP forceDetailQuark'
+    let result' = (/= 0) result
+    signalIdP' <- peek signalIdP
+    detailP' <- peek detailP
+    freeMem detailedSignal'
+    freeMem signalIdP
+    freeMem detailP
+    return (result', signalIdP', detailP')
+
+
+-- function g_signal_override_class_closure
+-- Args : [Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "class_closure", argType = TInterface "GObject" "Closure", 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_signal_override_class_closure" g_signal_override_class_closure :: 
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    CGType ->                               -- instance_type : TBasicType TGType
+    Ptr Closure ->                          -- class_closure : TInterface "GObject" "Closure"
+    IO ()
+
+
+signalOverrideClassClosure ::
+    (MonadIO m) =>
+    Word32                                  -- signalId
+    -> GType                                -- instanceType
+    -> Closure                              -- classClosure
+    -> m ()                                 -- result
+signalOverrideClassClosure signalId instanceType classClosure = liftIO $ do
+    let instanceType' = gtypeToCGType instanceType
+    let classClosure' = unsafeManagedPtrGetPtr classClosure
+    g_signal_override_class_closure signalId instanceType' classClosure'
+    touchManagedPtr classClosure
+    return ()
+
+
+-- function g_signal_name
+-- Args : [Arg {argCName = "signal_id", 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_signal_name" g_signal_name :: 
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    IO CString
+
+
+signalName ::
+    (MonadIO m) =>
+    Word32                                  -- signalId
+    -> m T.Text                             -- result
+signalName signalId = liftIO $ do
+    result <- g_signal_name signalId
+    checkUnexpectedReturnNULL "g_signal_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function g_signal_lookup
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "itype", argType = TBasicType TGType, 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_signal_lookup" g_signal_lookup :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CGType ->                               -- itype : TBasicType TGType
+    IO Word32
+
+
+signalLookup ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> GType                                -- itype
+    -> m Word32                             -- result
+signalLookup name itype = liftIO $ do
+    name' <- textToCString name
+    let itype' = gtypeToCGType itype
+    result <- g_signal_lookup name' itype'
+    freeMem name'
+    return result
+
+
+-- function g_signal_list_ids
+-- Args : [Arg {argCName = "itype", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_ids", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_ids", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : TCArray False (-1) 1 (TBasicType TUInt32)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_list_ids" g_signal_list_ids :: 
+    CGType ->                               -- itype : TBasicType TGType
+    Ptr Word32 ->                           -- n_ids : TBasicType TUInt32
+    IO (Ptr Word32)
+
+
+signalListIds ::
+    (MonadIO m) =>
+    GType                                   -- itype
+    -> m [Word32]                           -- result
+signalListIds itype = liftIO $ do
+    let itype' = gtypeToCGType itype
+    nIds <- allocMem :: IO (Ptr Word32)
+    result <- g_signal_list_ids itype' nIds
+    nIds' <- peek nIds
+    checkUnexpectedReturnNULL "g_signal_list_ids" result
+    result' <- (unpackStorableArrayWithLength nIds') result
+    freeMem nIds
+    return result'
+
+
+-- function g_signal_has_handler_pending
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "may_be_blocked", 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_signal_has_handler_pending" g_signal_has_handler_pending :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Word32 ->                               -- detail : TBasicType TUInt32
+    CInt ->                                 -- may_be_blocked : TBasicType TBoolean
+    IO CInt
+
+
+signalHasHandlerPending ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> Word32                               -- signalId
+    -> Word32                               -- detail
+    -> Bool                                 -- mayBeBlocked
+    -> m Bool                               -- result
+signalHasHandlerPending instance_ signalId detail mayBeBlocked = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    let mayBeBlocked' = (fromIntegral . fromEnum) mayBeBlocked
+    result <- g_signal_has_handler_pending instance_' signalId detail mayBeBlocked'
+    let result' = (/= 0) result
+    touchManagedPtr instance_
+    return result'
+
+
+-- function g_signal_handlers_unblock_matched
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TVoid, 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 TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_handlers_unblock_matched" g_signal_handlers_unblock_matched :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    CUInt ->                                -- mask : TInterface "GObject" "SignalMatchType"
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Word32 ->                               -- detail : TBasicType TUInt32
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr () ->                               -- func : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO Word32
+
+
+signalHandlersUnblockMatched ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> [SignalMatchType]                    -- mask
+    -> Word32                               -- signalId
+    -> Word32                               -- detail
+    -> Maybe (Closure)                      -- closure
+    -> Ptr ()                               -- func
+    -> Ptr ()                               -- data_
+    -> m Word32                             -- result
+signalHandlersUnblockMatched instance_ mask signalId detail closure func data_ = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    let mask' = gflagsToWord mask
+    maybeClosure <- case closure of
+        Nothing -> return nullPtr
+        Just jClosure -> do
+            let jClosure' = unsafeManagedPtrGetPtr jClosure
+            return jClosure'
+    result <- g_signal_handlers_unblock_matched instance_' mask' signalId detail maybeClosure func data_
+    touchManagedPtr instance_
+    whenJust closure touchManagedPtr
+    return result
+
+
+-- function g_signal_handlers_disconnect_matched
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TVoid, 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 TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_handlers_disconnect_matched" g_signal_handlers_disconnect_matched :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    CUInt ->                                -- mask : TInterface "GObject" "SignalMatchType"
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Word32 ->                               -- detail : TBasicType TUInt32
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr () ->                               -- func : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO Word32
+
+
+signalHandlersDisconnectMatched ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> [SignalMatchType]                    -- mask
+    -> Word32                               -- signalId
+    -> Word32                               -- detail
+    -> Maybe (Closure)                      -- closure
+    -> Ptr ()                               -- func
+    -> Ptr ()                               -- data_
+    -> m Word32                             -- result
+signalHandlersDisconnectMatched instance_ mask signalId detail closure func data_ = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    let mask' = gflagsToWord mask
+    maybeClosure <- case closure of
+        Nothing -> return nullPtr
+        Just jClosure -> do
+            let jClosure' = unsafeManagedPtrGetPtr jClosure
+            return jClosure'
+    result <- g_signal_handlers_disconnect_matched instance_' mask' signalId detail maybeClosure func data_
+    touchManagedPtr instance_
+    whenJust closure touchManagedPtr
+    return result
+
+
+-- function g_signal_handlers_destroy
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", 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_signal_handlers_destroy" g_signal_handlers_destroy :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    IO ()
+
+
+signalHandlersDestroy ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> m ()                                 -- result
+signalHandlersDestroy instance_ = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    g_signal_handlers_destroy instance_'
+    touchManagedPtr instance_
+    return ()
+
+
+-- function g_signal_handlers_block_matched
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TVoid, 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 TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_handlers_block_matched" g_signal_handlers_block_matched :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    CUInt ->                                -- mask : TInterface "GObject" "SignalMatchType"
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Word32 ->                               -- detail : TBasicType TUInt32
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr () ->                               -- func : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO Word32
+
+
+signalHandlersBlockMatched ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> [SignalMatchType]                    -- mask
+    -> Word32                               -- signalId
+    -> Word32                               -- detail
+    -> Maybe (Closure)                      -- closure
+    -> Ptr ()                               -- func
+    -> Ptr ()                               -- data_
+    -> m Word32                             -- result
+signalHandlersBlockMatched instance_ mask signalId detail closure func data_ = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    let mask' = gflagsToWord mask
+    maybeClosure <- case closure of
+        Nothing -> return nullPtr
+        Just jClosure -> do
+            let jClosure' = unsafeManagedPtrGetPtr jClosure
+            return jClosure'
+    result <- g_signal_handlers_block_matched instance_' mask' signalId detail maybeClosure func data_
+    touchManagedPtr instance_
+    whenJust closure touchManagedPtr
+    return result
+
+
+-- function g_signal_handler_unblock
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", 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_signal_handler_unblock" g_signal_handler_unblock :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    Word64 ->                               -- handler_id : TBasicType TUInt64
+    IO ()
+
+
+signalHandlerUnblock ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> Word64                               -- handlerId
+    -> m ()                                 -- result
+signalHandlerUnblock instance_ handlerId = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    g_signal_handler_unblock instance_' handlerId
+    touchManagedPtr instance_
+    return ()
+
+
+-- function g_signal_handler_is_connected
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_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_signal_handler_is_connected" g_signal_handler_is_connected :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    Word64 ->                               -- handler_id : TBasicType TUInt64
+    IO CInt
+
+
+signalHandlerIsConnected ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> Word64                               -- handlerId
+    -> m Bool                               -- result
+signalHandlerIsConnected instance_ handlerId = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    result <- g_signal_handler_is_connected instance_' handlerId
+    let result' = (/= 0) result
+    touchManagedPtr instance_
+    return result'
+
+
+-- function g_signal_handler_find
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mask", argType = TInterface "GObject" "SignalMatchType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "func", argType = TBasicType TVoid, 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 TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_handler_find" g_signal_handler_find :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    CUInt ->                                -- mask : TInterface "GObject" "SignalMatchType"
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Word32 ->                               -- detail : TBasicType TUInt32
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr () ->                               -- func : TBasicType TVoid
+    Ptr () ->                               -- data : TBasicType TVoid
+    IO Word64
+
+
+signalHandlerFind ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> [SignalMatchType]                    -- mask
+    -> Word32                               -- signalId
+    -> Word32                               -- detail
+    -> Maybe (Closure)                      -- closure
+    -> Ptr ()                               -- func
+    -> Ptr ()                               -- data_
+    -> m Word64                             -- result
+signalHandlerFind instance_ mask signalId detail closure func data_ = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    let mask' = gflagsToWord mask
+    maybeClosure <- case closure of
+        Nothing -> return nullPtr
+        Just jClosure -> do
+            let jClosure' = unsafeManagedPtrGetPtr jClosure
+            return jClosure'
+    result <- g_signal_handler_find instance_' mask' signalId detail maybeClosure func data_
+    touchManagedPtr instance_
+    whenJust closure touchManagedPtr
+    return result
+
+
+-- function g_signal_handler_disconnect
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", 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_signal_handler_disconnect" g_signal_handler_disconnect :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    Word64 ->                               -- handler_id : TBasicType TUInt64
+    IO ()
+
+
+signalHandlerDisconnect ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> Word64                               -- handlerId
+    -> m ()                                 -- result
+signalHandlerDisconnect instance_ handlerId = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    g_signal_handler_disconnect instance_' handlerId
+    touchManagedPtr instance_
+    return ()
+
+
+-- function g_signal_handler_block
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_id", 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_signal_handler_block" g_signal_handler_block :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    Word64 ->                               -- handler_id : TBasicType TUInt64
+    IO ()
+
+
+signalHandlerBlock ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> Word64                               -- handlerId
+    -> m ()                                 -- result
+signalHandlerBlock instance_ handlerId = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    g_signal_handler_block instance_' handlerId
+    touchManagedPtr instance_
+    return ()
+
+
+-- function g_signal_get_invocation_hint
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "SignalInvocationHint"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_get_invocation_hint" g_signal_get_invocation_hint :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    IO (Ptr SignalInvocationHint)
+
+
+signalGetInvocationHint ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> m SignalInvocationHint               -- result
+signalGetInvocationHint instance_ = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    result <- g_signal_get_invocation_hint instance_'
+    checkUnexpectedReturnNULL "g_signal_get_invocation_hint" result
+    result' <- (newPtr 12 SignalInvocationHint) result
+    touchManagedPtr instance_
+    return result'
+
+
+-- function g_signal_emitv
+-- Args : [Arg {argCName = "instance_and_params", argType = TCArray False (-1) (-1) (TInterface "GObject" "Value"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_emitv" g_signal_emitv :: 
+    Ptr (Ptr GValue) ->                     -- instance_and_params : TCArray False (-1) (-1) (TInterface "GObject" "Value")
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Word32 ->                               -- detail : TBasicType TUInt32
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    IO ()
+
+
+signalEmitv ::
+    (MonadIO m) =>
+    Ptr (Ptr GValue)                        -- instanceAndParams
+    -> Word32                               -- signalId
+    -> Word32                               -- detail
+    -> GValue                               -- returnValue
+    -> m (GValue)                           -- result
+signalEmitv instanceAndParams signalId detail returnValue = liftIO $ do
+    returnValue' <- copyBoxed returnValue
+    returnValue'' <- callocBoxedBytes 24 :: IO (Ptr GValue)
+    memcpy returnValue'' returnValue' 24
+    g_signal_emitv instanceAndParams signalId detail returnValue''
+    returnValue''' <- (wrapBoxed GValue) returnValue''
+    touchManagedPtr returnValue
+    return returnValue'''
+
+
+-- function g_signal_connect_closure_by_id
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "after", argType = TBasicType TBoolean, 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_signal_connect_closure_by_id" g_signal_connect_closure_by_id :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Word32 ->                               -- detail : TBasicType TUInt32
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    CInt ->                                 -- after : TBasicType TBoolean
+    IO Word64
+
+
+signalConnectClosureById ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> Word32                               -- signalId
+    -> Word32                               -- detail
+    -> Closure                              -- closure
+    -> Bool                                 -- after
+    -> m Word64                             -- result
+signalConnectClosureById instance_ signalId detail closure after = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    let closure' = unsafeManagedPtrGetPtr closure
+    let after' = (fromIntegral . fromEnum) after
+    result <- g_signal_connect_closure_by_id instance_' signalId detail closure' after'
+    touchManagedPtr instance_
+    touchManagedPtr closure
+    return result
+
+
+-- function g_signal_connect_closure
+-- Args : [Arg {argCName = "instance", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detailed_signal", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "after", argType = TBasicType TBoolean, 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_signal_connect_closure" g_signal_connect_closure :: 
+    Ptr Object ->                           -- instance : TInterface "GObject" "Object"
+    CString ->                              -- detailed_signal : TBasicType TUTF8
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    CInt ->                                 -- after : TBasicType TBoolean
+    IO Word64
+
+
+signalConnectClosure ::
+    (MonadIO m, ObjectK a) =>
+    a                                       -- instance_
+    -> T.Text                               -- detailedSignal
+    -> Closure                              -- closure
+    -> Bool                                 -- after
+    -> m Word64                             -- result
+signalConnectClosure instance_ detailedSignal closure after = liftIO $ do
+    let instance_' = unsafeManagedPtrCastPtr instance_
+    detailedSignal' <- textToCString detailedSignal
+    let closure' = unsafeManagedPtrGetPtr closure
+    let after' = (fromIntegral . fromEnum) after
+    result <- g_signal_connect_closure instance_' detailedSignal' closure' after'
+    touchManagedPtr instance_
+    touchManagedPtr closure
+    freeMem detailedSignal'
+    return result
+
+
+-- function g_signal_chain_from_overridden
+-- Args : [Arg {argCName = "instance_and_params", argType = TCArray False (-1) (-1) (TInterface "GObject" "Value"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", 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_signal_chain_from_overridden" g_signal_chain_from_overridden :: 
+    Ptr (Ptr GValue) ->                     -- instance_and_params : TCArray False (-1) (-1) (TInterface "GObject" "Value")
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    IO ()
+
+
+signalChainFromOverridden ::
+    (MonadIO m) =>
+    Ptr (Ptr GValue)                        -- instanceAndParams
+    -> GValue                               -- returnValue
+    -> m ()                                 -- result
+signalChainFromOverridden instanceAndParams returnValue = liftIO $ do
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    g_signal_chain_from_overridden instanceAndParams returnValue'
+    touchManagedPtr returnValue
+    return ()
+
+
+-- function g_signal_add_emission_hook
+-- Args : [Arg {argCName = "signal_id", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "detail", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook_func", argType = TInterface "GObject" "SignalEmissionHook", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hook_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data_destroy", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUInt64
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_signal_add_emission_hook" g_signal_add_emission_hook :: 
+    Word32 ->                               -- signal_id : TBasicType TUInt32
+    Word32 ->                               -- detail : TBasicType TUInt32
+    FunPtr SignalEmissionHookC ->           -- hook_func : TInterface "GObject" "SignalEmissionHook"
+    Ptr () ->                               -- hook_data : TBasicType TVoid
+    FunPtr GLib.DestroyNotifyC ->           -- data_destroy : TInterface "GLib" "DestroyNotify"
+    IO Word64
+
+
+signalAddEmissionHook ::
+    (MonadIO m) =>
+    Word32                                  -- signalId
+    -> Word32                               -- detail
+    -> SignalEmissionHook                   -- hookFunc
+    -> m Word64                             -- result
+signalAddEmissionHook signalId detail hookFunc = liftIO $ do
+    hookFunc' <- mkSignalEmissionHook (signalEmissionHookWrapper Nothing hookFunc)
+    let hookData = castFunPtrToPtr hookFunc'
+    let dataDestroy = safeFreeFunPtrPtr
+    result <- g_signal_add_emission_hook signalId detail hookFunc' hookData dataDestroy
+    return result
+
+
+-- function g_signal_accumulator_true_handled
+-- Args : [Arg {argCName = "ihint", argType = TInterface "GObject" "SignalInvocationHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_accu", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_return", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dummy", 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_signal_accumulator_true_handled" g_signal_accumulator_true_handled :: 
+    Ptr SignalInvocationHint ->             -- ihint : TInterface "GObject" "SignalInvocationHint"
+    Ptr GValue ->                           -- return_accu : TInterface "GObject" "Value"
+    Ptr GValue ->                           -- handler_return : TInterface "GObject" "Value"
+    Ptr () ->                               -- dummy : TBasicType TVoid
+    IO CInt
+
+
+signalAccumulatorTrueHandled ::
+    (MonadIO m) =>
+    SignalInvocationHint                    -- ihint
+    -> GValue                               -- returnAccu
+    -> GValue                               -- handlerReturn
+    -> Ptr ()                               -- dummy
+    -> m Bool                               -- result
+signalAccumulatorTrueHandled ihint returnAccu handlerReturn dummy = liftIO $ do
+    let ihint' = unsafeManagedPtrGetPtr ihint
+    let returnAccu' = unsafeManagedPtrGetPtr returnAccu
+    let handlerReturn' = unsafeManagedPtrGetPtr handlerReturn
+    result <- g_signal_accumulator_true_handled ihint' returnAccu' handlerReturn' dummy
+    let result' = (/= 0) result
+    touchManagedPtr ihint
+    touchManagedPtr returnAccu
+    touchManagedPtr handlerReturn
+    return result'
+
+
+-- function g_signal_accumulator_first_wins
+-- Args : [Arg {argCName = "ihint", argType = TInterface "GObject" "SignalInvocationHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_accu", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "handler_return", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dummy", 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_signal_accumulator_first_wins" g_signal_accumulator_first_wins :: 
+    Ptr SignalInvocationHint ->             -- ihint : TInterface "GObject" "SignalInvocationHint"
+    Ptr GValue ->                           -- return_accu : TInterface "GObject" "Value"
+    Ptr GValue ->                           -- handler_return : TInterface "GObject" "Value"
+    Ptr () ->                               -- dummy : TBasicType TVoid
+    IO CInt
+
+
+signalAccumulatorFirstWins ::
+    (MonadIO m) =>
+    SignalInvocationHint                    -- ihint
+    -> GValue                               -- returnAccu
+    -> GValue                               -- handlerReturn
+    -> Ptr ()                               -- dummy
+    -> m Bool                               -- result
+signalAccumulatorFirstWins ihint returnAccu handlerReturn dummy = liftIO $ do
+    let ihint' = unsafeManagedPtrGetPtr ihint
+    let returnAccu' = unsafeManagedPtrGetPtr returnAccu
+    let handlerReturn' = unsafeManagedPtrGetPtr handlerReturn
+    result <- g_signal_accumulator_first_wins ihint' returnAccu' handlerReturn' dummy
+    let result' = (/= 0) result
+    touchManagedPtr ihint
+    touchManagedPtr returnAccu
+    touchManagedPtr handlerReturn
+    return result'
+
+
+-- function g_pointer_type_register_static
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_pointer_type_register_static" g_pointer_type_register_static :: 
+    CString ->                              -- name : TBasicType TUTF8
+    IO CGType
+
+
+pointerTypeRegisterStatic ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> m GType                              -- result
+pointerTypeRegisterStatic name = liftIO $ do
+    name' <- textToCString name
+    result <- g_pointer_type_register_static name'
+    let result' = GType result
+    freeMem name'
+    return result'
+
+
+-- function g_param_values_cmp
+-- Args : [Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value1", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value2", argType = TInterface "GObject" "Value", 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_param_values_cmp" g_param_values_cmp :: 
+    Ptr GParamSpec ->                       -- pspec : TParamSpec
+    Ptr GValue ->                           -- value1 : TInterface "GObject" "Value"
+    Ptr GValue ->                           -- value2 : TInterface "GObject" "Value"
+    IO Int32
+
+
+paramValuesCmp ::
+    (MonadIO m) =>
+    GParamSpec                              -- pspec
+    -> GValue                               -- value1
+    -> GValue                               -- value2
+    -> m Int32                              -- result
+paramValuesCmp pspec value1 value2 = liftIO $ do
+    let pspec' = unsafeManagedPtrGetPtr pspec
+    let value1' = unsafeManagedPtrGetPtr value1
+    let value2' = unsafeManagedPtrGetPtr value2
+    result <- g_param_values_cmp pspec' value1' value2'
+    touchManagedPtr value1
+    touchManagedPtr value2
+    return result
+
+
+-- function g_param_value_validate
+-- Args : [Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", 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_param_value_validate" g_param_value_validate :: 
+    Ptr GParamSpec ->                       -- pspec : TParamSpec
+    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
+    IO CInt
+
+
+paramValueValidate ::
+    (MonadIO m) =>
+    GParamSpec                              -- pspec
+    -> GValue                               -- value
+    -> m Bool                               -- result
+paramValueValidate pspec value = liftIO $ do
+    let pspec' = unsafeManagedPtrGetPtr pspec
+    let value' = unsafeManagedPtrGetPtr value
+    result <- g_param_value_validate pspec' value'
+    let result' = (/= 0) result
+    touchManagedPtr value
+    return result'
+
+
+-- function g_param_value_set_default
+-- Args : [Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", 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_param_value_set_default" g_param_value_set_default :: 
+    Ptr GParamSpec ->                       -- pspec : TParamSpec
+    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
+    IO ()
+
+
+paramValueSetDefault ::
+    (MonadIO m) =>
+    GParamSpec                              -- pspec
+    -> GValue                               -- value
+    -> m ()                                 -- result
+paramValueSetDefault pspec value = liftIO $ do
+    let pspec' = unsafeManagedPtrGetPtr pspec
+    let value' = unsafeManagedPtrGetPtr value
+    g_param_value_set_default pspec' value'
+    touchManagedPtr value
+    return ()
+
+
+-- function g_param_value_defaults
+-- Args : [Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", 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_param_value_defaults" g_param_value_defaults :: 
+    Ptr GParamSpec ->                       -- pspec : TParamSpec
+    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
+    IO CInt
+
+
+paramValueDefaults ::
+    (MonadIO m) =>
+    GParamSpec                              -- pspec
+    -> GValue                               -- value
+    -> m Bool                               -- result
+paramValueDefaults pspec value = liftIO $ do
+    let pspec' = unsafeManagedPtrGetPtr pspec
+    let value' = unsafeManagedPtrGetPtr value
+    result <- g_param_value_defaults pspec' value'
+    let result' = (/= 0) result
+    touchManagedPtr value
+    return result'
+
+
+-- function g_param_value_convert
+-- Args : [Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "strict_validation", 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_param_value_convert" g_param_value_convert :: 
+    Ptr GParamSpec ->                       -- pspec : TParamSpec
+    Ptr GValue ->                           -- src_value : TInterface "GObject" "Value"
+    Ptr GValue ->                           -- dest_value : TInterface "GObject" "Value"
+    CInt ->                                 -- strict_validation : TBasicType TBoolean
+    IO CInt
+
+
+paramValueConvert ::
+    (MonadIO m) =>
+    GParamSpec                              -- pspec
+    -> GValue                               -- srcValue
+    -> GValue                               -- destValue
+    -> Bool                                 -- strictValidation
+    -> m Bool                               -- result
+paramValueConvert pspec srcValue destValue strictValidation = liftIO $ do
+    let pspec' = unsafeManagedPtrGetPtr pspec
+    let srcValue' = unsafeManagedPtrGetPtr srcValue
+    let destValue' = unsafeManagedPtrGetPtr destValue
+    let strictValidation' = (fromIntegral . fromEnum) strictValidation
+    result <- g_param_value_convert pspec' srcValue' destValue' strictValidation'
+    let result' = (/= 0) result
+    touchManagedPtr srcValue
+    touchManagedPtr destValue
+    return result'
+
+
+-- function g_param_type_register_static
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pspec_info", argType = TInterface "GObject" "ParamSpecTypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_type_register_static" g_param_type_register_static :: 
+    CString ->                              -- name : TBasicType TUTF8
+    Ptr ParamSpecTypeInfo ->                -- pspec_info : TInterface "GObject" "ParamSpecTypeInfo"
+    IO CGType
+
+
+paramTypeRegisterStatic ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> ParamSpecTypeInfo                    -- pspecInfo
+    -> m GType                              -- result
+paramTypeRegisterStatic name pspecInfo = liftIO $ do
+    name' <- textToCString name
+    let pspecInfo' = unsafeManagedPtrGetPtr pspecInfo
+    result <- g_param_type_register_static name' pspecInfo'
+    let result' = GType result
+    touchManagedPtr pspecInfo
+    freeMem name'
+    return result'
+
+
+-- function g_param_spec_variant
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, 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},Arg {argCName = "default_value", argType = TVariant, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_variant" g_param_spec_variant :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    Ptr GLib.VariantType ->                 -- type : TInterface "GLib" "VariantType"
+    Ptr GVariant ->                         -- default_value : TVariant
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecVariant ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> GLib.VariantType                     -- type_
+    -> Maybe (GVariant)                     -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecVariant name nick blurb type_ defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let type_' = unsafeManagedPtrGetPtr type_
+    maybeDefaultValue <- case defaultValue of
+        Nothing -> return nullPtr
+        Just jDefaultValue -> do
+            jDefaultValue' <- refGVariant jDefaultValue
+            return jDefaultValue'
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_variant name' nick' blurb' type_' maybeDefaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_variant" result
+    result' <- wrapGParamSpecPtr result
+    touchManagedPtr type_
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_unichar
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TUniChar, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_unichar" g_param_spec_unichar :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CInt ->                                 -- default_value : TBasicType TUniChar
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecUnichar ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Char                                 -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecUnichar name nick blurb defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let defaultValue' = (fromIntegral . ord) defaultValue
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_unichar name' nick' blurb' defaultValue' flags'
+    checkUnexpectedReturnNULL "g_param_spec_unichar" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_ulong
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "maximum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_ulong" g_param_spec_ulong :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    Word64 ->                               -- minimum : TBasicType TUInt64
+    Word64 ->                               -- maximum : TBasicType TUInt64
+    Word64 ->                               -- default_value : TBasicType TUInt64
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecUlong ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Word64                               -- minimum
+    -> Word64                               -- maximum
+    -> Word64                               -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecUlong name nick blurb minimum maximum defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_ulong name' nick' blurb' minimum maximum defaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_ulong" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_uint64
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "maximum", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_uint64" g_param_spec_uint64 :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    Word64 ->                               -- minimum : TBasicType TUInt64
+    Word64 ->                               -- maximum : TBasicType TUInt64
+    Word64 ->                               -- default_value : TBasicType TUInt64
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecUint64 ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Word64                               -- minimum
+    -> Word64                               -- maximum
+    -> Word64                               -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecUint64 name nick blurb minimum maximum defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_uint64 name' nick' blurb' minimum maximum defaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_uint64" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_uint
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "maximum", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_uint" g_param_spec_uint :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    Word32 ->                               -- minimum : TBasicType TUInt32
+    Word32 ->                               -- maximum : TBasicType TUInt32
+    Word32 ->                               -- default_value : TBasicType TUInt32
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecUint ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Word32                               -- minimum
+    -> Word32                               -- maximum
+    -> Word32                               -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecUint name nick blurb minimum maximum defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_uint name' nick' blurb' minimum maximum defaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_uint" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_uchar
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "maximum", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TUInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_uchar" g_param_spec_uchar :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    Word8 ->                                -- minimum : TBasicType TUInt8
+    Word8 ->                                -- maximum : TBasicType TUInt8
+    Word8 ->                                -- default_value : TBasicType TUInt8
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecUchar ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Word8                                -- minimum
+    -> Word8                                -- maximum
+    -> Word8                                -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecUchar name nick blurb minimum maximum defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_uchar name' nick' blurb' minimum maximum defaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_uchar" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_string
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_string" g_param_spec_string :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CString ->                              -- default_value : TBasicType TUTF8
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecString ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> T.Text                               -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecString name nick blurb defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    defaultValue' <- textToCString defaultValue
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_string name' nick' blurb' defaultValue' flags'
+    checkUnexpectedReturnNULL "g_param_spec_string" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    freeMem defaultValue'
+    return result'
+
+
+-- function g_param_spec_pointer
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_pointer" g_param_spec_pointer :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecPointer ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecPointer name nick blurb flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_pointer name' nick' blurb' flags'
+    checkUnexpectedReturnNULL "g_param_spec_pointer" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_param
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_param" g_param_spec_param :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CGType ->                               -- param_type : TBasicType TGType
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecParam ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> GType                                -- paramType
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecParam name nick blurb paramType flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let paramType' = gtypeToCGType paramType
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_param name' nick' blurb' paramType' flags'
+    checkUnexpectedReturnNULL "g_param_spec_param" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_object
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "object_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_object" g_param_spec_object :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CGType ->                               -- object_type : TBasicType TGType
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecObject ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> GType                                -- objectType
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecObject name nick blurb objectType flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let objectType' = gtypeToCGType objectType
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_object name' nick' blurb' objectType' flags'
+    checkUnexpectedReturnNULL "g_param_spec_object" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_long
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "maximum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_long" g_param_spec_long :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    Int64 ->                                -- minimum : TBasicType TInt64
+    Int64 ->                                -- maximum : TBasicType TInt64
+    Int64 ->                                -- default_value : TBasicType TInt64
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecLong ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Int64                                -- minimum
+    -> Int64                                -- maximum
+    -> Int64                                -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecLong name nick blurb minimum maximum defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_long name' nick' blurb' minimum maximum defaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_long" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_int64
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "maximum", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_int64" g_param_spec_int64 :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    Int64 ->                                -- minimum : TBasicType TInt64
+    Int64 ->                                -- maximum : TBasicType TInt64
+    Int64 ->                                -- default_value : TBasicType TInt64
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecInt64 ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Int64                                -- minimum
+    -> Int64                                -- maximum
+    -> Int64                                -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecInt64 name nick blurb minimum maximum defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_int64 name' nick' blurb' minimum maximum defaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_int64" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_int
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "maximum", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_int" g_param_spec_int :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    Int32 ->                                -- minimum : TBasicType TInt32
+    Int32 ->                                -- maximum : TBasicType TInt32
+    Int32 ->                                -- default_value : TBasicType TInt32
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecInt ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Int32                                -- minimum
+    -> Int32                                -- maximum
+    -> Int32                                -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecInt name nick blurb minimum maximum defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_int name' nick' blurb' minimum maximum defaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_int" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_gtype
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "is_a_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_gtype" g_param_spec_gtype :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CGType ->                               -- is_a_type : TBasicType TGType
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecGtype ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> GType                                -- isAType
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecGtype name nick blurb isAType flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let isAType' = gtypeToCGType isAType
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_gtype name' nick' blurb' isAType' flags'
+    checkUnexpectedReturnNULL "g_param_spec_gtype" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_float
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "maximum", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TFloat, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_float" g_param_spec_float :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CFloat ->                               -- minimum : TBasicType TFloat
+    CFloat ->                               -- maximum : TBasicType TFloat
+    CFloat ->                               -- default_value : TBasicType TFloat
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecFloat ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Float                                -- minimum
+    -> Float                                -- maximum
+    -> Float                                -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecFloat name nick blurb minimum maximum defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let minimum' = realToFrac minimum
+    let maximum' = realToFrac maximum
+    let defaultValue' = realToFrac defaultValue
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_float name' nick' blurb' minimum' maximum' defaultValue' flags'
+    checkUnexpectedReturnNULL "g_param_spec_float" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_flags
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_flags" g_param_spec_flags :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CGType ->                               -- flags_type : TBasicType TGType
+    Word32 ->                               -- default_value : TBasicType TUInt32
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecFlags ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> GType                                -- flagsType
+    -> Word32                               -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecFlags name nick blurb flagsType defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let flagsType' = gtypeToCGType flagsType
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_flags name' nick' blurb' flagsType' defaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_flags" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_enum
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enum_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_enum" g_param_spec_enum :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CGType ->                               -- enum_type : TBasicType TGType
+    Int32 ->                                -- default_value : TBasicType TInt32
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecEnum ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> GType                                -- enumType
+    -> Int32                                -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecEnum name nick blurb enumType defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let enumType' = gtypeToCGType enumType
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_enum name' nick' blurb' enumType' defaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_enum" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_double
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "maximum", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_double" g_param_spec_double :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CDouble ->                              -- minimum : TBasicType TDouble
+    CDouble ->                              -- maximum : TBasicType TDouble
+    CDouble ->                              -- default_value : TBasicType TDouble
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecDouble ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Double                               -- minimum
+    -> Double                               -- maximum
+    -> Double                               -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecDouble name nick blurb minimum maximum defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let minimum' = realToFrac minimum
+    let maximum' = realToFrac maximum
+    let defaultValue' = realToFrac defaultValue
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_double name' nick' blurb' minimum' maximum' defaultValue' flags'
+    checkUnexpectedReturnNULL "g_param_spec_double" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_char
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minimum", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "maximum", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TInt8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_char" g_param_spec_char :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    Int8 ->                                 -- minimum : TBasicType TInt8
+    Int8 ->                                 -- maximum : TBasicType TInt8
+    Int8 ->                                 -- default_value : TBasicType TInt8
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecChar ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Int8                                 -- minimum
+    -> Int8                                 -- maximum
+    -> Int8                                 -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecChar name nick blurb minimum maximum defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_char name' nick' blurb' minimum maximum defaultValue flags'
+    checkUnexpectedReturnNULL "g_param_spec_char" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_boxed
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boxed_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_boxed" g_param_spec_boxed :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CGType ->                               -- boxed_type : TBasicType TGType
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecBoxed ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> GType                                -- boxedType
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecBoxed name nick blurb boxedType flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let boxedType' = gtypeToCGType boxedType
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_boxed name' nick' blurb' boxedType' flags'
+    checkUnexpectedReturnNULL "g_param_spec_boxed" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_param_spec_boolean
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "blurb", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "default_value", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "ParamFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TParamSpec
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_boolean" g_param_spec_boolean :: 
+    CString ->                              -- name : TBasicType TUTF8
+    CString ->                              -- nick : TBasicType TUTF8
+    CString ->                              -- blurb : TBasicType TUTF8
+    CInt ->                                 -- default_value : TBasicType TBoolean
+    CUInt ->                                -- flags : TInterface "GObject" "ParamFlags"
+    IO (Ptr GParamSpec)
+
+
+paramSpecBoolean ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> T.Text                               -- nick
+    -> T.Text                               -- blurb
+    -> Bool                                 -- defaultValue
+    -> [ParamFlags]                         -- flags
+    -> m GParamSpec                         -- result
+paramSpecBoolean name nick blurb defaultValue flags = liftIO $ do
+    name' <- textToCString name
+    nick' <- textToCString nick
+    blurb' <- textToCString blurb
+    let defaultValue' = (fromIntegral . fromEnum) defaultValue
+    let flags' = gflagsToWord flags
+    result <- g_param_spec_boolean name' nick' blurb' defaultValue' flags'
+    checkUnexpectedReturnNULL "g_param_spec_boolean" result
+    result' <- wrapGParamSpecPtr result
+    freeMem name'
+    freeMem nick'
+    freeMem blurb'
+    return result'
+
+
+-- function g_gtype_get_type
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_gtype_get_type" g_gtype_get_type :: 
+    IO CGType
+
+
+gtypeGetType ::
+    (MonadIO m) =>
+    m GType                                 -- result
+gtypeGetType  = liftIO $ do
+    result <- g_gtype_get_type
+    let result' = GType result
+    return result'
+
+
+-- function g_flags_register_static
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "const_static_values", argType = TInterface "GObject" "FlagsValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_flags_register_static" g_flags_register_static :: 
+    CString ->                              -- name : TBasicType TUTF8
+    Ptr FlagsValue ->                       -- const_static_values : TInterface "GObject" "FlagsValue"
+    IO CGType
+
+
+flagsRegisterStatic ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> FlagsValue                           -- constStaticValues
+    -> m GType                              -- result
+flagsRegisterStatic name constStaticValues = liftIO $ do
+    name' <- textToCString name
+    let constStaticValues' = unsafeManagedPtrGetPtr constStaticValues
+    result <- g_flags_register_static name' constStaticValues'
+    let result' = GType result
+    touchManagedPtr constStaticValues
+    freeMem name'
+    return result'
+
+
+-- function g_flags_get_value_by_nick
+-- Args : [Arg {argCName = "flags_class", argType = TInterface "GObject" "FlagsClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "FlagsValue"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_flags_get_value_by_nick" g_flags_get_value_by_nick :: 
+    Ptr FlagsClass ->                       -- flags_class : TInterface "GObject" "FlagsClass"
+    CString ->                              -- nick : TBasicType TUTF8
+    IO (Ptr FlagsValue)
+
+
+flagsGetValueByNick ::
+    (MonadIO m) =>
+    FlagsClass                              -- flagsClass
+    -> T.Text                               -- nick
+    -> m FlagsValue                         -- result
+flagsGetValueByNick flagsClass nick = liftIO $ do
+    let flagsClass' = unsafeManagedPtrGetPtr flagsClass
+    nick' <- textToCString nick
+    result <- g_flags_get_value_by_nick flagsClass' nick'
+    checkUnexpectedReturnNULL "g_flags_get_value_by_nick" result
+    result' <- (newPtr 24 FlagsValue) result
+    touchManagedPtr flagsClass
+    freeMem nick'
+    return result'
+
+
+-- function g_flags_get_value_by_name
+-- Args : [Arg {argCName = "flags_class", argType = TInterface "GObject" "FlagsClass", 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 : TInterface "GObject" "FlagsValue"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_flags_get_value_by_name" g_flags_get_value_by_name :: 
+    Ptr FlagsClass ->                       -- flags_class : TInterface "GObject" "FlagsClass"
+    CString ->                              -- name : TBasicType TUTF8
+    IO (Ptr FlagsValue)
+
+
+flagsGetValueByName ::
+    (MonadIO m) =>
+    FlagsClass                              -- flagsClass
+    -> T.Text                               -- name
+    -> m FlagsValue                         -- result
+flagsGetValueByName flagsClass name = liftIO $ do
+    let flagsClass' = unsafeManagedPtrGetPtr flagsClass
+    name' <- textToCString name
+    result <- g_flags_get_value_by_name flagsClass' name'
+    checkUnexpectedReturnNULL "g_flags_get_value_by_name" result
+    result' <- (newPtr 24 FlagsValue) result
+    touchManagedPtr flagsClass
+    freeMem name'
+    return result'
+
+
+-- function g_flags_get_first_value
+-- Args : [Arg {argCName = "flags_class", argType = TInterface "GObject" "FlagsClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "FlagsValue"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_flags_get_first_value" g_flags_get_first_value :: 
+    Ptr FlagsClass ->                       -- flags_class : TInterface "GObject" "FlagsClass"
+    Word32 ->                               -- value : TBasicType TUInt32
+    IO (Ptr FlagsValue)
+
+
+flagsGetFirstValue ::
+    (MonadIO m) =>
+    FlagsClass                              -- flagsClass
+    -> Word32                               -- value
+    -> m FlagsValue                         -- result
+flagsGetFirstValue flagsClass value = liftIO $ do
+    let flagsClass' = unsafeManagedPtrGetPtr flagsClass
+    result <- g_flags_get_first_value flagsClass' value
+    checkUnexpectedReturnNULL "g_flags_get_first_value" result
+    result' <- (newPtr 24 FlagsValue) result
+    touchManagedPtr flagsClass
+    return result'
+
+
+-- function g_flags_complete_type_info
+-- Args : [Arg {argCName = "g_flags_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "const_values", argType = TInterface "GObject" "FlagsValue", 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_flags_complete_type_info" g_flags_complete_type_info :: 
+    CGType ->                               -- g_flags_type : TBasicType TGType
+    Ptr TypeInfo ->                         -- info : TInterface "GObject" "TypeInfo"
+    Ptr FlagsValue ->                       -- const_values : TInterface "GObject" "FlagsValue"
+    IO ()
+
+
+flagsCompleteTypeInfo ::
+    (MonadIO m) =>
+    GType                                   -- gFlagsType
+    -> FlagsValue                           -- constValues
+    -> m (TypeInfo)                         -- result
+flagsCompleteTypeInfo gFlagsType constValues = liftIO $ do
+    let gFlagsType' = gtypeToCGType gFlagsType
+    info <- callocBytes 72 :: IO (Ptr TypeInfo)
+    let constValues' = unsafeManagedPtrGetPtr constValues
+    g_flags_complete_type_info gFlagsType' info constValues'
+    info' <- (wrapPtr TypeInfo) info
+    touchManagedPtr constValues
+    return info'
+
+
+-- function g_enum_register_static
+-- Args : [Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "const_static_values", argType = TInterface "GObject" "EnumValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TGType
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_enum_register_static" g_enum_register_static :: 
+    CString ->                              -- name : TBasicType TUTF8
+    Ptr EnumValue ->                        -- const_static_values : TInterface "GObject" "EnumValue"
+    IO CGType
+
+
+enumRegisterStatic ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> EnumValue                            -- constStaticValues
+    -> m GType                              -- result
+enumRegisterStatic name constStaticValues = liftIO $ do
+    name' <- textToCString name
+    let constStaticValues' = unsafeManagedPtrGetPtr constStaticValues
+    result <- g_enum_register_static name' constStaticValues'
+    let result' = GType result
+    touchManagedPtr constStaticValues
+    freeMem name'
+    return result'
+
+
+-- function g_enum_get_value_by_nick
+-- Args : [Arg {argCName = "enum_class", argType = TInterface "GObject" "EnumClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "nick", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "EnumValue"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_enum_get_value_by_nick" g_enum_get_value_by_nick :: 
+    Ptr EnumClass ->                        -- enum_class : TInterface "GObject" "EnumClass"
+    CString ->                              -- nick : TBasicType TUTF8
+    IO (Ptr EnumValue)
+
+
+enumGetValueByNick ::
+    (MonadIO m) =>
+    EnumClass                               -- enumClass
+    -> T.Text                               -- nick
+    -> m EnumValue                          -- result
+enumGetValueByNick enumClass nick = liftIO $ do
+    let enumClass' = unsafeManagedPtrGetPtr enumClass
+    nick' <- textToCString nick
+    result <- g_enum_get_value_by_nick enumClass' nick'
+    checkUnexpectedReturnNULL "g_enum_get_value_by_nick" result
+    result' <- (newPtr 24 EnumValue) result
+    touchManagedPtr enumClass
+    freeMem nick'
+    return result'
+
+
+-- function g_enum_get_value_by_name
+-- Args : [Arg {argCName = "enum_class", argType = TInterface "GObject" "EnumClass", 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 : TInterface "GObject" "EnumValue"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_enum_get_value_by_name" g_enum_get_value_by_name :: 
+    Ptr EnumClass ->                        -- enum_class : TInterface "GObject" "EnumClass"
+    CString ->                              -- name : TBasicType TUTF8
+    IO (Ptr EnumValue)
+
+
+enumGetValueByName ::
+    (MonadIO m) =>
+    EnumClass                               -- enumClass
+    -> T.Text                               -- name
+    -> m EnumValue                          -- result
+enumGetValueByName enumClass name = liftIO $ do
+    let enumClass' = unsafeManagedPtrGetPtr enumClass
+    name' <- textToCString name
+    result <- g_enum_get_value_by_name enumClass' name'
+    checkUnexpectedReturnNULL "g_enum_get_value_by_name" result
+    result' <- (newPtr 24 EnumValue) result
+    touchManagedPtr enumClass
+    freeMem name'
+    return result'
+
+
+-- function g_enum_get_value
+-- Args : [Arg {argCName = "enum_class", argType = TInterface "GObject" "EnumClass", 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 : TInterface "GObject" "EnumValue"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_enum_get_value" g_enum_get_value :: 
+    Ptr EnumClass ->                        -- enum_class : TInterface "GObject" "EnumClass"
+    Int32 ->                                -- value : TBasicType TInt32
+    IO (Ptr EnumValue)
+
+
+enumGetValue ::
+    (MonadIO m) =>
+    EnumClass                               -- enumClass
+    -> Int32                                -- value
+    -> m EnumValue                          -- result
+enumGetValue enumClass value = liftIO $ do
+    let enumClass' = unsafeManagedPtrGetPtr enumClass
+    result <- g_enum_get_value enumClass' value
+    checkUnexpectedReturnNULL "g_enum_get_value" result
+    result' <- (newPtr 24 EnumValue) result
+    touchManagedPtr enumClass
+    return result'
+
+
+-- function g_enum_complete_type_info
+-- Args : [Arg {argCName = "g_enum_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "const_values", argType = TInterface "GObject" "EnumValue", 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_enum_complete_type_info" g_enum_complete_type_info :: 
+    CGType ->                               -- g_enum_type : TBasicType TGType
+    Ptr TypeInfo ->                         -- info : TInterface "GObject" "TypeInfo"
+    Ptr EnumValue ->                        -- const_values : TInterface "GObject" "EnumValue"
+    IO ()
+
+
+enumCompleteTypeInfo ::
+    (MonadIO m) =>
+    GType                                   -- gEnumType
+    -> EnumValue                            -- constValues
+    -> m (TypeInfo)                         -- result
+enumCompleteTypeInfo gEnumType constValues = liftIO $ do
+    let gEnumType' = gtypeToCGType gEnumType
+    info <- callocBytes 72 :: IO (Ptr TypeInfo)
+    let constValues' = unsafeManagedPtrGetPtr constValues
+    g_enum_complete_type_info gEnumType' info constValues'
+    info' <- (wrapPtr TypeInfo) info
+    touchManagedPtr constValues
+    return info'
+
+
+-- function g_boxed_free
+-- Args : [Arg {argCName = "boxed_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "boxed", 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_boxed_free" g_boxed_free :: 
+    CGType ->                               -- boxed_type : TBasicType TGType
+    Ptr () ->                               -- boxed : TBasicType TVoid
+    IO ()
+
+
+boxedFree ::
+    (MonadIO m) =>
+    GType                                   -- boxedType
+    -> Ptr ()                               -- boxed
+    -> m ()                                 -- result
+boxedFree boxedType boxed = liftIO $ do
+    let boxedType' = gtypeToCGType boxedType
+    g_boxed_free boxedType' boxed
+    return ()
+
+
+-- function g_boxed_copy
+-- Args : [Arg {argCName = "boxed_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_boxed", 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_boxed_copy" g_boxed_copy :: 
+    CGType ->                               -- boxed_type : TBasicType TGType
+    Ptr () ->                               -- src_boxed : TBasicType TVoid
+    IO ()
+
+
+boxedCopy ::
+    (MonadIO m) =>
+    GType                                   -- boxedType
+    -> Ptr ()                               -- srcBoxed
+    -> m ()                                 -- result
+boxedCopy boxedType srcBoxed = liftIO $ do
+    let boxedType' = gtypeToCGType boxedType
+    g_boxed_copy boxedType' srcBoxed
     return ()
 
 
diff --git a/GI/GObject/Interfaces.hs b/GI/GObject/Interfaces.hs
--- a/GI/GObject/Interfaces.hs
+++ b/GI/GObject/Interfaces.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
diff --git a/GI/GObject/Interfaces/TypePlugin.hs b/GI/GObject/Interfaces/TypePlugin.hs
--- a/GI/GObject/Interfaces/TypePlugin.hs
+++ b/GI/GObject/Interfaces/TypePlugin.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -16,18 +17,22 @@
 
  -- * Methods
 -- ** typePluginCompleteInterfaceInfo
+    TypePluginCompleteInterfaceInfoMethodInfo,
     typePluginCompleteInterfaceInfo         ,
 
 
 -- ** typePluginCompleteTypeInfo
+    TypePluginCompleteTypeInfoMethodInfo    ,
     typePluginCompleteTypeInfo              ,
 
 
 -- ** typePluginUnuse
+    TypePluginUnuseMethodInfo               ,
     typePluginUnuse                         ,
 
 
 -- ** typePluginUse
+    TypePluginUseMethodInfo                 ,
     typePluginUse                           ,
 
 
@@ -51,6 +56,21 @@
 noTypePlugin :: Maybe TypePlugin
 noTypePlugin = Nothing
 
+type family ResolveTypePluginMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypePluginMethod "completeInterfaceInfo" o = TypePluginCompleteInterfaceInfoMethodInfo
+    ResolveTypePluginMethod "completeTypeInfo" o = TypePluginCompleteTypeInfoMethodInfo
+    ResolveTypePluginMethod "unuse" o = TypePluginUnuseMethodInfo
+    ResolveTypePluginMethod "use" o = TypePluginUseMethodInfo
+    ResolveTypePluginMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypePluginMethod t TypePlugin, MethodInfo info TypePlugin p) => IsLabelProxy t (TypePlugin -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypePluginMethod t TypePlugin, MethodInfo info TypePlugin p) => IsLabel t (TypePlugin -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 type instance AttributeList TypePlugin = TypePluginAttributeList
 type TypePluginAttributeList = ('[ ] :: [(Symbol, *)])
 
@@ -64,9 +84,8 @@
 
 -- method TypePlugin::complete_interface_info
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "InterfaceInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface "GObject" "InterfaceInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "InterfaceInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -81,26 +100,29 @@
 
 typePluginCompleteInterfaceInfo ::
     (MonadIO m, TypePluginK a) =>
-    a ->                                    -- _obj
-    GType ->                                -- instance_type
-    GType ->                                -- interface_type
-    InterfaceInfo ->                        -- info
-    m ()
-typePluginCompleteInterfaceInfo _obj instance_type interface_type info = liftIO $ do
+    a                                       -- _obj
+    -> GType                                -- instanceType
+    -> GType                                -- interfaceType
+    -> InterfaceInfo                        -- info
+    -> m ()                                 -- result
+typePluginCompleteInterfaceInfo _obj instanceType interfaceType info = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    let instance_type' = gtypeToCGType instance_type
-    let interface_type' = gtypeToCGType interface_type
+    let instanceType' = gtypeToCGType instanceType
+    let interfaceType' = gtypeToCGType interfaceType
     let info' = unsafeManagedPtrGetPtr info
-    g_type_plugin_complete_interface_info _obj' instance_type' interface_type' info'
+    g_type_plugin_complete_interface_info _obj' instanceType' interfaceType' info'
     touchManagedPtr _obj
     touchManagedPtr info
     return ()
 
+data TypePluginCompleteInterfaceInfoMethodInfo
+instance (signature ~ (GType -> GType -> InterfaceInfo -> m ()), MonadIO m, TypePluginK a) => MethodInfo TypePluginCompleteInterfaceInfoMethodInfo a signature where
+    overloadedMethod _ = typePluginCompleteInterfaceInfo
+
 -- method TypePlugin::complete_type_info
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value_table", argType = TInterface "GObject" "TypeValueTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value_table", argType = TInterface "GObject" "TypeValueTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "g_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value_table", argType = TInterface "GObject" "TypeValueTable", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -115,27 +137,30 @@
 
 typePluginCompleteTypeInfo ::
     (MonadIO m, TypePluginK a) =>
-    a ->                                    -- _obj
-    GType ->                                -- g_type
-    TypeInfo ->                             -- info
-    TypeValueTable ->                       -- value_table
-    m ()
-typePluginCompleteTypeInfo _obj g_type info value_table = liftIO $ do
+    a                                       -- _obj
+    -> GType                                -- gType
+    -> TypeInfo                             -- info
+    -> TypeValueTable                       -- valueTable
+    -> m ()                                 -- result
+typePluginCompleteTypeInfo _obj gType info valueTable = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    let g_type' = gtypeToCGType g_type
+    let gType' = gtypeToCGType gType
     let info' = unsafeManagedPtrGetPtr info
-    let value_table' = unsafeManagedPtrGetPtr value_table
-    g_type_plugin_complete_type_info _obj' g_type' info' value_table'
+    let valueTable' = unsafeManagedPtrGetPtr valueTable
+    g_type_plugin_complete_type_info _obj' gType' info' valueTable'
     touchManagedPtr _obj
     touchManagedPtr info
-    touchManagedPtr value_table
+    touchManagedPtr valueTable
     return ()
 
+data TypePluginCompleteTypeInfoMethodInfo
+instance (signature ~ (GType -> TypeInfo -> TypeValueTable -> m ()), MonadIO m, TypePluginK a) => MethodInfo TypePluginCompleteTypeInfoMethodInfo a signature where
+    overloadedMethod _ = typePluginCompleteTypeInfo
+
 -- method TypePlugin::unuse
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -147,19 +172,22 @@
 
 typePluginUnuse ::
     (MonadIO m, TypePluginK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 typePluginUnuse _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_type_plugin_unuse _obj'
     touchManagedPtr _obj
     return ()
 
+data TypePluginUnuseMethodInfo
+instance (signature ~ (m ()), MonadIO m, TypePluginK a) => MethodInfo TypePluginUnuseMethodInfo a signature where
+    overloadedMethod _ = typePluginUnuse
+
 -- method TypePlugin::use
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypePlugin", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -171,12 +199,16 @@
 
 typePluginUse ::
     (MonadIO m, TypePluginK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 typePluginUse _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_type_plugin_use _obj'
     touchManagedPtr _obj
     return ()
+
+data TypePluginUseMethodInfo
+instance (signature ~ (m ()), MonadIO m, TypePluginK a) => MethodInfo TypePluginUseMethodInfo a signature where
+    overloadedMethod _ = typePluginUse
 
 
diff --git a/GI/GObject/Interfaces/TypePlugin.hs-boot b/GI/GObject/Interfaces/TypePlugin.hs-boot
--- a/GI/GObject/Interfaces/TypePlugin.hs-boot
+++ b/GI/GObject/Interfaces/TypePlugin.hs-boot
@@ -10,3 +10,7 @@
 newtype TypePlugin = TypePlugin (ForeignPtr TypePlugin)
 class ForeignPtrNewtype a => TypePluginK a
 instance (ForeignPtrNewtype o, IsDescendantOf TypePlugin o) => TypePluginK o
+data TypePluginCompleteInterfaceInfoMethodInfo
+data TypePluginCompleteTypeInfoMethodInfo
+data TypePluginUnuseMethodInfo
+data TypePluginUseMethodInfo
diff --git a/GI/GObject/Objects.hs b/GI/GObject/Objects.hs
--- a/GI/GObject/Objects.hs
+++ b/GI/GObject/Objects.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
diff --git a/GI/GObject/Objects/Binding.hs b/GI/GObject/Objects/Binding.hs
--- a/GI/GObject/Objects/Binding.hs
+++ b/GI/GObject/Objects/Binding.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
 -- ** bindingGetFlags
+    BindingGetFlagsMethodInfo               ,
     bindingGetFlags                         ,
 
 
 -- ** bindingGetSource
+    BindingGetSourceMethodInfo              ,
     bindingGetSource                        ,
 
 
 -- ** bindingGetSourceProperty
+    BindingGetSourcePropertyMethodInfo      ,
     bindingGetSourceProperty                ,
 
 
 -- ** bindingGetTarget
+    BindingGetTargetMethodInfo              ,
     bindingGetTarget                        ,
 
 
 -- ** bindingGetTargetProperty
+    BindingGetTargetPropertyMethodInfo      ,
     bindingGetTargetProperty                ,
 
 
 -- ** bindingUnbind
+    BindingUnbindMethodInfo                 ,
     bindingUnbind                           ,
 
 
@@ -108,6 +115,45 @@
 noBinding :: Maybe Binding
 noBinding = Nothing
 
+type family ResolveBindingMethod (t :: Symbol) (o :: *) :: * where
+    ResolveBindingMethod "bindProperty" o = ObjectBindPropertyMethodInfo
+    ResolveBindingMethod "bindPropertyFull" o = ObjectBindPropertyFullMethodInfo
+    ResolveBindingMethod "forceFloating" o = ObjectForceFloatingMethodInfo
+    ResolveBindingMethod "freezeNotify" o = ObjectFreezeNotifyMethodInfo
+    ResolveBindingMethod "isFloating" o = ObjectIsFloatingMethodInfo
+    ResolveBindingMethod "notify" o = ObjectNotifyMethodInfo
+    ResolveBindingMethod "notifyByPspec" o = ObjectNotifyByPspecMethodInfo
+    ResolveBindingMethod "ref" o = ObjectRefMethodInfo
+    ResolveBindingMethod "refSink" o = ObjectRefSinkMethodInfo
+    ResolveBindingMethod "replaceData" o = ObjectReplaceDataMethodInfo
+    ResolveBindingMethod "replaceQdata" o = ObjectReplaceQdataMethodInfo
+    ResolveBindingMethod "runDispose" o = ObjectRunDisposeMethodInfo
+    ResolveBindingMethod "stealData" o = ObjectStealDataMethodInfo
+    ResolveBindingMethod "stealQdata" o = ObjectStealQdataMethodInfo
+    ResolveBindingMethod "thawNotify" o = ObjectThawNotifyMethodInfo
+    ResolveBindingMethod "unbind" o = BindingUnbindMethodInfo
+    ResolveBindingMethod "unref" o = ObjectUnrefMethodInfo
+    ResolveBindingMethod "watchClosure" o = ObjectWatchClosureMethodInfo
+    ResolveBindingMethod "getData" o = ObjectGetDataMethodInfo
+    ResolveBindingMethod "getFlags" o = BindingGetFlagsMethodInfo
+    ResolveBindingMethod "getProperty" o = ObjectGetPropertyMethodInfo
+    ResolveBindingMethod "getQdata" o = ObjectGetQdataMethodInfo
+    ResolveBindingMethod "getSource" o = BindingGetSourceMethodInfo
+    ResolveBindingMethod "getSourceProperty" o = BindingGetSourcePropertyMethodInfo
+    ResolveBindingMethod "getTarget" o = BindingGetTargetMethodInfo
+    ResolveBindingMethod "getTargetProperty" o = BindingGetTargetPropertyMethodInfo
+    ResolveBindingMethod "setData" o = ObjectSetDataMethodInfo
+    ResolveBindingMethod "setProperty" o = ObjectSetPropertyMethodInfo
+    ResolveBindingMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveBindingMethod t Binding, MethodInfo info Binding p) => IsLabelProxy t (Binding -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveBindingMethod t Binding, MethodInfo info Binding p) => IsLabel t (Binding -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- VVV Prop "flags"
    -- Type: TInterface "GObject" "BindingFlags"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
@@ -124,7 +170,7 @@
     type AttrSetTypeConstraint BindingFlagsPropertyInfo = (~) [BindingFlags]
     type AttrBaseTypeConstraint BindingFlagsPropertyInfo = BindingK
     type AttrGetType BindingFlagsPropertyInfo = [BindingFlags]
-    type AttrLabel BindingFlagsPropertyInfo = "Binding::flags"
+    type AttrLabel BindingFlagsPropertyInfo = "flags"
     attrGet _ = getBindingFlags
     attrSet _ = undefined
     attrConstruct _ = constructBindingFlags
@@ -145,7 +191,7 @@
     type AttrSetTypeConstraint BindingSourcePropertyInfo = ObjectK
     type AttrBaseTypeConstraint BindingSourcePropertyInfo = BindingK
     type AttrGetType BindingSourcePropertyInfo = Object
-    type AttrLabel BindingSourcePropertyInfo = "Binding::source"
+    type AttrLabel BindingSourcePropertyInfo = "source"
     attrGet _ = getBindingSource
     attrSet _ = undefined
     attrConstruct _ = constructBindingSource
@@ -166,7 +212,7 @@
     type AttrSetTypeConstraint BindingSourcePropertyPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint BindingSourcePropertyPropertyInfo = BindingK
     type AttrGetType BindingSourcePropertyPropertyInfo = T.Text
-    type AttrLabel BindingSourcePropertyPropertyInfo = "Binding::source-property"
+    type AttrLabel BindingSourcePropertyPropertyInfo = "source-property"
     attrGet _ = getBindingSourceProperty
     attrSet _ = undefined
     attrConstruct _ = constructBindingSourceProperty
@@ -187,7 +233,7 @@
     type AttrSetTypeConstraint BindingTargetPropertyInfo = ObjectK
     type AttrBaseTypeConstraint BindingTargetPropertyInfo = BindingK
     type AttrGetType BindingTargetPropertyInfo = Object
-    type AttrLabel BindingTargetPropertyInfo = "Binding::target"
+    type AttrLabel BindingTargetPropertyInfo = "target"
     attrGet _ = getBindingTarget
     attrSet _ = undefined
     attrConstruct _ = constructBindingTarget
@@ -208,22 +254,21 @@
     type AttrSetTypeConstraint BindingTargetPropertyPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint BindingTargetPropertyPropertyInfo = BindingK
     type AttrGetType BindingTargetPropertyPropertyInfo = T.Text
-    type AttrLabel BindingTargetPropertyPropertyInfo = "Binding::target-property"
+    type AttrLabel BindingTargetPropertyPropertyInfo = "target-property"
     attrGet _ = getBindingTargetProperty
     attrSet _ = undefined
     attrConstruct _ = constructBindingTargetProperty
 
 type instance AttributeList Binding = BindingAttributeList
-type BindingAttributeList = ('[ '("flags", BindingFlagsPropertyInfo), '("source", BindingSourcePropertyInfo), '("source-property", BindingSourcePropertyPropertyInfo), '("target", BindingTargetPropertyInfo), '("target-property", BindingTargetPropertyPropertyInfo)] :: [(Symbol, *)])
+type BindingAttributeList = ('[ '("flags", BindingFlagsPropertyInfo), '("source", BindingSourcePropertyInfo), '("sourceProperty", BindingSourcePropertyPropertyInfo), '("target", BindingTargetPropertyInfo), '("targetProperty", BindingTargetPropertyPropertyInfo)] :: [(Symbol, *)])
 
 type instance SignalList Binding = BindingSignalList
-type BindingSignalList = ('[ '("notify", ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type BindingSignalList = ('[ '("notify", ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method Binding::get_flags
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "BindingFlags"
 -- throws : False
 -- Skip return : False
@@ -235,8 +280,8 @@
 
 bindingGetFlags ::
     (MonadIO m, BindingK a) =>
-    a ->                                    -- _obj
-    m [BindingFlags]
+    a                                       -- _obj
+    -> m [BindingFlags]                     -- result
 bindingGetFlags _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_binding_get_flags _obj'
@@ -244,11 +289,14 @@
     touchManagedPtr _obj
     return result'
 
+data BindingGetFlagsMethodInfo
+instance (signature ~ (m [BindingFlags]), MonadIO m, BindingK a) => MethodInfo BindingGetFlagsMethodInfo a signature where
+    overloadedMethod _ = bindingGetFlags
+
 -- method Binding::get_source
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "Object"
 -- throws : False
 -- Skip return : False
@@ -260,8 +308,8 @@
 
 bindingGetSource ::
     (MonadIO m, BindingK a) =>
-    a ->                                    -- _obj
-    m Object
+    a                                       -- _obj
+    -> m Object                             -- result
 bindingGetSource _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_binding_get_source _obj'
@@ -270,11 +318,14 @@
     touchManagedPtr _obj
     return result'
 
+data BindingGetSourceMethodInfo
+instance (signature ~ (m Object), MonadIO m, BindingK a) => MethodInfo BindingGetSourceMethodInfo a signature where
+    overloadedMethod _ = bindingGetSource
+
 -- method Binding::get_source_property
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -286,8 +337,8 @@
 
 bindingGetSourceProperty ::
     (MonadIO m, BindingK a) =>
-    a ->                                    -- _obj
-    m T.Text
+    a                                       -- _obj
+    -> m T.Text                             -- result
 bindingGetSourceProperty _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_binding_get_source_property _obj'
@@ -296,11 +347,14 @@
     touchManagedPtr _obj
     return result'
 
+data BindingGetSourcePropertyMethodInfo
+instance (signature ~ (m T.Text), MonadIO m, BindingK a) => MethodInfo BindingGetSourcePropertyMethodInfo a signature where
+    overloadedMethod _ = bindingGetSourceProperty
+
 -- method Binding::get_target
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "Object"
 -- throws : False
 -- Skip return : False
@@ -312,8 +366,8 @@
 
 bindingGetTarget ::
     (MonadIO m, BindingK a) =>
-    a ->                                    -- _obj
-    m Object
+    a                                       -- _obj
+    -> m Object                             -- result
 bindingGetTarget _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_binding_get_target _obj'
@@ -322,11 +376,14 @@
     touchManagedPtr _obj
     return result'
 
+data BindingGetTargetMethodInfo
+instance (signature ~ (m Object), MonadIO m, BindingK a) => MethodInfo BindingGetTargetMethodInfo a signature where
+    overloadedMethod _ = bindingGetTarget
+
 -- method Binding::get_target_property
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -338,8 +395,8 @@
 
 bindingGetTargetProperty ::
     (MonadIO m, BindingK a) =>
-    a ->                                    -- _obj
-    m T.Text
+    a                                       -- _obj
+    -> m T.Text                             -- result
 bindingGetTargetProperty _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_binding_get_target_property _obj'
@@ -348,11 +405,14 @@
     touchManagedPtr _obj
     return result'
 
+data BindingGetTargetPropertyMethodInfo
+instance (signature ~ (m T.Text), MonadIO m, BindingK a) => MethodInfo BindingGetTargetPropertyMethodInfo a signature where
+    overloadedMethod _ = bindingGetTargetProperty
+
 -- method Binding::unbind
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Binding", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -364,12 +424,16 @@
 
 bindingUnbind ::
     (MonadIO m, BindingK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 bindingUnbind _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_binding_unbind _obj'
     touchManagedPtr _obj
     return ()
+
+data BindingUnbindMethodInfo
+instance (signature ~ (m ()), MonadIO m, BindingK a) => MethodInfo BindingUnbindMethodInfo a signature where
+    overloadedMethod _ = bindingUnbind
 
 
diff --git a/GI/GObject/Objects/Binding.hs-boot b/GI/GObject/Objects/Binding.hs-boot
--- a/GI/GObject/Objects/Binding.hs-boot
+++ b/GI/GObject/Objects/Binding.hs-boot
@@ -16,3 +16,9 @@
 data BindingSourcePropertyPropertyInfo
 data BindingTargetPropertyInfo
 data BindingTargetPropertyPropertyInfo
+data BindingGetFlagsMethodInfo
+data BindingGetSourceMethodInfo
+data BindingGetSourcePropertyMethodInfo
+data BindingGetTargetMethodInfo
+data BindingGetTargetPropertyMethodInfo
+data BindingUnbindMethodInfo
diff --git a/GI/GObject/Objects/InitiallyUnowned.hs b/GI/GObject/Objects/InitiallyUnowned.hs
--- a/GI/GObject/Objects/InitiallyUnowned.hs
+++ b/GI/GObject/Objects/InitiallyUnowned.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -48,10 +49,43 @@
 noInitiallyUnowned :: Maybe InitiallyUnowned
 noInitiallyUnowned = Nothing
 
+type family ResolveInitiallyUnownedMethod (t :: Symbol) (o :: *) :: * where
+    ResolveInitiallyUnownedMethod "bindProperty" o = ObjectBindPropertyMethodInfo
+    ResolveInitiallyUnownedMethod "bindPropertyFull" o = ObjectBindPropertyFullMethodInfo
+    ResolveInitiallyUnownedMethod "forceFloating" o = ObjectForceFloatingMethodInfo
+    ResolveInitiallyUnownedMethod "freezeNotify" o = ObjectFreezeNotifyMethodInfo
+    ResolveInitiallyUnownedMethod "isFloating" o = ObjectIsFloatingMethodInfo
+    ResolveInitiallyUnownedMethod "notify" o = ObjectNotifyMethodInfo
+    ResolveInitiallyUnownedMethod "notifyByPspec" o = ObjectNotifyByPspecMethodInfo
+    ResolveInitiallyUnownedMethod "ref" o = ObjectRefMethodInfo
+    ResolveInitiallyUnownedMethod "refSink" o = ObjectRefSinkMethodInfo
+    ResolveInitiallyUnownedMethod "replaceData" o = ObjectReplaceDataMethodInfo
+    ResolveInitiallyUnownedMethod "replaceQdata" o = ObjectReplaceQdataMethodInfo
+    ResolveInitiallyUnownedMethod "runDispose" o = ObjectRunDisposeMethodInfo
+    ResolveInitiallyUnownedMethod "stealData" o = ObjectStealDataMethodInfo
+    ResolveInitiallyUnownedMethod "stealQdata" o = ObjectStealQdataMethodInfo
+    ResolveInitiallyUnownedMethod "thawNotify" o = ObjectThawNotifyMethodInfo
+    ResolveInitiallyUnownedMethod "unref" o = ObjectUnrefMethodInfo
+    ResolveInitiallyUnownedMethod "watchClosure" o = ObjectWatchClosureMethodInfo
+    ResolveInitiallyUnownedMethod "getData" o = ObjectGetDataMethodInfo
+    ResolveInitiallyUnownedMethod "getProperty" o = ObjectGetPropertyMethodInfo
+    ResolveInitiallyUnownedMethod "getQdata" o = ObjectGetQdataMethodInfo
+    ResolveInitiallyUnownedMethod "setData" o = ObjectSetDataMethodInfo
+    ResolveInitiallyUnownedMethod "setProperty" o = ObjectSetPropertyMethodInfo
+    ResolveInitiallyUnownedMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveInitiallyUnownedMethod t InitiallyUnowned, MethodInfo info InitiallyUnowned p) => IsLabelProxy t (InitiallyUnowned -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveInitiallyUnownedMethod t InitiallyUnowned, MethodInfo info InitiallyUnowned p) => IsLabel t (InitiallyUnowned -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 type instance AttributeList InitiallyUnowned = InitiallyUnownedAttributeList
 type InitiallyUnownedAttributeList = ('[ ] :: [(Symbol, *)])
 
 type instance SignalList InitiallyUnowned = InitiallyUnownedSignalList
-type InitiallyUnownedSignalList = ('[ '("notify", ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type InitiallyUnownedSignalList = ('[ '("notify", ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 
diff --git a/GI/GObject/Objects/Object.hs b/GI/GObject/Objects/Object.hs
--- a/GI/GObject/Objects/Object.hs
+++ b/GI/GObject/Objects/Object.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -16,11 +17,17 @@
 
 
  -- * Methods
+-- ** Unsupported methods
+    ObjectInterfaceListPropertiesMethodInfo ,
+
+
 -- ** objectBindProperty
+    ObjectBindPropertyMethodInfo            ,
     objectBindProperty                      ,
 
 
 -- ** objectBindPropertyFull
+    ObjectBindPropertyFullMethodInfo        ,
     objectBindPropertyFull                  ,
 
 
@@ -29,22 +36,27 @@
 
 
 -- ** objectForceFloating
+    ObjectForceFloatingMethodInfo           ,
     objectForceFloating                     ,
 
 
 -- ** objectFreezeNotify
+    ObjectFreezeNotifyMethodInfo            ,
     objectFreezeNotify                      ,
 
 
 -- ** objectGetData
+    ObjectGetDataMethodInfo                 ,
     objectGetData                           ,
 
 
 -- ** objectGetProperty
+    ObjectGetPropertyMethodInfo             ,
     objectGetProperty                       ,
 
 
 -- ** objectGetQdata
+    ObjectGetQdataMethodInfo                ,
     objectGetQdata                          ,
 
 
@@ -57,6 +69,7 @@
 
 
 -- ** objectIsFloating
+    ObjectIsFloatingMethodInfo              ,
     objectIsFloating                        ,
 
 
@@ -65,58 +78,72 @@
 
 
 -- ** objectNotify
+    ObjectNotifyMethodInfo                  ,
     objectNotify                            ,
 
 
 -- ** objectNotifyByPspec
+    ObjectNotifyByPspecMethodInfo           ,
     objectNotifyByPspec                     ,
 
 
 -- ** objectRef
+    ObjectRefMethodInfo                     ,
     objectRef                               ,
 
 
 -- ** objectRefSink
+    ObjectRefSinkMethodInfo                 ,
     objectRefSink                           ,
 
 
 -- ** objectReplaceData
+    ObjectReplaceDataMethodInfo             ,
     objectReplaceData                       ,
 
 
 -- ** objectReplaceQdata
+    ObjectReplaceQdataMethodInfo            ,
     objectReplaceQdata                      ,
 
 
 -- ** objectRunDispose
+    ObjectRunDisposeMethodInfo              ,
     objectRunDispose                        ,
 
 
 -- ** objectSetData
+    ObjectSetDataMethodInfo                 ,
     objectSetData                           ,
 
 
 -- ** objectSetProperty
+    ObjectSetPropertyMethodInfo             ,
     objectSetProperty                       ,
 
 
 -- ** objectStealData
+    ObjectStealDataMethodInfo               ,
     objectStealData                         ,
 
 
 -- ** objectStealQdata
+    ObjectStealQdataMethodInfo              ,
     objectStealQdata                        ,
 
 
 -- ** objectThawNotify
+    ObjectThawNotifyMethodInfo              ,
     objectThawNotify                        ,
 
 
 -- ** objectUnref
+    ObjectUnrefMethodInfo                   ,
     objectUnref                             ,
 
 
 -- ** objectWatchClosure
+    ObjectWatchClosureMethodInfo            ,
     objectWatchClosure                      ,
 
 
@@ -171,6 +198,39 @@
 noObject :: Maybe Object
 noObject = Nothing
 
+type family ResolveObjectMethod (t :: Symbol) (o :: *) :: * where
+    ResolveObjectMethod "bindProperty" o = ObjectBindPropertyMethodInfo
+    ResolveObjectMethod "bindPropertyFull" o = ObjectBindPropertyFullMethodInfo
+    ResolveObjectMethod "forceFloating" o = ObjectForceFloatingMethodInfo
+    ResolveObjectMethod "freezeNotify" o = ObjectFreezeNotifyMethodInfo
+    ResolveObjectMethod "isFloating" o = ObjectIsFloatingMethodInfo
+    ResolveObjectMethod "notify" o = ObjectNotifyMethodInfo
+    ResolveObjectMethod "notifyByPspec" o = ObjectNotifyByPspecMethodInfo
+    ResolveObjectMethod "ref" o = ObjectRefMethodInfo
+    ResolveObjectMethod "refSink" o = ObjectRefSinkMethodInfo
+    ResolveObjectMethod "replaceData" o = ObjectReplaceDataMethodInfo
+    ResolveObjectMethod "replaceQdata" o = ObjectReplaceQdataMethodInfo
+    ResolveObjectMethod "runDispose" o = ObjectRunDisposeMethodInfo
+    ResolveObjectMethod "stealData" o = ObjectStealDataMethodInfo
+    ResolveObjectMethod "stealQdata" o = ObjectStealQdataMethodInfo
+    ResolveObjectMethod "thawNotify" o = ObjectThawNotifyMethodInfo
+    ResolveObjectMethod "unref" o = ObjectUnrefMethodInfo
+    ResolveObjectMethod "watchClosure" o = ObjectWatchClosureMethodInfo
+    ResolveObjectMethod "getData" o = ObjectGetDataMethodInfo
+    ResolveObjectMethod "getProperty" o = ObjectGetPropertyMethodInfo
+    ResolveObjectMethod "getQdata" o = ObjectGetQdataMethodInfo
+    ResolveObjectMethod "setData" o = ObjectSetDataMethodInfo
+    ResolveObjectMethod "setProperty" o = ObjectSetPropertyMethodInfo
+    ResolveObjectMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveObjectMethod t Object, MethodInfo info Object p) => IsLabelProxy t (Object -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveObjectMethod t Object, MethodInfo info Object p) => IsLabel t (Object -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- signal Object::notify
 type ObjectNotifyCallback =
     GParamSpec ->
@@ -222,13 +282,12 @@
     connectSignal _ = connectObjectNotify
 
 type instance SignalList Object = ObjectSignalList
-type ObjectSignalList = ('[ '("notify", ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type ObjectSignalList = ('[ '("notify", ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method Object::new
 -- method type : Constructor
--- Args : [Arg {argName = "object_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_parameters", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parameters", argType = TCArray False (-1) 1 (TInterface "GObject" "Parameter"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : [Arg {argName = "n_parameters", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- hInArgs : [Arg {argName = "object_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parameters", argType = TCArray False (-1) 1 (TInterface "GObject" "Parameter"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "object_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_parameters", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parameters", argType = TCArray False (-1) 1 (TInterface "GObject" "Parameter"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "n_parameters", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "Object"
 -- throws : False
 -- Skip return : False
@@ -242,15 +301,15 @@
 
 objectNew ::
     (MonadIO m) =>
-    GType ->                                -- object_type
-    [Parameter] ->                          -- parameters
-    m Object
-objectNew object_type parameters = liftIO $ do
-    let n_parameters = fromIntegral $ length parameters
-    let object_type' = gtypeToCGType object_type
+    GType                                   -- objectType
+    -> [Parameter]                          -- parameters
+    -> m Object                             -- result
+objectNew objectType parameters = liftIO $ do
+    let nParameters = fromIntegral $ length parameters
+    let objectType' = gtypeToCGType objectType
     let parameters' = map unsafeManagedPtrGetPtr parameters
     parameters'' <- packBlockArray 32 parameters'
-    result <- g_object_newv object_type' n_parameters parameters''
+    result <- g_object_newv objectType' nParameters parameters''
     checkUnexpectedReturnNULL "g_object_newv" result
     result' <- (wrapObject Object) result
     mapM_ touchManagedPtr parameters
@@ -259,9 +318,8 @@
 
 -- method Object::bind_property
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "BindingFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "BindingFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "BindingFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "Binding"
 -- throws : False
 -- Skip return : False
@@ -277,32 +335,35 @@
 
 objectBindProperty ::
     (MonadIO m, ObjectK a, ObjectK b) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- source_property
-    b ->                                    -- target
-    T.Text ->                               -- target_property
-    [BindingFlags] ->                       -- flags
-    m Binding
-objectBindProperty _obj source_property target target_property flags = liftIO $ do
+    a                                       -- _obj
+    -> T.Text                               -- sourceProperty
+    -> b                                    -- target
+    -> T.Text                               -- targetProperty
+    -> [BindingFlags]                       -- flags
+    -> m Binding                            -- result
+objectBindProperty _obj sourceProperty target targetProperty flags = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    source_property' <- textToCString source_property
+    sourceProperty' <- textToCString sourceProperty
     let target' = unsafeManagedPtrCastPtr target
-    target_property' <- textToCString target_property
+    targetProperty' <- textToCString targetProperty
     let flags' = gflagsToWord flags
-    result <- g_object_bind_property _obj' source_property' target' target_property' flags'
+    result <- g_object_bind_property _obj' sourceProperty' target' targetProperty' flags'
     checkUnexpectedReturnNULL "g_object_bind_property" result
     result' <- (newObject Binding) result
     touchManagedPtr _obj
     touchManagedPtr target
-    freeMem source_property'
-    freeMem target_property'
+    freeMem sourceProperty'
+    freeMem targetProperty'
     return result'
 
+data ObjectBindPropertyMethodInfo
+instance (signature ~ (T.Text -> b -> T.Text -> [BindingFlags] -> m Binding), MonadIO m, ObjectK a, ObjectK b) => MethodInfo ObjectBindPropertyMethodInfo a signature where
+    overloadedMethod _ = objectBindProperty
+
 -- method Object::bind_property_full
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "BindingFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "transform_to", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "transform_from", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "BindingFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "transform_to", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "transform_from", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target_property", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "BindingFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "transform_to", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "transform_from", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "Binding"
 -- throws : False
 -- Skip return : False
@@ -320,38 +381,41 @@
 
 objectBindPropertyFull ::
     (MonadIO m, ObjectK a, ObjectK b) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- source_property
-    b ->                                    -- target
-    T.Text ->                               -- target_property
-    [BindingFlags] ->                       -- flags
-    Closure ->                              -- transform_to
-    Closure ->                              -- transform_from
-    m Binding
-objectBindPropertyFull _obj source_property target target_property flags transform_to transform_from = liftIO $ do
+    a                                       -- _obj
+    -> T.Text                               -- sourceProperty
+    -> b                                    -- target
+    -> T.Text                               -- targetProperty
+    -> [BindingFlags]                       -- flags
+    -> Closure                              -- transformTo
+    -> Closure                              -- transformFrom
+    -> m Binding                            -- result
+objectBindPropertyFull _obj sourceProperty target targetProperty flags transformTo transformFrom = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    source_property' <- textToCString source_property
+    sourceProperty' <- textToCString sourceProperty
     let target' = unsafeManagedPtrCastPtr target
-    target_property' <- textToCString target_property
+    targetProperty' <- textToCString targetProperty
     let flags' = gflagsToWord flags
-    let transform_to' = unsafeManagedPtrGetPtr transform_to
-    let transform_from' = unsafeManagedPtrGetPtr transform_from
-    result <- g_object_bind_property_with_closures _obj' source_property' target' target_property' flags' transform_to' transform_from'
+    let transformTo' = unsafeManagedPtrGetPtr transformTo
+    let transformFrom' = unsafeManagedPtrGetPtr transformFrom
+    result <- g_object_bind_property_with_closures _obj' sourceProperty' target' targetProperty' flags' transformTo' transformFrom'
     checkUnexpectedReturnNULL "g_object_bind_property_with_closures" result
     result' <- (newObject Binding) result
     touchManagedPtr _obj
     touchManagedPtr target
-    touchManagedPtr transform_to
-    touchManagedPtr transform_from
-    freeMem source_property'
-    freeMem target_property'
+    touchManagedPtr transformTo
+    touchManagedPtr transformFrom
+    freeMem sourceProperty'
+    freeMem targetProperty'
     return result'
 
+data ObjectBindPropertyFullMethodInfo
+instance (signature ~ (T.Text -> b -> T.Text -> [BindingFlags] -> Closure -> Closure -> m Binding), MonadIO m, ObjectK a, ObjectK b) => MethodInfo ObjectBindPropertyFullMethodInfo a signature where
+    overloadedMethod _ = objectBindPropertyFull
+
 -- method Object::force_floating
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -363,19 +427,22 @@
 
 objectForceFloating ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 objectForceFloating _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_object_force_floating _obj'
     touchManagedPtr _obj
     return ()
 
+data ObjectForceFloatingMethodInfo
+instance (signature ~ (m ()), MonadIO m, ObjectK a) => MethodInfo ObjectForceFloatingMethodInfo a signature where
+    overloadedMethod _ = objectForceFloating
+
 -- method Object::freeze_notify
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -387,19 +454,22 @@
 
 objectFreezeNotify ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 objectFreezeNotify _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_object_freeze_notify _obj'
     touchManagedPtr _obj
     return ()
 
+data ObjectFreezeNotifyMethodInfo
+instance (signature ~ (m ()), MonadIO m, ObjectK a) => MethodInfo ObjectFreezeNotifyMethodInfo a signature where
+    overloadedMethod _ = objectFreezeNotify
+
 -- method Object::get_data
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", 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 "GObject" "Object", 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 "GObject" "Object", 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 TVoid
 -- throws : False
 -- Skip return : False
@@ -412,9 +482,9 @@
 
 objectGetData ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- key
-    m ()
+    a                                       -- _obj
+    -> T.Text                               -- key
+    -> m ()                                 -- result
 objectGetData _obj key = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     key' <- textToCString key
@@ -423,11 +493,14 @@
     freeMem key'
     return ()
 
+data ObjectGetDataMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m, ObjectK a) => MethodInfo ObjectGetDataMethodInfo a signature where
+    overloadedMethod _ = objectGetData
+
 -- method Object::get_property
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -441,25 +514,28 @@
 
 objectGetProperty ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- property_name
-    GValue ->                               -- value
-    m ()
-objectGetProperty _obj property_name value = liftIO $ do
+    a                                       -- _obj
+    -> T.Text                               -- propertyName
+    -> GValue                               -- value
+    -> m ()                                 -- result
+objectGetProperty _obj propertyName value = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    property_name' <- textToCString property_name
+    propertyName' <- textToCString propertyName
     let value' = unsafeManagedPtrGetPtr value
-    g_object_get_property _obj' property_name' value'
+    g_object_get_property _obj' propertyName' value'
     touchManagedPtr _obj
     touchManagedPtr value
-    freeMem property_name'
+    freeMem propertyName'
     return ()
 
+data ObjectGetPropertyMethodInfo
+instance (signature ~ (T.Text -> GValue -> m ()), MonadIO m, ObjectK a) => MethodInfo ObjectGetPropertyMethodInfo a signature where
+    overloadedMethod _ = objectGetProperty
+
 -- method Object::get_qdata
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -472,20 +548,23 @@
 
 objectGetQdata ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- quark
-    m ()
+    a                                       -- _obj
+    -> Word32                               -- quark
+    -> m ()                                 -- result
 objectGetQdata _obj quark = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_object_get_qdata _obj' quark
     touchManagedPtr _obj
     return ()
 
+data ObjectGetQdataMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m, ObjectK a) => MethodInfo ObjectGetQdataMethodInfo a signature where
+    overloadedMethod _ = objectGetQdata
+
 -- method Object::is_floating
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -497,8 +576,8 @@
 
 objectIsFloating ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 objectIsFloating _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_object_is_floating _obj'
@@ -506,11 +585,14 @@
     touchManagedPtr _obj
     return result'
 
+data ObjectIsFloatingMethodInfo
+instance (signature ~ (m Bool), MonadIO m, ObjectK a) => MethodInfo ObjectIsFloatingMethodInfo a signature where
+    overloadedMethod _ = objectIsFloating
+
 -- method Object::notify
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property_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 "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -523,22 +605,25 @@
 
 objectNotify ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- property_name
-    m ()
-objectNotify _obj property_name = liftIO $ do
+    a                                       -- _obj
+    -> T.Text                               -- propertyName
+    -> m ()                                 -- result
+objectNotify _obj propertyName = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    property_name' <- textToCString property_name
-    g_object_notify _obj' property_name'
+    propertyName' <- textToCString propertyName
+    g_object_notify _obj' propertyName'
     touchManagedPtr _obj
-    freeMem property_name'
+    freeMem propertyName'
     return ()
 
+data ObjectNotifyMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m, ObjectK a) => MethodInfo ObjectNotifyMethodInfo a signature where
+    overloadedMethod _ = objectNotify
+
 -- method Object::notify_by_pspec
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -551,9 +636,9 @@
 
 objectNotifyByPspec ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    GParamSpec ->                           -- pspec
-    m ()
+    a                                       -- _obj
+    -> GParamSpec                           -- pspec
+    -> m ()                                 -- result
 objectNotifyByPspec _obj pspec = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let pspec' = unsafeManagedPtrGetPtr pspec
@@ -561,11 +646,14 @@
     touchManagedPtr _obj
     return ()
 
+data ObjectNotifyByPspecMethodInfo
+instance (signature ~ (GParamSpec -> m ()), MonadIO m, ObjectK a) => MethodInfo ObjectNotifyByPspecMethodInfo a signature where
+    overloadedMethod _ = objectNotifyByPspec
+
 -- method Object::ref
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "Object"
 -- throws : False
 -- Skip return : False
@@ -577,8 +665,8 @@
 
 objectRef ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    m Object
+    a                                       -- _obj
+    -> m Object                             -- result
 objectRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_object_ref _obj'
@@ -587,11 +675,14 @@
     touchManagedPtr _obj
     return result'
 
+data ObjectRefMethodInfo
+instance (signature ~ (m Object), MonadIO m, ObjectK a) => MethodInfo ObjectRefMethodInfo a signature where
+    overloadedMethod _ = objectRef
+
 -- method Object::ref_sink
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "Object"
 -- throws : False
 -- Skip return : False
@@ -603,8 +694,8 @@
 
 objectRefSink ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    m Object
+    a                                       -- _obj
+    -> m Object                             -- result
 objectRefSink _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_object_ref_sink _obj'
@@ -613,11 +704,14 @@
     touchManagedPtr _obj
     return result'
 
+data ObjectRefSinkMethodInfo
+instance (signature ~ (m Object), MonadIO m, ObjectK a) => MethodInfo ObjectRefSinkMethodInfo a signature where
+    overloadedMethod _ = objectRefSink
+
 -- method Object::replace_data
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", 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 = "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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", 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 = "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 : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", 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 = "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
@@ -634,14 +728,14 @@
 
 objectReplaceData ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- key
-    Maybe (Ptr ()) ->                       -- oldval
-    Maybe (Ptr ()) ->                       -- newval
-    Maybe (GLib.DestroyNotify) ->           -- destroy
-    Maybe (GLib.DestroyNotify) ->           -- old_destroy
-    m Bool
-objectReplaceData _obj key oldval newval destroy old_destroy = liftIO $ do
+    a                                       -- _obj
+    -> T.Text                               -- key
+    -> Maybe (Ptr ())                       -- oldval
+    -> Maybe (Ptr ())                       -- newval
+    -> Maybe (GLib.DestroyNotify)           -- destroy
+    -> Maybe (GLib.DestroyNotify)           -- oldDestroy
+    -> m Bool                               -- result
+objectReplaceData _obj key oldval newval destroy oldDestroy = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     key' <- textToCString key
     maybeOldval <- case oldval of
@@ -659,24 +753,27 @@
             jDestroy' <- GLib.mkDestroyNotify (GLib.destroyNotifyWrapper (Just ptrdestroy) jDestroy)
             poke ptrdestroy jDestroy'
             return jDestroy'
-    ptrold_destroy <- callocMem :: IO (Ptr (FunPtr GLib.DestroyNotifyC))
-    maybeOld_destroy <- case old_destroy of
+    ptroldDestroy <- callocMem :: IO (Ptr (FunPtr GLib.DestroyNotifyC))
+    maybeOldDestroy <- case oldDestroy of
         Nothing -> return (castPtrToFunPtr nullPtr)
-        Just jOld_destroy -> do
-            jOld_destroy' <- GLib.mkDestroyNotify (GLib.destroyNotifyWrapper (Just ptrold_destroy) jOld_destroy)
-            poke ptrold_destroy jOld_destroy'
-            return jOld_destroy'
-    result <- g_object_replace_data _obj' key' maybeOldval maybeNewval maybeDestroy maybeOld_destroy
+        Just jOldDestroy -> do
+            jOldDestroy' <- GLib.mkDestroyNotify (GLib.destroyNotifyWrapper (Just ptroldDestroy) jOldDestroy)
+            poke ptroldDestroy jOldDestroy'
+            return jOldDestroy'
+    result <- g_object_replace_data _obj' key' maybeOldval maybeNewval maybeDestroy maybeOldDestroy
     let result' = (/= 0) result
     touchManagedPtr _obj
     freeMem key'
     return result'
 
+data ObjectReplaceDataMethodInfo
+instance (signature ~ (T.Text -> Maybe (Ptr ()) -> Maybe (Ptr ()) -> Maybe (GLib.DestroyNotify) -> Maybe (GLib.DestroyNotify) -> m Bool), MonadIO m, ObjectK a) => MethodInfo ObjectReplaceDataMethodInfo a signature where
+    overloadedMethod _ = objectReplaceData
+
 -- method Object::replace_qdata
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "quark", 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}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quark", 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 : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "quark", 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
@@ -693,14 +790,14 @@
 
 objectReplaceQdata ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- quark
-    Maybe (Ptr ()) ->                       -- oldval
-    Maybe (Ptr ()) ->                       -- newval
-    Maybe (GLib.DestroyNotify) ->           -- destroy
-    Maybe (GLib.DestroyNotify) ->           -- old_destroy
-    m Bool
-objectReplaceQdata _obj quark oldval newval destroy old_destroy = liftIO $ do
+    a                                       -- _obj
+    -> Word32                               -- quark
+    -> Maybe (Ptr ())                       -- oldval
+    -> Maybe (Ptr ())                       -- newval
+    -> Maybe (GLib.DestroyNotify)           -- destroy
+    -> Maybe (GLib.DestroyNotify)           -- oldDestroy
+    -> m Bool                               -- result
+objectReplaceQdata _obj quark oldval newval destroy oldDestroy = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     maybeOldval <- case oldval of
         Nothing -> return nullPtr
@@ -717,23 +814,26 @@
             jDestroy' <- GLib.mkDestroyNotify (GLib.destroyNotifyWrapper (Just ptrdestroy) jDestroy)
             poke ptrdestroy jDestroy'
             return jDestroy'
-    ptrold_destroy <- callocMem :: IO (Ptr (FunPtr GLib.DestroyNotifyC))
-    maybeOld_destroy <- case old_destroy of
+    ptroldDestroy <- callocMem :: IO (Ptr (FunPtr GLib.DestroyNotifyC))
+    maybeOldDestroy <- case oldDestroy of
         Nothing -> return (castPtrToFunPtr nullPtr)
-        Just jOld_destroy -> do
-            jOld_destroy' <- GLib.mkDestroyNotify (GLib.destroyNotifyWrapper (Just ptrold_destroy) jOld_destroy)
-            poke ptrold_destroy jOld_destroy'
-            return jOld_destroy'
-    result <- g_object_replace_qdata _obj' quark maybeOldval maybeNewval maybeDestroy maybeOld_destroy
+        Just jOldDestroy -> do
+            jOldDestroy' <- GLib.mkDestroyNotify (GLib.destroyNotifyWrapper (Just ptroldDestroy) jOldDestroy)
+            poke ptroldDestroy jOldDestroy'
+            return jOldDestroy'
+    result <- g_object_replace_qdata _obj' quark maybeOldval maybeNewval maybeDestroy maybeOldDestroy
     let result' = (/= 0) result
     touchManagedPtr _obj
     return result'
 
+data ObjectReplaceQdataMethodInfo
+instance (signature ~ (Word32 -> Maybe (Ptr ()) -> Maybe (Ptr ()) -> Maybe (GLib.DestroyNotify) -> Maybe (GLib.DestroyNotify) -> m Bool), MonadIO m, ObjectK a) => MethodInfo ObjectReplaceQdataMethodInfo a signature where
+    overloadedMethod _ = objectReplaceQdata
+
 -- method Object::run_dispose
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -745,19 +845,22 @@
 
 objectRunDispose ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 objectRunDispose _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_object_run_dispose _obj'
     touchManagedPtr _obj
     return ()
 
+data ObjectRunDisposeMethodInfo
+instance (signature ~ (m ()), MonadIO m, ObjectK a) => MethodInfo ObjectRunDisposeMethodInfo a signature where
+    overloadedMethod _ = objectRunDispose
+
 -- method Object::set_data
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", 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 = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", 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 = "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 "GObject" "Object", 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 = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -771,10 +874,10 @@
 
 objectSetData ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- key
-    Ptr () ->                               -- data
-    m ()
+    a                                       -- _obj
+    -> T.Text                               -- key
+    -> Ptr ()                               -- data_
+    -> m ()                                 -- result
 objectSetData _obj key data_ = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     key' <- textToCString key
@@ -783,11 +886,14 @@
     freeMem key'
     return ()
 
+data ObjectSetDataMethodInfo
+instance (signature ~ (T.Text -> Ptr () -> m ()), MonadIO m, ObjectK a) => MethodInfo ObjectSetDataMethodInfo a signature where
+    overloadedMethod _ = objectSetData
+
 -- method Object::set_property
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -801,25 +907,28 @@
 
 objectSetProperty ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- property_name
-    GValue ->                               -- value
-    m ()
-objectSetProperty _obj property_name value = liftIO $ do
+    a                                       -- _obj
+    -> T.Text                               -- propertyName
+    -> GValue                               -- value
+    -> m ()                                 -- result
+objectSetProperty _obj propertyName value = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    property_name' <- textToCString property_name
+    propertyName' <- textToCString propertyName
     let value' = unsafeManagedPtrGetPtr value
-    g_object_set_property _obj' property_name' value'
+    g_object_set_property _obj' propertyName' value'
     touchManagedPtr _obj
     touchManagedPtr value
-    freeMem property_name'
+    freeMem propertyName'
     return ()
 
+data ObjectSetPropertyMethodInfo
+instance (signature ~ (T.Text -> GValue -> m ()), MonadIO m, ObjectK a) => MethodInfo ObjectSetPropertyMethodInfo a signature where
+    overloadedMethod _ = objectSetProperty
+
 -- method Object::steal_data
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", 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 "GObject" "Object", 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 "GObject" "Object", 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 TVoid
 -- throws : False
 -- Skip return : False
@@ -832,9 +941,9 @@
 
 objectStealData ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- key
-    m ()
+    a                                       -- _obj
+    -> T.Text                               -- key
+    -> m ()                                 -- result
 objectStealData _obj key = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     key' <- textToCString key
@@ -843,11 +952,14 @@
     freeMem key'
     return ()
 
+data ObjectStealDataMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m, ObjectK a) => MethodInfo ObjectStealDataMethodInfo a signature where
+    overloadedMethod _ = objectStealData
+
 -- method Object::steal_qdata
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "quark", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -860,20 +972,23 @@
 
 objectStealQdata ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- quark
-    m ()
+    a                                       -- _obj
+    -> Word32                               -- quark
+    -> m ()                                 -- result
 objectStealQdata _obj quark = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_object_steal_qdata _obj' quark
     touchManagedPtr _obj
     return ()
 
+data ObjectStealQdataMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m, ObjectK a) => MethodInfo ObjectStealQdataMethodInfo a signature where
+    overloadedMethod _ = objectStealQdata
+
 -- method Object::thaw_notify
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -885,19 +1000,22 @@
 
 objectThawNotify ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 objectThawNotify _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_object_thaw_notify _obj'
     touchManagedPtr _obj
     return ()
 
+data ObjectThawNotifyMethodInfo
+instance (signature ~ (m ()), MonadIO m, ObjectK a) => MethodInfo ObjectThawNotifyMethodInfo a signature where
+    overloadedMethod _ = objectThawNotify
+
 -- method Object::unref
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -909,19 +1027,22 @@
 
 objectUnref ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 objectUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_object_unref _obj'
     touchManagedPtr _obj
     return ()
 
+data ObjectUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m, ObjectK a) => MethodInfo ObjectUnrefMethodInfo a signature where
+    overloadedMethod _ = objectUnref
+
 -- method Object::watch_closure
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -934,9 +1055,9 @@
 
 objectWatchClosure ::
     (MonadIO m, ObjectK a) =>
-    a ->                                    -- _obj
-    Closure ->                              -- closure
-    m ()
+    a                                       -- _obj
+    -> Closure                              -- closure
+    -> m ()                                 -- result
 objectWatchClosure _obj closure = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let closure' = unsafeManagedPtrGetPtr closure
@@ -945,11 +1066,14 @@
     touchManagedPtr closure
     return ()
 
+data ObjectWatchClosureMethodInfo
+instance (signature ~ (Closure -> m ()), MonadIO m, ObjectK a) => MethodInfo ObjectWatchClosureMethodInfo a signature where
+    overloadedMethod _ = objectWatchClosure
+
 -- method Object::compat_control
 -- method type : MemberFunction
--- Args : [Arg {argName = "what", argType = TBasicType TUInt64, 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 = "what", argType = TBasicType TUInt64, 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 = "what", argType = TBasicType TUInt64, 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 TUInt64
 -- throws : False
 -- Skip return : False
@@ -962,18 +1086,17 @@
 
 objectCompatControl ::
     (MonadIO m) =>
-    Word64 ->                               -- what
-    Ptr () ->                               -- data
-    m Word64
+    Word64                                  -- what
+    -> Ptr ()                               -- data_
+    -> m Word64                             -- result
 objectCompatControl what data_ = liftIO $ do
     result <- g_object_compat_control what data_
     return result
 
 -- method Object::interface_find_property
 -- method type : MemberFunction
--- Args : [Arg {argName = "g_iface", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "g_iface", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "g_iface", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TParamSpec
 -- throws : False
 -- Skip return : False
@@ -986,22 +1109,21 @@
 
 objectInterfaceFindProperty ::
     (MonadIO m) =>
-    Ptr () ->                               -- g_iface
-    T.Text ->                               -- property_name
-    m GParamSpec
-objectInterfaceFindProperty g_iface property_name = liftIO $ do
-    property_name' <- textToCString property_name
-    result <- g_object_interface_find_property g_iface property_name'
+    Ptr ()                                  -- gIface
+    -> T.Text                               -- propertyName
+    -> m GParamSpec                         -- result
+objectInterfaceFindProperty gIface propertyName = liftIO $ do
+    propertyName' <- textToCString propertyName
+    result <- g_object_interface_find_property gIface propertyName'
     checkUnexpectedReturnNULL "g_object_interface_find_property" result
     result' <- newGParamSpecFromPtr result
-    freeMem property_name'
+    freeMem propertyName'
     return result'
 
 -- method Object::interface_install_property
 -- method type : MemberFunction
--- Args : [Arg {argName = "g_iface", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "g_iface", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "g_iface", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1014,14 +1136,19 @@
 
 objectInterfaceInstallProperty ::
     (MonadIO m) =>
-    Ptr () ->                               -- g_iface
-    GParamSpec ->                           -- pspec
-    m ()
-objectInterfaceInstallProperty g_iface pspec = liftIO $ do
+    Ptr ()                                  -- gIface
+    -> GParamSpec                           -- pspec
+    -> m ()                                 -- result
+objectInterfaceInstallProperty gIface pspec = liftIO $ do
     let pspec' = unsafeManagedPtrGetPtr pspec
-    g_object_interface_install_property g_iface pspec'
+    g_object_interface_install_property gIface pspec'
     return ()
 
 -- XXX Could not generate method Object::interface_list_properties
 -- Error was : Not implemented: "unpackCArray : Don't know how to unpack C Array of type TParamSpec"
+-- XXX: Dummy instance, since code generation failed.
+-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
+data ObjectInterfaceListPropertiesMethodInfo
+instance (p ~ (), o ~ MethodResolutionFailed "interfaceListProperties" Object) => MethodInfo ObjectInterfaceListPropertiesMethodInfo o p where
+    overloadedMethod _ = undefined
 
diff --git a/GI/GObject/Objects/Object.hs-boot b/GI/GObject/Objects/Object.hs-boot
--- a/GI/GObject/Objects/Object.hs-boot
+++ b/GI/GObject/Objects/Object.hs-boot
@@ -12,3 +12,26 @@
 class GObject o => ObjectK o
 instance (GObject o, IsDescendantOf Object o) => ObjectK o
 data ObjectNotifySignalInfo
+data ObjectBindPropertyMethodInfo
+data ObjectBindPropertyFullMethodInfo
+data ObjectForceFloatingMethodInfo
+data ObjectFreezeNotifyMethodInfo
+data ObjectGetDataMethodInfo
+data ObjectGetPropertyMethodInfo
+data ObjectGetQdataMethodInfo
+data ObjectIsFloatingMethodInfo
+data ObjectNotifyMethodInfo
+data ObjectNotifyByPspecMethodInfo
+data ObjectRefMethodInfo
+data ObjectRefSinkMethodInfo
+data ObjectReplaceDataMethodInfo
+data ObjectReplaceQdataMethodInfo
+data ObjectRunDisposeMethodInfo
+data ObjectSetDataMethodInfo
+data ObjectSetPropertyMethodInfo
+data ObjectStealDataMethodInfo
+data ObjectStealQdataMethodInfo
+data ObjectThawNotifyMethodInfo
+data ObjectUnrefMethodInfo
+data ObjectWatchClosureMethodInfo
+data ObjectInterfaceListPropertiesMethodInfo
diff --git a/GI/GObject/Objects/TypeModule.hs b/GI/GObject/Objects/TypeModule.hs
--- a/GI/GObject/Objects/TypeModule.hs
+++ b/GI/GObject/Objects/TypeModule.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,30 +18,37 @@
 
  -- * Methods
 -- ** typeModuleAddInterface
+    TypeModuleAddInterfaceMethodInfo        ,
     typeModuleAddInterface                  ,
 
 
 -- ** typeModuleRegisterEnum
+    TypeModuleRegisterEnumMethodInfo        ,
     typeModuleRegisterEnum                  ,
 
 
 -- ** typeModuleRegisterFlags
+    TypeModuleRegisterFlagsMethodInfo       ,
     typeModuleRegisterFlags                 ,
 
 
 -- ** typeModuleRegisterType
+    TypeModuleRegisterTypeMethodInfo        ,
     typeModuleRegisterType                  ,
 
 
 -- ** typeModuleSetName
+    TypeModuleSetNameMethodInfo             ,
     typeModuleSetName                       ,
 
 
 -- ** typeModuleUnuse
+    TypeModuleUnuseMethodInfo               ,
     typeModuleUnuse                         ,
 
 
 -- ** typeModuleUse
+    TypeModuleUseMethodInfo                 ,
     typeModuleUse                           ,
 
 
@@ -79,17 +87,56 @@
 noTypeModule :: Maybe TypeModule
 noTypeModule = Nothing
 
+type family ResolveTypeModuleMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypeModuleMethod "addInterface" o = TypeModuleAddInterfaceMethodInfo
+    ResolveTypeModuleMethod "bindProperty" o = ObjectBindPropertyMethodInfo
+    ResolveTypeModuleMethod "bindPropertyFull" o = ObjectBindPropertyFullMethodInfo
+    ResolveTypeModuleMethod "completeInterfaceInfo" o = TypePluginCompleteInterfaceInfoMethodInfo
+    ResolveTypeModuleMethod "completeTypeInfo" o = TypePluginCompleteTypeInfoMethodInfo
+    ResolveTypeModuleMethod "forceFloating" o = ObjectForceFloatingMethodInfo
+    ResolveTypeModuleMethod "freezeNotify" o = ObjectFreezeNotifyMethodInfo
+    ResolveTypeModuleMethod "isFloating" o = ObjectIsFloatingMethodInfo
+    ResolveTypeModuleMethod "notify" o = ObjectNotifyMethodInfo
+    ResolveTypeModuleMethod "notifyByPspec" o = ObjectNotifyByPspecMethodInfo
+    ResolveTypeModuleMethod "ref" o = ObjectRefMethodInfo
+    ResolveTypeModuleMethod "refSink" o = ObjectRefSinkMethodInfo
+    ResolveTypeModuleMethod "registerEnum" o = TypeModuleRegisterEnumMethodInfo
+    ResolveTypeModuleMethod "registerFlags" o = TypeModuleRegisterFlagsMethodInfo
+    ResolveTypeModuleMethod "registerType" o = TypeModuleRegisterTypeMethodInfo
+    ResolveTypeModuleMethod "replaceData" o = ObjectReplaceDataMethodInfo
+    ResolveTypeModuleMethod "replaceQdata" o = ObjectReplaceQdataMethodInfo
+    ResolveTypeModuleMethod "runDispose" o = ObjectRunDisposeMethodInfo
+    ResolveTypeModuleMethod "stealData" o = ObjectStealDataMethodInfo
+    ResolveTypeModuleMethod "stealQdata" o = ObjectStealQdataMethodInfo
+    ResolveTypeModuleMethod "thawNotify" o = ObjectThawNotifyMethodInfo
+    ResolveTypeModuleMethod "unref" o = ObjectUnrefMethodInfo
+    ResolveTypeModuleMethod "watchClosure" o = ObjectWatchClosureMethodInfo
+    ResolveTypeModuleMethod "getData" o = ObjectGetDataMethodInfo
+    ResolveTypeModuleMethod "getProperty" o = ObjectGetPropertyMethodInfo
+    ResolveTypeModuleMethod "getQdata" o = ObjectGetQdataMethodInfo
+    ResolveTypeModuleMethod "setData" o = ObjectSetDataMethodInfo
+    ResolveTypeModuleMethod "setName" o = TypeModuleSetNameMethodInfo
+    ResolveTypeModuleMethod "setProperty" o = ObjectSetPropertyMethodInfo
+    ResolveTypeModuleMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypeModuleMethod t TypeModule, MethodInfo info TypeModule p) => IsLabelProxy t (TypeModule -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypeModuleMethod t TypeModule, MethodInfo info TypeModule p) => IsLabel t (TypeModule -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 type instance AttributeList TypeModule = TypeModuleAttributeList
 type TypeModuleAttributeList = ('[ ] :: [(Symbol, *)])
 
 type instance SignalList TypeModule = TypeModuleSignalList
-type TypeModuleSignalList = ('[ '("notify", ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type TypeModuleSignalList = ('[ '("notify", ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method TypeModule::add_interface
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_info", argType = TInterface "GObject" "InterfaceInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interface_info", argType = TInterface "GObject" "InterfaceInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "instance_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interface_info", argType = TInterface "GObject" "InterfaceInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -104,26 +151,29 @@
 
 typeModuleAddInterface ::
     (MonadIO m, TypeModuleK a) =>
-    a ->                                    -- _obj
-    GType ->                                -- instance_type
-    GType ->                                -- interface_type
-    InterfaceInfo ->                        -- interface_info
-    m ()
-typeModuleAddInterface _obj instance_type interface_type interface_info = liftIO $ do
+    a                                       -- _obj
+    -> GType                                -- instanceType
+    -> GType                                -- interfaceType
+    -> InterfaceInfo                        -- interfaceInfo
+    -> m ()                                 -- result
+typeModuleAddInterface _obj instanceType interfaceType interfaceInfo = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    let instance_type' = gtypeToCGType instance_type
-    let interface_type' = gtypeToCGType interface_type
-    let interface_info' = unsafeManagedPtrGetPtr interface_info
-    g_type_module_add_interface _obj' instance_type' interface_type' interface_info'
+    let instanceType' = gtypeToCGType instanceType
+    let interfaceType' = gtypeToCGType interfaceType
+    let interfaceInfo' = unsafeManagedPtrGetPtr interfaceInfo
+    g_type_module_add_interface _obj' instanceType' interfaceType' interfaceInfo'
     touchManagedPtr _obj
-    touchManagedPtr interface_info
+    touchManagedPtr interfaceInfo
     return ()
 
+data TypeModuleAddInterfaceMethodInfo
+instance (signature ~ (GType -> GType -> InterfaceInfo -> m ()), MonadIO m, TypeModuleK a) => MethodInfo TypeModuleAddInterfaceMethodInfo a signature where
+    overloadedMethod _ = typeModuleAddInterface
+
 -- method TypeModule::register_enum
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", 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 = "const_static_values", argType = TInterface "GObject" "EnumValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypeModule", 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 = "const_static_values", argType = TInterface "GObject" "EnumValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", 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 = "const_static_values", argType = TInterface "GObject" "EnumValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TGType
 -- throws : False
 -- Skip return : False
@@ -137,26 +187,29 @@
 
 typeModuleRegisterEnum ::
     (MonadIO m, TypeModuleK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- name
-    EnumValue ->                            -- const_static_values
-    m GType
-typeModuleRegisterEnum _obj name const_static_values = liftIO $ do
+    a                                       -- _obj
+    -> T.Text                               -- name
+    -> EnumValue                            -- constStaticValues
+    -> m GType                              -- result
+typeModuleRegisterEnum _obj name constStaticValues = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     name' <- textToCString name
-    let const_static_values' = unsafeManagedPtrGetPtr const_static_values
-    result <- g_type_module_register_enum _obj' name' const_static_values'
+    let constStaticValues' = unsafeManagedPtrGetPtr constStaticValues
+    result <- g_type_module_register_enum _obj' name' constStaticValues'
     let result' = GType result
     touchManagedPtr _obj
-    touchManagedPtr const_static_values
+    touchManagedPtr constStaticValues
     freeMem name'
     return result'
 
+data TypeModuleRegisterEnumMethodInfo
+instance (signature ~ (T.Text -> EnumValue -> m GType), MonadIO m, TypeModuleK a) => MethodInfo TypeModuleRegisterEnumMethodInfo a signature where
+    overloadedMethod _ = typeModuleRegisterEnum
+
 -- method TypeModule::register_flags
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", 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 = "const_static_values", argType = TInterface "GObject" "FlagsValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypeModule", 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 = "const_static_values", argType = TInterface "GObject" "FlagsValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", 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 = "const_static_values", argType = TInterface "GObject" "FlagsValue", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TGType
 -- throws : False
 -- Skip return : False
@@ -170,26 +223,29 @@
 
 typeModuleRegisterFlags ::
     (MonadIO m, TypeModuleK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- name
-    FlagsValue ->                           -- const_static_values
-    m GType
-typeModuleRegisterFlags _obj name const_static_values = liftIO $ do
+    a                                       -- _obj
+    -> T.Text                               -- name
+    -> FlagsValue                           -- constStaticValues
+    -> m GType                              -- result
+typeModuleRegisterFlags _obj name constStaticValues = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     name' <- textToCString name
-    let const_static_values' = unsafeManagedPtrGetPtr const_static_values
-    result <- g_type_module_register_flags _obj' name' const_static_values'
+    let constStaticValues' = unsafeManagedPtrGetPtr constStaticValues
+    result <- g_type_module_register_flags _obj' name' constStaticValues'
     let result' = GType result
     touchManagedPtr _obj
-    touchManagedPtr const_static_values
+    touchManagedPtr constStaticValues
     freeMem name'
     return result'
 
+data TypeModuleRegisterFlagsMethodInfo
+instance (signature ~ (T.Text -> FlagsValue -> m GType), MonadIO m, TypeModuleK a) => MethodInfo TypeModuleRegisterFlagsMethodInfo a signature where
+    overloadedMethod _ = typeModuleRegisterFlags
+
 -- method TypeModule::register_type
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type_info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type_info", argType = TInterface "GObject" "TypeInfo", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "GObject" "TypeFlags", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TGType
 -- throws : False
 -- Skip return : False
@@ -205,30 +261,33 @@
 
 typeModuleRegisterType ::
     (MonadIO m, TypeModuleK a) =>
-    a ->                                    -- _obj
-    GType ->                                -- parent_type
-    T.Text ->                               -- type_name
-    TypeInfo ->                             -- type_info
-    [TypeFlags] ->                          -- flags
-    m GType
-typeModuleRegisterType _obj parent_type type_name type_info flags = liftIO $ do
+    a                                       -- _obj
+    -> GType                                -- parentType
+    -> T.Text                               -- typeName
+    -> TypeInfo                             -- typeInfo
+    -> [TypeFlags]                          -- flags
+    -> m GType                              -- result
+typeModuleRegisterType _obj parentType typeName typeInfo flags = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    let parent_type' = gtypeToCGType parent_type
-    type_name' <- textToCString type_name
-    let type_info' = unsafeManagedPtrGetPtr type_info
+    let parentType' = gtypeToCGType parentType
+    typeName' <- textToCString typeName
+    let typeInfo' = unsafeManagedPtrGetPtr typeInfo
     let flags' = gflagsToWord flags
-    result <- g_type_module_register_type _obj' parent_type' type_name' type_info' flags'
+    result <- g_type_module_register_type _obj' parentType' typeName' typeInfo' flags'
     let result' = GType result
     touchManagedPtr _obj
-    touchManagedPtr type_info
-    freeMem type_name'
+    touchManagedPtr typeInfo
+    freeMem typeName'
     return result'
 
+data TypeModuleRegisterTypeMethodInfo
+instance (signature ~ (GType -> T.Text -> TypeInfo -> [TypeFlags] -> m GType), MonadIO m, TypeModuleK a) => MethodInfo TypeModuleRegisterTypeMethodInfo a signature where
+    overloadedMethod _ = typeModuleRegisterType
+
 -- method TypeModule::set_name
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", 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 "GObject" "TypeModule", 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 "GObject" "TypeModule", 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
@@ -241,9 +300,9 @@
 
 typeModuleSetName ::
     (MonadIO m, TypeModuleK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- name
-    m ()
+    a                                       -- _obj
+    -> T.Text                               -- name
+    -> m ()                                 -- result
 typeModuleSetName _obj name = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     name' <- textToCString name
@@ -252,11 +311,14 @@
     freeMem name'
     return ()
 
+data TypeModuleSetNameMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m, TypeModuleK a) => MethodInfo TypeModuleSetNameMethodInfo a signature where
+    overloadedMethod _ = typeModuleSetName
+
 -- method TypeModule::unuse
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -268,19 +330,22 @@
 
 typeModuleUnuse ::
     (MonadIO m, TypeModuleK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 typeModuleUnuse _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     g_type_module_unuse _obj'
     touchManagedPtr _obj
     return ()
 
+data TypeModuleUnuseMethodInfo
+instance (signature ~ (m ()), MonadIO m, TypeModuleK a) => MethodInfo TypeModuleUnuseMethodInfo a signature where
+    overloadedMethod _ = typeModuleUnuse
+
 -- method TypeModule::use
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeModule", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -292,13 +357,17 @@
 
 typeModuleUse ::
     (MonadIO m, TypeModuleK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 typeModuleUse _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- g_type_module_use _obj'
     let result' = (/= 0) result
     touchManagedPtr _obj
     return result'
+
+data TypeModuleUseMethodInfo
+instance (signature ~ (m Bool), MonadIO m, TypeModuleK a) => MethodInfo TypeModuleUseMethodInfo a signature where
+    overloadedMethod _ = typeModuleUse
 
 
diff --git a/GI/GObject/Objects/TypeModule.hs-boot b/GI/GObject/Objects/TypeModule.hs-boot
--- a/GI/GObject/Objects/TypeModule.hs-boot
+++ b/GI/GObject/Objects/TypeModule.hs-boot
@@ -11,3 +11,10 @@
 instance GObject TypeModule where
 class GObject o => TypeModuleK o
 instance (GObject o, IsDescendantOf TypeModule o) => TypeModuleK o
+data TypeModuleAddInterfaceMethodInfo
+data TypeModuleRegisterEnumMethodInfo
+data TypeModuleRegisterFlagsMethodInfo
+data TypeModuleRegisterTypeMethodInfo
+data TypeModuleSetNameMethodInfo
+data TypeModuleUnuseMethodInfo
+data TypeModuleUseMethodInfo
diff --git a/GI/GObject/Structs.hs b/GI/GObject/Structs.hs
--- a/GI/GObject/Structs.hs
+++ b/GI/GObject/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/GObject/Structs/CClosure.hs b/GI/GObject/Structs/CClosure.hs
--- a/GI/GObject/Structs/CClosure.hs
+++ b/GI/GObject/Structs/CClosure.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -12,9 +13,105 @@
 
 -- * Exported types
     CClosure(..)                            ,
+    newZeroCClosure                         ,
     noCClosure                              ,
 
 
+ -- * Methods
+-- ** cClosureMarshalBOOLEAN_BOXEDBOXED
+    cClosureMarshalBOOLEAN_BOXEDBOXED       ,
+
+
+-- ** cClosureMarshalBOOLEAN_FLAGS
+    cClosureMarshalBOOLEAN_FLAGS            ,
+
+
+-- ** cClosureMarshalGeneric
+    cClosureMarshalGeneric                  ,
+
+
+-- ** cClosureMarshalSTRING_OBJECTPOINTER
+    cClosureMarshalSTRING_OBJECTPOINTER     ,
+
+
+-- ** cClosureMarshalVOID_BOOLEAN
+    cClosureMarshalVOID_BOOLEAN             ,
+
+
+-- ** cClosureMarshalVOID_BOXED
+    cClosureMarshalVOID_BOXED               ,
+
+
+-- ** cClosureMarshalVOID_CHAR
+    cClosureMarshalVOID_CHAR                ,
+
+
+-- ** cClosureMarshalVOID_DOUBLE
+    cClosureMarshalVOID_DOUBLE              ,
+
+
+-- ** cClosureMarshalVOID_ENUM
+    cClosureMarshalVOID_ENUM                ,
+
+
+-- ** cClosureMarshalVOID_FLAGS
+    cClosureMarshalVOID_FLAGS               ,
+
+
+-- ** cClosureMarshalVOID_FLOAT
+    cClosureMarshalVOID_FLOAT               ,
+
+
+-- ** cClosureMarshalVOID_INT
+    cClosureMarshalVOID_INT                 ,
+
+
+-- ** cClosureMarshalVOID_LONG
+    cClosureMarshalVOID_LONG                ,
+
+
+-- ** cClosureMarshalVOID_OBJECT
+    cClosureMarshalVOID_OBJECT              ,
+
+
+-- ** cClosureMarshalVOID_PARAM
+    cClosureMarshalVOID_PARAM               ,
+
+
+-- ** cClosureMarshalVOID_POINTER
+    cClosureMarshalVOID_POINTER             ,
+
+
+-- ** cClosureMarshalVOID_STRING
+    cClosureMarshalVOID_STRING              ,
+
+
+-- ** cClosureMarshalVOID_UCHAR
+    cClosureMarshalVOID_UCHAR               ,
+
+
+-- ** cClosureMarshalVOID_UINT
+    cClosureMarshalVOID_UINT                ,
+
+
+-- ** cClosureMarshalVOID_UINTPOINTER
+    cClosureMarshalVOID_UINTPOINTER         ,
+
+
+-- ** cClosureMarshalVOID_ULONG
+    cClosureMarshalVOID_ULONG               ,
+
+
+-- ** cClosureMarshalVOID_VARIANT
+    cClosureMarshalVOID_VARIANT             ,
+
+
+-- ** cClosureMarshalVOID_VOID
+    cClosureMarshalVOID_VOID                ,
+
+
+
+
  -- * Properties
 -- ** Callback
     cClosureReadCallback                    ,
@@ -39,6 +136,10 @@
 import GI.GObject.Callbacks
 
 newtype CClosure = CClosure (ForeignPtr CClosure)
+-- | Construct a `CClosure` struct initialized to zero.
+newZeroCClosure :: MonadIO m => m CClosure
+newZeroCClosure = liftIO $ callocBytes 72 >>= wrapPtr CClosure
+
 noCClosure :: Maybe CClosure
 noCClosure = Nothing
 
@@ -52,5 +153,867 @@
 cClosureReadCallback s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 64) :: IO (Ptr ())
     return val
+
+-- method CClosure::marshal_BOOLEAN__BOXED_BOXED
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_BOOLEAN__BOXED_BOXED" g_cclosure_marshal_BOOLEAN__BOXED_BOXED :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalBOOLEAN_BOXEDBOXED ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalBOOLEAN_BOXEDBOXED closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_BOOLEAN__BOXED_BOXED closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_BOOLEAN__FLAGS
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_BOOLEAN__FLAGS" g_cclosure_marshal_BOOLEAN__FLAGS :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalBOOLEAN_FLAGS ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalBOOLEAN_FLAGS closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_BOOLEAN__FLAGS closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_STRING__OBJECT_POINTER
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_STRING__OBJECT_POINTER" g_cclosure_marshal_STRING__OBJECT_POINTER :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalSTRING_OBJECTPOINTER ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalSTRING_OBJECTPOINTER closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_STRING__OBJECT_POINTER closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__BOOLEAN
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__BOOLEAN" g_cclosure_marshal_VOID__BOOLEAN :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_BOOLEAN ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_BOOLEAN closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__BOOLEAN closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__BOXED
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__BOXED" g_cclosure_marshal_VOID__BOXED :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_BOXED ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_BOXED closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__BOXED closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__CHAR
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__CHAR" g_cclosure_marshal_VOID__CHAR :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_CHAR ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_CHAR closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__CHAR closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__DOUBLE
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__DOUBLE" g_cclosure_marshal_VOID__DOUBLE :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_DOUBLE ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_DOUBLE closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__DOUBLE closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__ENUM
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__ENUM" g_cclosure_marshal_VOID__ENUM :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_ENUM ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_ENUM closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__ENUM closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__FLAGS
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__FLAGS" g_cclosure_marshal_VOID__FLAGS :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_FLAGS ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_FLAGS closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__FLAGS closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__FLOAT
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__FLOAT" g_cclosure_marshal_VOID__FLOAT :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_FLOAT ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_FLOAT closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__FLOAT closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__INT
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__INT" g_cclosure_marshal_VOID__INT :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_INT ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_INT closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__INT closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__LONG
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__LONG" g_cclosure_marshal_VOID__LONG :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_LONG ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_LONG closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__LONG closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__OBJECT
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__OBJECT" g_cclosure_marshal_VOID__OBJECT :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_OBJECT ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_OBJECT closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__OBJECT closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__PARAM
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__PARAM" g_cclosure_marshal_VOID__PARAM :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_PARAM ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_PARAM closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__PARAM closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__POINTER
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__POINTER" g_cclosure_marshal_VOID__POINTER :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_POINTER ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_POINTER closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__POINTER closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__STRING
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__STRING" g_cclosure_marshal_VOID__STRING :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_STRING ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_STRING closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__STRING closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__UCHAR
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__UCHAR" g_cclosure_marshal_VOID__UCHAR :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_UCHAR ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_UCHAR closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__UCHAR closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__UINT
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__UINT" g_cclosure_marshal_VOID__UINT :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_UINT ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_UINT closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__UINT closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__UINT_POINTER
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__UINT_POINTER" g_cclosure_marshal_VOID__UINT_POINTER :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_UINTPOINTER ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_UINTPOINTER closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__UINT_POINTER closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__ULONG
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__ULONG" g_cclosure_marshal_VOID__ULONG :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_ULONG ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_ULONG closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__ULONG closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__VARIANT
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__VARIANT" g_cclosure_marshal_VOID__VARIANT :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_VARIANT ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_VARIANT closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__VARIANT closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_VOID__VOID
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_VOID__VOID" g_cclosure_marshal_VOID__VOID :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_value : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalVOID_VOID ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnValue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalVOID_VOID closure returnValue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnValue' = unsafeManagedPtrGetPtr returnValue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_VOID__VOID closure' returnValue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnValue
+    touchManagedPtr paramValues
+    return ()
+
+-- method CClosure::marshal_generic
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "closure", argType = TInterface "GObject" "Closure", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "return_gvalue", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_param_values", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_values", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invocation_hint", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "marshal_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_cclosure_marshal_generic" g_cclosure_marshal_generic :: 
+    Ptr Closure ->                          -- closure : TInterface "GObject" "Closure"
+    Ptr GValue ->                           -- return_gvalue : TInterface "GObject" "Value"
+    Word32 ->                               -- n_param_values : TBasicType TUInt32
+    Ptr GValue ->                           -- param_values : TInterface "GObject" "Value"
+    Ptr () ->                               -- invocation_hint : TBasicType TVoid
+    Ptr () ->                               -- marshal_data : TBasicType TVoid
+    IO ()
+
+
+cClosureMarshalGeneric ::
+    (MonadIO m) =>
+    Closure                                 -- closure
+    -> GValue                               -- returnGvalue
+    -> Word32                               -- nParamValues
+    -> GValue                               -- paramValues
+    -> Ptr ()                               -- invocationHint
+    -> Ptr ()                               -- marshalData
+    -> m ()                                 -- result
+cClosureMarshalGeneric closure returnGvalue nParamValues paramValues invocationHint marshalData = liftIO $ do
+    let closure' = unsafeManagedPtrGetPtr closure
+    let returnGvalue' = unsafeManagedPtrGetPtr returnGvalue
+    let paramValues' = unsafeManagedPtrGetPtr paramValues
+    g_cclosure_marshal_generic closure' returnGvalue' nParamValues paramValues' invocationHint marshalData
+    touchManagedPtr closure
+    touchManagedPtr returnGvalue
+    touchManagedPtr paramValues
+    return ()
+
+type family ResolveCClosureMethod (t :: Symbol) (o :: *) :: * where
+    ResolveCClosureMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveCClosureMethod t CClosure, MethodInfo info CClosure p) => IsLabelProxy t (CClosure -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveCClosureMethod t CClosure, MethodInfo info CClosure p) => IsLabel t (CClosure -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/ClosureNotifyData.hs b/GI/GObject/Structs/ClosureNotifyData.hs
--- a/GI/GObject/Structs/ClosureNotifyData.hs
+++ b/GI/GObject/Structs/ClosureNotifyData.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
     ClosureNotifyData(..)                   ,
+    newZeroClosureNotifyData                ,
     noClosureNotifyData                     ,
 
 
@@ -33,6 +35,10 @@
 import GI.GObject.Callbacks
 
 newtype ClosureNotifyData = ClosureNotifyData (ForeignPtr ClosureNotifyData)
+-- | Construct a `ClosureNotifyData` struct initialized to zero.
+newZeroClosureNotifyData :: MonadIO m => m ClosureNotifyData
+newZeroClosureNotifyData = liftIO $ callocBytes 16 >>= wrapPtr ClosureNotifyData
+
 noClosureNotifyData :: Maybe ClosureNotifyData
 noClosureNotifyData = Nothing
 
@@ -42,5 +48,16 @@
     return val
 
 -- XXX Skipped getter for "ClosureNotifyData:notify" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+type family ResolveClosureNotifyDataMethod (t :: Symbol) (o :: *) :: * where
+    ResolveClosureNotifyDataMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveClosureNotifyDataMethod t ClosureNotifyData, MethodInfo info ClosureNotifyData p) => IsLabelProxy t (ClosureNotifyData -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveClosureNotifyDataMethod t ClosureNotifyData, MethodInfo info ClosureNotifyData p) => IsLabel t (ClosureNotifyData -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/EnumClass.hs b/GI/GObject/Structs/EnumClass.hs
--- a/GI/GObject/Structs/EnumClass.hs
+++ b/GI/GObject/Structs/EnumClass.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
     EnumClass(..)                           ,
+    newZeroEnumClass                        ,
     noEnumClass                             ,
 
 
@@ -52,6 +54,10 @@
 import GI.GObject.Callbacks
 
 newtype EnumClass = EnumClass (ForeignPtr EnumClass)
+-- | Construct a `EnumClass` struct initialized to zero.
+newZeroEnumClass :: MonadIO m => m EnumClass
+newZeroEnumClass = liftIO $ callocBytes 32 >>= wrapPtr EnumClass
+
 noEnumClass :: Maybe EnumClass
 noEnumClass = Nothing
 
@@ -81,5 +87,16 @@
     val <- peek (ptr `plusPtr` 24) :: IO (Ptr EnumValue)
     val' <- (newPtr 24 EnumValue) val
     return val'
+
+type family ResolveEnumClassMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEnumClassMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEnumClassMethod t EnumClass, MethodInfo info EnumClass p) => IsLabelProxy t (EnumClass -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEnumClassMethod t EnumClass, MethodInfo info EnumClass p) => IsLabel t (EnumClass -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/EnumValue.hs b/GI/GObject/Structs/EnumValue.hs
--- a/GI/GObject/Structs/EnumValue.hs
+++ b/GI/GObject/Structs/EnumValue.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
     EnumValue(..)                           ,
+    newZeroEnumValue                        ,
     noEnumValue                             ,
 
 
@@ -44,6 +46,10 @@
 import GI.GObject.Callbacks
 
 newtype EnumValue = EnumValue (ForeignPtr EnumValue)
+-- | Construct a `EnumValue` struct initialized to zero.
+newZeroEnumValue :: MonadIO m => m EnumValue
+newZeroEnumValue = liftIO $ callocBytes 24 >>= wrapPtr EnumValue
+
 noEnumValue :: Maybe EnumValue
 noEnumValue = Nothing
 
@@ -63,5 +69,16 @@
     val <- peek (ptr `plusPtr` 16) :: IO CString
     val' <- cstringToText val
     return val'
+
+type family ResolveEnumValueMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEnumValueMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEnumValueMethod t EnumValue, MethodInfo info EnumValue p) => IsLabelProxy t (EnumValue -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEnumValueMethod t EnumValue, MethodInfo info EnumValue p) => IsLabel t (EnumValue -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/FlagsClass.hs b/GI/GObject/Structs/FlagsClass.hs
--- a/GI/GObject/Structs/FlagsClass.hs
+++ b/GI/GObject/Structs/FlagsClass.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
     FlagsClass(..)                          ,
+    newZeroFlagsClass                       ,
     noFlagsClass                            ,
 
 
@@ -48,6 +50,10 @@
 import GI.GObject.Callbacks
 
 newtype FlagsClass = FlagsClass (ForeignPtr FlagsClass)
+-- | Construct a `FlagsClass` struct initialized to zero.
+newZeroFlagsClass :: MonadIO m => m FlagsClass
+newZeroFlagsClass = liftIO $ callocBytes 24 >>= wrapPtr FlagsClass
+
 noFlagsClass :: Maybe FlagsClass
 noFlagsClass = Nothing
 
@@ -72,5 +78,16 @@
     val <- peek (ptr `plusPtr` 16) :: IO (Ptr FlagsValue)
     val' <- (newPtr 24 FlagsValue) val
     return val'
+
+type family ResolveFlagsClassMethod (t :: Symbol) (o :: *) :: * where
+    ResolveFlagsClassMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveFlagsClassMethod t FlagsClass, MethodInfo info FlagsClass p) => IsLabelProxy t (FlagsClass -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveFlagsClassMethod t FlagsClass, MethodInfo info FlagsClass p) => IsLabel t (FlagsClass -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/FlagsValue.hs b/GI/GObject/Structs/FlagsValue.hs
--- a/GI/GObject/Structs/FlagsValue.hs
+++ b/GI/GObject/Structs/FlagsValue.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
     FlagsValue(..)                          ,
+    newZeroFlagsValue                       ,
     noFlagsValue                            ,
 
 
@@ -44,6 +46,10 @@
 import GI.GObject.Callbacks
 
 newtype FlagsValue = FlagsValue (ForeignPtr FlagsValue)
+-- | Construct a `FlagsValue` struct initialized to zero.
+newZeroFlagsValue :: MonadIO m => m FlagsValue
+newZeroFlagsValue = liftIO $ callocBytes 24 >>= wrapPtr FlagsValue
+
 noFlagsValue :: Maybe FlagsValue
 noFlagsValue = Nothing
 
@@ -63,5 +69,16 @@
     val <- peek (ptr `plusPtr` 16) :: IO CString
     val' <- cstringToText val
     return val'
+
+type family ResolveFlagsValueMethod (t :: Symbol) (o :: *) :: * where
+    ResolveFlagsValueMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveFlagsValueMethod t FlagsValue, MethodInfo info FlagsValue p) => IsLabelProxy t (FlagsValue -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveFlagsValueMethod t FlagsValue, MethodInfo info FlagsValue p) => IsLabel t (FlagsValue -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/InterfaceInfo.hs b/GI/GObject/Structs/InterfaceInfo.hs
--- a/GI/GObject/Structs/InterfaceInfo.hs
+++ b/GI/GObject/Structs/InterfaceInfo.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
     InterfaceInfo(..)                       ,
+    newZeroInterfaceInfo                    ,
     noInterfaceInfo                         ,
 
 
@@ -36,6 +38,10 @@
 import GI.GObject.Callbacks
 
 newtype InterfaceInfo = InterfaceInfo (ForeignPtr InterfaceInfo)
+-- | Construct a `InterfaceInfo` struct initialized to zero.
+newZeroInterfaceInfo :: MonadIO m => m InterfaceInfo
+newZeroInterfaceInfo = liftIO $ callocBytes 24 >>= wrapPtr InterfaceInfo
+
 noInterfaceInfo :: Maybe InterfaceInfo
 noInterfaceInfo = Nothing
 
@@ -47,5 +53,16 @@
 interfaceInfoReadInterfaceData s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO (Ptr ())
     return val
+
+type family ResolveInterfaceInfoMethod (t :: Symbol) (o :: *) :: * where
+    ResolveInterfaceInfoMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveInterfaceInfoMethod t InterfaceInfo, MethodInfo info InterfaceInfo p) => IsLabelProxy t (InterfaceInfo -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveInterfaceInfoMethod t InterfaceInfo, MethodInfo info InterfaceInfo p) => IsLabel t (InterfaceInfo -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/ObjectConstructParam.hs b/GI/GObject/Structs/ObjectConstructParam.hs
--- a/GI/GObject/Structs/ObjectConstructParam.hs
+++ b/GI/GObject/Structs/ObjectConstructParam.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
     ObjectConstructParam(..)                ,
+    newZeroObjectConstructParam             ,
     noObjectConstructParam                  ,
 
 
@@ -41,6 +43,10 @@
 import GI.GObject.Callbacks
 
 newtype ObjectConstructParam = ObjectConstructParam (ForeignPtr ObjectConstructParam)
+-- | Construct a `ObjectConstructParam` struct initialized to zero.
+newZeroObjectConstructParam :: MonadIO m => m ObjectConstructParam
+newZeroObjectConstructParam = liftIO $ callocBytes 16 >>= wrapPtr ObjectConstructParam
+
 noObjectConstructParam :: Maybe ObjectConstructParam
 noObjectConstructParam = Nothing
 
@@ -55,5 +61,16 @@
     val <- peek (ptr `plusPtr` 8) :: IO (Ptr GValue)
     val' <- (newBoxed GValue) val
     return val'
+
+type family ResolveObjectConstructParamMethod (t :: Symbol) (o :: *) :: * where
+    ResolveObjectConstructParamMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveObjectConstructParamMethod t ObjectConstructParam, MethodInfo info ObjectConstructParam p) => IsLabelProxy t (ObjectConstructParam -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveObjectConstructParamMethod t ObjectConstructParam, MethodInfo info ObjectConstructParam p) => IsLabel t (ObjectConstructParam -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/ParamSpecPool.hs b/GI/GObject/Structs/ParamSpecPool.hs
--- a/GI/GObject/Structs/ParamSpecPool.hs
+++ b/GI/GObject/Structs/ParamSpecPool.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -20,18 +21,26 @@
 
  -- * Methods
 -- ** paramSpecPoolInsert
+    ParamSpecPoolInsertMethodInfo           ,
     paramSpecPoolInsert                     ,
 
 
 -- ** paramSpecPoolListOwned
+    ParamSpecPoolListOwnedMethodInfo        ,
     paramSpecPoolListOwned                  ,
 
 
 -- ** paramSpecPoolLookup
+    ParamSpecPoolLookupMethodInfo           ,
     paramSpecPoolLookup                     ,
 
 
+-- ** paramSpecPoolNew
+    paramSpecPoolNew                        ,
+
+
 -- ** paramSpecPoolRemove
+    ParamSpecPoolRemoveMethodInfo           ,
     paramSpecPoolRemove                     ,
 
 
@@ -55,9 +64,8 @@
 
 -- method ParamSpecPool::insert
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -71,25 +79,28 @@
 
 paramSpecPoolInsert ::
     (MonadIO m) =>
-    ParamSpecPool ->                        -- _obj
-    GParamSpec ->                           -- pspec
-    GType ->                                -- owner_type
-    m ()
-paramSpecPoolInsert _obj pspec owner_type = liftIO $ do
+    ParamSpecPool                           -- _obj
+    -> GParamSpec                           -- pspec
+    -> GType                                -- ownerType
+    -> m ()                                 -- result
+paramSpecPoolInsert _obj pspec ownerType = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let pspec' = unsafeManagedPtrGetPtr pspec
-    let owner_type' = gtypeToCGType owner_type
-    g_param_spec_pool_insert _obj' pspec' owner_type'
+    let ownerType' = gtypeToCGType ownerType
+    g_param_spec_pool_insert _obj' pspec' ownerType'
     touchManagedPtr _obj
     return ()
 
+data ParamSpecPoolInsertMethodInfo
+instance (signature ~ (GParamSpec -> GType -> m ()), MonadIO m) => MethodInfo ParamSpecPoolInsertMethodInfo ParamSpecPool signature where
+    overloadedMethod _ = paramSpecPoolInsert
+
 -- XXX Could not generate method ParamSpecPool::list
 -- Error was : Not implemented: "unpackCArray : Don't know how to unpack C Array of type TParamSpec"
 -- method ParamSpecPool::list_owned
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TGList TParamSpec
 -- throws : False
 -- Skip return : False
@@ -102,13 +113,13 @@
 
 paramSpecPoolListOwned ::
     (MonadIO m) =>
-    ParamSpecPool ->                        -- _obj
-    GType ->                                -- owner_type
-    m [GParamSpec]
-paramSpecPoolListOwned _obj owner_type = liftIO $ do
+    ParamSpecPool                           -- _obj
+    -> GType                                -- ownerType
+    -> m [GParamSpec]                       -- result
+paramSpecPoolListOwned _obj ownerType = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let owner_type' = gtypeToCGType owner_type
-    result <- g_param_spec_pool_list_owned _obj' owner_type'
+    let ownerType' = gtypeToCGType ownerType
+    result <- g_param_spec_pool_list_owned _obj' ownerType'
     checkUnexpectedReturnNULL "g_param_spec_pool_list_owned" result
     result' <- unpackGList result
     result'' <- mapM newGParamSpecFromPtr result'
@@ -116,11 +127,14 @@
     touchManagedPtr _obj
     return result''
 
+data ParamSpecPoolListOwnedMethodInfo
+instance (signature ~ (GType -> m [GParamSpec]), MonadIO m) => MethodInfo ParamSpecPoolListOwnedMethodInfo ParamSpecPool signature where
+    overloadedMethod _ = paramSpecPoolListOwned
+
 -- method ParamSpecPool::lookup
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "walk_ancestors", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "param_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "walk_ancestors", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "param_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "walk_ancestors", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TParamSpec
 -- throws : False
 -- Skip return : False
@@ -135,28 +149,31 @@
 
 paramSpecPoolLookup ::
     (MonadIO m) =>
-    ParamSpecPool ->                        -- _obj
-    T.Text ->                               -- param_name
-    GType ->                                -- owner_type
-    Bool ->                                 -- walk_ancestors
-    m GParamSpec
-paramSpecPoolLookup _obj param_name owner_type walk_ancestors = liftIO $ do
+    ParamSpecPool                           -- _obj
+    -> T.Text                               -- paramName
+    -> GType                                -- ownerType
+    -> Bool                                 -- walkAncestors
+    -> m GParamSpec                         -- result
+paramSpecPoolLookup _obj paramName ownerType walkAncestors = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    param_name' <- textToCString param_name
-    let owner_type' = gtypeToCGType owner_type
-    let walk_ancestors' = (fromIntegral . fromEnum) walk_ancestors
-    result <- g_param_spec_pool_lookup _obj' param_name' owner_type' walk_ancestors'
+    paramName' <- textToCString paramName
+    let ownerType' = gtypeToCGType ownerType
+    let walkAncestors' = (fromIntegral . fromEnum) walkAncestors
+    result <- g_param_spec_pool_lookup _obj' paramName' ownerType' walkAncestors'
     checkUnexpectedReturnNULL "g_param_spec_pool_lookup" result
     result' <- newGParamSpecFromPtr result
     touchManagedPtr _obj
-    freeMem param_name'
+    freeMem paramName'
     return result'
 
+data ParamSpecPoolLookupMethodInfo
+instance (signature ~ (T.Text -> GType -> Bool -> m GParamSpec), MonadIO m) => MethodInfo ParamSpecPoolLookupMethodInfo ParamSpecPool signature where
+    overloadedMethod _ = paramSpecPoolLookup
+
 -- method ParamSpecPool::remove
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ParamSpecPool", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pspec", argType = TParamSpec, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -169,14 +186,58 @@
 
 paramSpecPoolRemove ::
     (MonadIO m) =>
-    ParamSpecPool ->                        -- _obj
-    GParamSpec ->                           -- pspec
-    m ()
+    ParamSpecPool                           -- _obj
+    -> GParamSpec                           -- pspec
+    -> m ()                                 -- result
 paramSpecPoolRemove _obj pspec = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let pspec' = unsafeManagedPtrGetPtr pspec
     g_param_spec_pool_remove _obj' pspec'
     touchManagedPtr _obj
     return ()
+
+data ParamSpecPoolRemoveMethodInfo
+instance (signature ~ (GParamSpec -> m ()), MonadIO m) => MethodInfo ParamSpecPoolRemoveMethodInfo ParamSpecPool signature where
+    overloadedMethod _ = paramSpecPoolRemove
+
+-- method ParamSpecPool::new
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "type_prefixing", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "ParamSpecPool"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_param_spec_pool_new" g_param_spec_pool_new :: 
+    CInt ->                                 -- type_prefixing : TBasicType TBoolean
+    IO (Ptr ParamSpecPool)
+
+
+paramSpecPoolNew ::
+    (MonadIO m) =>
+    Bool                                    -- typePrefixing
+    -> m ParamSpecPool                      -- result
+paramSpecPoolNew typePrefixing = liftIO $ do
+    let typePrefixing' = (fromIntegral . fromEnum) typePrefixing
+    result <- g_param_spec_pool_new typePrefixing'
+    checkUnexpectedReturnNULL "g_param_spec_pool_new" result
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    result' <- (\x -> ParamSpecPool <$> newForeignPtr_ x) result
+    return result'
+
+type family ResolveParamSpecPoolMethod (t :: Symbol) (o :: *) :: * where
+    ResolveParamSpecPoolMethod "insert" o = ParamSpecPoolInsertMethodInfo
+    ResolveParamSpecPoolMethod "listOwned" o = ParamSpecPoolListOwnedMethodInfo
+    ResolveParamSpecPoolMethod "lookup" o = ParamSpecPoolLookupMethodInfo
+    ResolveParamSpecPoolMethod "remove" o = ParamSpecPoolRemoveMethodInfo
+    ResolveParamSpecPoolMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveParamSpecPoolMethod t ParamSpecPool, MethodInfo info ParamSpecPool p) => IsLabelProxy t (ParamSpecPool -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveParamSpecPoolMethod t ParamSpecPool, MethodInfo info ParamSpecPool p) => IsLabel t (ParamSpecPool -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/ParamSpecPool.hs-boot b/GI/GObject/Structs/ParamSpecPool.hs-boot
--- a/GI/GObject/Structs/ParamSpecPool.hs-boot
+++ b/GI/GObject/Structs/ParamSpecPool.hs-boot
@@ -8,3 +8,7 @@
 import qualified Data.Map as Map
 
 newtype ParamSpecPool = ParamSpecPool (ForeignPtr ParamSpecPool)
+data ParamSpecPoolInsertMethodInfo
+data ParamSpecPoolListOwnedMethodInfo
+data ParamSpecPoolLookupMethodInfo
+data ParamSpecPoolRemoveMethodInfo
diff --git a/GI/GObject/Structs/ParamSpecTypeInfo.hs b/GI/GObject/Structs/ParamSpecTypeInfo.hs
--- a/GI/GObject/Structs/ParamSpecTypeInfo.hs
+++ b/GI/GObject/Structs/ParamSpecTypeInfo.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
     ParamSpecTypeInfo(..)                   ,
+    newZeroParamSpecTypeInfo                ,
     noParamSpecTypeInfo                     ,
 
 
@@ -49,6 +51,10 @@
 import GI.GObject.Callbacks
 
 newtype ParamSpecTypeInfo = ParamSpecTypeInfo (ForeignPtr ParamSpecTypeInfo)
+-- | Construct a `ParamSpecTypeInfo` struct initialized to zero.
+newZeroParamSpecTypeInfo :: MonadIO m => m ParamSpecTypeInfo
+newZeroParamSpecTypeInfo = liftIO $ callocBytes 56 >>= wrapPtr ParamSpecTypeInfo
+
 noParamSpecTypeInfo :: Maybe ParamSpecTypeInfo
 noParamSpecTypeInfo = Nothing
 
@@ -77,5 +83,16 @@
 -- XXX Skipped getter for "ParamSpecTypeInfo:value_validate" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
 
 -- XXX Skipped getter for "ParamSpecTypeInfo:values_cmp" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+type family ResolveParamSpecTypeInfoMethod (t :: Symbol) (o :: *) :: * where
+    ResolveParamSpecTypeInfoMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveParamSpecTypeInfoMethod t ParamSpecTypeInfo, MethodInfo info ParamSpecTypeInfo p) => IsLabelProxy t (ParamSpecTypeInfo -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveParamSpecTypeInfoMethod t ParamSpecTypeInfo, MethodInfo info ParamSpecTypeInfo p) => IsLabel t (ParamSpecTypeInfo -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/Parameter.hs b/GI/GObject/Structs/Parameter.hs
--- a/GI/GObject/Structs/Parameter.hs
+++ b/GI/GObject/Structs/Parameter.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
     Parameter(..)                           ,
+    newZeroParameter                        ,
     noParameter                             ,
 
 
@@ -40,6 +42,10 @@
 import GI.GObject.Callbacks
 
 newtype Parameter = Parameter (ForeignPtr Parameter)
+-- | Construct a `Parameter` struct initialized to zero.
+newZeroParameter :: MonadIO m => m Parameter
+newZeroParameter = liftIO $ callocBytes 32 >>= wrapPtr Parameter
+
 noParameter :: Maybe Parameter
 noParameter = Nothing
 
@@ -54,5 +60,16 @@
     val <- peek (ptr `plusPtr` 8) :: IO (Ptr GValue)
     val' <- (newBoxed GValue) val
     return val'
+
+type family ResolveParameterMethod (t :: Symbol) (o :: *) :: * where
+    ResolveParameterMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveParameterMethod t Parameter, MethodInfo info Parameter p) => IsLabelProxy t (Parameter -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveParameterMethod t Parameter, MethodInfo info Parameter p) => IsLabel t (Parameter -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/SignalInvocationHint.hs b/GI/GObject/Structs/SignalInvocationHint.hs
--- a/GI/GObject/Structs/SignalInvocationHint.hs
+++ b/GI/GObject/Structs/SignalInvocationHint.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
     SignalInvocationHint(..)                ,
+    newZeroSignalInvocationHint             ,
     noSignalInvocationHint                  ,
 
 
@@ -44,6 +46,10 @@
 import GI.GObject.Callbacks
 
 newtype SignalInvocationHint = SignalInvocationHint (ForeignPtr SignalInvocationHint)
+-- | Construct a `SignalInvocationHint` struct initialized to zero.
+newZeroSignalInvocationHint :: MonadIO m => m SignalInvocationHint
+newZeroSignalInvocationHint = liftIO $ callocBytes 12 >>= wrapPtr SignalInvocationHint
+
 noSignalInvocationHint :: Maybe SignalInvocationHint
 noSignalInvocationHint = Nothing
 
@@ -62,5 +68,16 @@
     val <- peek (ptr `plusPtr` 8) :: IO CUInt
     let val' = wordToGFlags val
     return val'
+
+type family ResolveSignalInvocationHintMethod (t :: Symbol) (o :: *) :: * where
+    ResolveSignalInvocationHintMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveSignalInvocationHintMethod t SignalInvocationHint, MethodInfo info SignalInvocationHint p) => IsLabelProxy t (SignalInvocationHint -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveSignalInvocationHintMethod t SignalInvocationHint, MethodInfo info SignalInvocationHint p) => IsLabel t (SignalInvocationHint -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/SignalQuery.hs b/GI/GObject/Structs/SignalQuery.hs
--- a/GI/GObject/Structs/SignalQuery.hs
+++ b/GI/GObject/Structs/SignalQuery.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
     SignalQuery(..)                         ,
+    newZeroSignalQuery                      ,
     noSignalQuery                           ,
 
 
@@ -56,6 +58,10 @@
 import GI.GObject.Callbacks
 
 newtype SignalQuery = SignalQuery (ForeignPtr SignalQuery)
+-- | Construct a `SignalQuery` struct initialized to zero.
+newZeroSignalQuery :: MonadIO m => m SignalQuery
+newZeroSignalQuery = liftIO $ callocBytes 56 >>= wrapPtr SignalQuery
+
 noSignalQuery :: Maybe SignalQuery
 noSignalQuery = Nothing
 
@@ -94,5 +100,16 @@
     return val
 
 -- XXX Skipped getter for "SignalQuery:param_types" :: Not implemented: "Don't know how to unpack C array of type TCArray False (-1) 5 (TBasicType TGType)"
+
+type family ResolveSignalQueryMethod (t :: Symbol) (o :: *) :: * where
+    ResolveSignalQueryMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveSignalQueryMethod t SignalQuery, MethodInfo info SignalQuery p) => IsLabelProxy t (SignalQuery -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveSignalQueryMethod t SignalQuery, MethodInfo info SignalQuery p) => IsLabel t (SignalQuery -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/TypeClass.hs b/GI/GObject/Structs/TypeClass.hs
--- a/GI/GObject/Structs/TypeClass.hs
+++ b/GI/GObject/Structs/TypeClass.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -12,15 +13,38 @@
 
 -- * Exported types
     TypeClass(..)                           ,
+    newZeroTypeClass                        ,
     noTypeClass                             ,
 
 
  -- * Methods
+-- ** typeClassAddPrivate
+    typeClassAddPrivate                     ,
+
+
+-- ** typeClassAdjustPrivateOffset
+    typeClassAdjustPrivateOffset            ,
+
+
+-- ** typeClassPeek
+    typeClassPeek                           ,
+
+
 -- ** typeClassPeekParent
+    TypeClassPeekParentMethodInfo           ,
     typeClassPeekParent                     ,
 
 
+-- ** typeClassPeekStatic
+    typeClassPeekStatic                     ,
+
+
+-- ** typeClassRef
+    typeClassRef                            ,
+
+
 -- ** typeClassUnref
+    TypeClassUnrefMethodInfo                ,
     typeClassUnref                          ,
 
 
@@ -39,14 +63,17 @@
 import GI.GObject.Callbacks
 
 newtype TypeClass = TypeClass (ForeignPtr TypeClass)
+-- | Construct a `TypeClass` struct initialized to zero.
+newZeroTypeClass :: MonadIO m => m TypeClass
+newZeroTypeClass = liftIO $ callocBytes 8 >>= wrapPtr TypeClass
+
 noTypeClass :: Maybe TypeClass
 noTypeClass = Nothing
 
 -- method TypeClass::peek_parent
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "TypeClass"
 -- throws : False
 -- Skip return : False
@@ -58,8 +85,8 @@
 
 typeClassPeekParent ::
     (MonadIO m) =>
-    TypeClass ->                            -- _obj
-    m TypeClass
+    TypeClass                               -- _obj
+    -> m TypeClass                          -- result
 typeClassPeekParent _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_type_class_peek_parent _obj'
@@ -68,11 +95,14 @@
     touchManagedPtr _obj
     return result'
 
+data TypeClassPeekParentMethodInfo
+instance (signature ~ (m TypeClass), MonadIO m) => MethodInfo TypeClassPeekParentMethodInfo TypeClass signature where
+    overloadedMethod _ = typeClassPeekParent
+
 -- method TypeClass::unref
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -84,12 +114,147 @@
 
 typeClassUnref ::
     (MonadIO m) =>
-    TypeClass ->                            -- _obj
-    m ()
+    TypeClass                               -- _obj
+    -> m ()                                 -- result
 typeClassUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_type_class_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data TypeClassUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo TypeClassUnrefMethodInfo TypeClass signature where
+    overloadedMethod _ = typeClassUnref
+
+-- method TypeClass::add_private
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "g_class", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "private_size", 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_type_class_add_private" g_type_class_add_private :: 
+    Ptr () ->                               -- g_class : TBasicType TVoid
+    Word64 ->                               -- private_size : TBasicType TUInt64
+    IO ()
+
+
+typeClassAddPrivate ::
+    (MonadIO m) =>
+    Ptr ()                                  -- gClass
+    -> Word64                               -- privateSize
+    -> m ()                                 -- result
+typeClassAddPrivate gClass privateSize = liftIO $ do
+    g_type_class_add_private gClass privateSize
+    return ()
+
+-- method TypeClass::adjust_private_offset
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "g_class", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "private_size_or_offset", 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_type_class_adjust_private_offset" g_type_class_adjust_private_offset :: 
+    Ptr () ->                               -- g_class : TBasicType TVoid
+    Int32 ->                                -- private_size_or_offset : TBasicType TInt32
+    IO ()
+
+
+typeClassAdjustPrivateOffset ::
+    (MonadIO m) =>
+    Ptr ()                                  -- gClass
+    -> Int32                                -- privateSizeOrOffset
+    -> m ()                                 -- result
+typeClassAdjustPrivateOffset gClass privateSizeOrOffset = liftIO $ do
+    g_type_class_adjust_private_offset gClass privateSizeOrOffset
+    return ()
+
+-- method TypeClass::peek
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "TypeClass"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_class_peek" g_type_class_peek :: 
+    CGType ->                               -- type : TBasicType TGType
+    IO (Ptr TypeClass)
+
+
+typeClassPeek ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m TypeClass                          -- result
+typeClassPeek type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    result <- g_type_class_peek type_'
+    checkUnexpectedReturnNULL "g_type_class_peek" result
+    result' <- (newPtr 8 TypeClass) result
+    return result'
+
+-- method TypeClass::peek_static
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "TypeClass"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_class_peek_static" g_type_class_peek_static :: 
+    CGType ->                               -- type : TBasicType TGType
+    IO (Ptr TypeClass)
+
+
+typeClassPeekStatic ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m TypeClass                          -- result
+typeClassPeekStatic type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    result <- g_type_class_peek_static type_'
+    checkUnexpectedReturnNULL "g_type_class_peek_static" result
+    result' <- (newPtr 8 TypeClass) result
+    return result'
+
+-- method TypeClass::ref
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "TypeClass"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_class_ref" g_type_class_ref :: 
+    CGType ->                               -- type : TBasicType TGType
+    IO (Ptr TypeClass)
+
+
+typeClassRef ::
+    (MonadIO m) =>
+    GType                                   -- type_
+    -> m TypeClass                          -- result
+typeClassRef type_ = liftIO $ do
+    let type_' = gtypeToCGType type_
+    result <- g_type_class_ref type_'
+    checkUnexpectedReturnNULL "g_type_class_ref" result
+    result' <- (newPtr 8 TypeClass) result
+    return result'
+
+type family ResolveTypeClassMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypeClassMethod "peekParent" o = TypeClassPeekParentMethodInfo
+    ResolveTypeClassMethod "unref" o = TypeClassUnrefMethodInfo
+    ResolveTypeClassMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypeClassMethod t TypeClass, MethodInfo info TypeClass p) => IsLabelProxy t (TypeClass -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypeClassMethod t TypeClass, MethodInfo info TypeClass p) => IsLabel t (TypeClass -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/TypeClass.hs-boot b/GI/GObject/Structs/TypeClass.hs-boot
--- a/GI/GObject/Structs/TypeClass.hs-boot
+++ b/GI/GObject/Structs/TypeClass.hs-boot
@@ -8,3 +8,5 @@
 import qualified Data.Map as Map
 
 newtype TypeClass = TypeClass (ForeignPtr TypeClass)
+data TypeClassPeekParentMethodInfo
+data TypeClassUnrefMethodInfo
diff --git a/GI/GObject/Structs/TypeFundamentalInfo.hs b/GI/GObject/Structs/TypeFundamentalInfo.hs
--- a/GI/GObject/Structs/TypeFundamentalInfo.hs
+++ b/GI/GObject/Structs/TypeFundamentalInfo.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
     TypeFundamentalInfo(..)                 ,
+    newZeroTypeFundamentalInfo              ,
     noTypeFundamentalInfo                   ,
 
 
@@ -36,6 +38,10 @@
 import GI.GObject.Callbacks
 
 newtype TypeFundamentalInfo = TypeFundamentalInfo (ForeignPtr TypeFundamentalInfo)
+-- | Construct a `TypeFundamentalInfo` struct initialized to zero.
+newZeroTypeFundamentalInfo :: MonadIO m => m TypeFundamentalInfo
+newZeroTypeFundamentalInfo = liftIO $ callocBytes 4 >>= wrapPtr TypeFundamentalInfo
+
 noTypeFundamentalInfo :: Maybe TypeFundamentalInfo
 noTypeFundamentalInfo = Nothing
 
@@ -44,5 +50,16 @@
     val <- peek (ptr `plusPtr` 0) :: IO CUInt
     let val' = wordToGFlags val
     return val'
+
+type family ResolveTypeFundamentalInfoMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypeFundamentalInfoMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypeFundamentalInfoMethod t TypeFundamentalInfo, MethodInfo info TypeFundamentalInfo p) => IsLabelProxy t (TypeFundamentalInfo -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypeFundamentalInfoMethod t TypeFundamentalInfo, MethodInfo info TypeFundamentalInfo p) => IsLabel t (TypeFundamentalInfo -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/TypeInfo.hs b/GI/GObject/Structs/TypeInfo.hs
--- a/GI/GObject/Structs/TypeInfo.hs
+++ b/GI/GObject/Structs/TypeInfo.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -20,6 +21,7 @@
 
 -- * Exported types
     TypeInfo(..)                            ,
+    newZeroTypeInfo                         ,
     noTypeInfo                              ,
 
 
@@ -59,6 +61,10 @@
 import GI.GObject.Callbacks
 
 newtype TypeInfo = TypeInfo (ForeignPtr TypeInfo)
+-- | Construct a `TypeInfo` struct initialized to zero.
+newZeroTypeInfo :: MonadIO m => m TypeInfo
+newZeroTypeInfo = liftIO $ callocBytes 72 >>= wrapPtr TypeInfo
+
 noTypeInfo :: Maybe TypeInfo
 noTypeInfo = Nothing
 
@@ -97,5 +103,16 @@
     val <- peek (ptr `plusPtr` 64) :: IO (Ptr TypeValueTable)
     val' <- (newPtr 64 TypeValueTable) val
     return val'
+
+type family ResolveTypeInfoMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypeInfoMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypeInfoMethod t TypeInfo, MethodInfo info TypeInfo p) => IsLabelProxy t (TypeInfo -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypeInfoMethod t TypeInfo, MethodInfo info TypeInfo p) => IsLabel t (TypeInfo -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/TypeInstance.hs b/GI/GObject/Structs/TypeInstance.hs
--- a/GI/GObject/Structs/TypeInstance.hs
+++ b/GI/GObject/Structs/TypeInstance.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
     TypeInstance(..)                        ,
+    newZeroTypeInstance                     ,
     noTypeInstance                          ,
 
 
@@ -28,7 +30,22 @@
 import GI.GObject.Callbacks
 
 newtype TypeInstance = TypeInstance (ForeignPtr TypeInstance)
+-- | Construct a `TypeInstance` struct initialized to zero.
+newZeroTypeInstance :: MonadIO m => m TypeInstance
+newZeroTypeInstance = liftIO $ callocBytes 8 >>= wrapPtr TypeInstance
+
 noTypeInstance :: Maybe TypeInstance
 noTypeInstance = Nothing
+
+type family ResolveTypeInstanceMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypeInstanceMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypeInstanceMethod t TypeInstance, MethodInfo info TypeInstance p) => IsLabelProxy t (TypeInstance -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypeInstanceMethod t TypeInstance, MethodInfo info TypeInstance p) => IsLabel t (TypeInstance -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/TypeInterface.hs b/GI/GObject/Structs/TypeInterface.hs
--- a/GI/GObject/Structs/TypeInterface.hs
+++ b/GI/GObject/Structs/TypeInterface.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -12,16 +13,30 @@
 
 -- * Exported types
     TypeInterface(..)                       ,
+    newZeroTypeInterface                    ,
     noTypeInterface                         ,
 
 
  -- * Methods
+-- ** typeInterfaceAddPrerequisite
+    typeInterfaceAddPrerequisite            ,
+
+
+-- ** typeInterfacePeek
+    typeInterfacePeek                       ,
+
+
 -- ** typeInterfacePeekParent
+    TypeInterfacePeekParentMethodInfo       ,
     typeInterfacePeekParent                 ,
 
 
+-- ** typeInterfacePrerequisites
+    typeInterfacePrerequisites              ,
 
 
+
+
     ) where
 
 import Prelude ()
@@ -35,14 +50,17 @@
 import GI.GObject.Callbacks
 
 newtype TypeInterface = TypeInterface (ForeignPtr TypeInterface)
+-- | Construct a `TypeInterface` struct initialized to zero.
+newZeroTypeInterface :: MonadIO m => m TypeInterface
+newZeroTypeInterface = liftIO $ callocBytes 16 >>= wrapPtr TypeInterface
+
 noTypeInterface :: Maybe TypeInterface
 noTypeInterface = Nothing
 
 -- method TypeInterface::peek_parent
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeInterface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "TypeInterface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "TypeInterface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "TypeInterface"
 -- throws : False
 -- Skip return : False
@@ -54,8 +72,8 @@
 
 typeInterfacePeekParent ::
     (MonadIO m) =>
-    TypeInterface ->                        -- _obj
-    m TypeInterface
+    TypeInterface                           -- _obj
+    -> m TypeInterface                      -- result
 typeInterfacePeekParent _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_type_interface_peek_parent _obj'
@@ -63,5 +81,105 @@
     result' <- (newPtr 16 TypeInterface) result
     touchManagedPtr _obj
     return result'
+
+data TypeInterfacePeekParentMethodInfo
+instance (signature ~ (m TypeInterface), MonadIO m) => MethodInfo TypeInterfacePeekParentMethodInfo TypeInterface signature where
+    overloadedMethod _ = typeInterfacePeekParent
+
+-- method TypeInterface::add_prerequisite
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "prerequisite_type", argType = TBasicType TGType, 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_type_interface_add_prerequisite" g_type_interface_add_prerequisite :: 
+    CGType ->                               -- interface_type : TBasicType TGType
+    CGType ->                               -- prerequisite_type : TBasicType TGType
+    IO ()
+
+
+typeInterfaceAddPrerequisite ::
+    (MonadIO m) =>
+    GType                                   -- interfaceType
+    -> GType                                -- prerequisiteType
+    -> m ()                                 -- result
+typeInterfaceAddPrerequisite interfaceType prerequisiteType = liftIO $ do
+    let interfaceType' = gtypeToCGType interfaceType
+    let prerequisiteType' = gtypeToCGType prerequisiteType
+    g_type_interface_add_prerequisite interfaceType' prerequisiteType'
+    return ()
+
+-- XXX Could not generate method TypeInterface::get_plugin
+-- Error was : Bad introspection data: "Wrapping not a GObject with no copy..."
+-- method TypeInterface::peek
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "instance_class", argType = TInterface "GObject" "TypeClass", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "iface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GObject" "TypeInterface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_interface_peek" g_type_interface_peek :: 
+    Ptr TypeClass ->                        -- instance_class : TInterface "GObject" "TypeClass"
+    CGType ->                               -- iface_type : TBasicType TGType
+    IO (Ptr TypeInterface)
+
+
+typeInterfacePeek ::
+    (MonadIO m) =>
+    TypeClass                               -- instanceClass
+    -> GType                                -- ifaceType
+    -> m TypeInterface                      -- result
+typeInterfacePeek instanceClass ifaceType = liftIO $ do
+    let instanceClass' = unsafeManagedPtrGetPtr instanceClass
+    let ifaceType' = gtypeToCGType ifaceType
+    result <- g_type_interface_peek instanceClass' ifaceType'
+    checkUnexpectedReturnNULL "g_type_interface_peek" result
+    result' <- (newPtr 16 TypeInterface) result
+    touchManagedPtr instanceClass
+    return result'
+
+-- method TypeInterface::prerequisites
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "interface_type", argType = TBasicType TGType, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_prerequisites", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_prerequisites", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : TCArray False (-1) 1 (TBasicType TGType)
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "g_type_interface_prerequisites" g_type_interface_prerequisites :: 
+    CGType ->                               -- interface_type : TBasicType TGType
+    Ptr Word32 ->                           -- n_prerequisites : TBasicType TUInt32
+    IO (Ptr CGType)
+
+
+typeInterfacePrerequisites ::
+    (MonadIO m) =>
+    GType                                   -- interfaceType
+    -> m [GType]                            -- result
+typeInterfacePrerequisites interfaceType = liftIO $ do
+    let interfaceType' = gtypeToCGType interfaceType
+    nPrerequisites <- allocMem :: IO (Ptr Word32)
+    result <- g_type_interface_prerequisites interfaceType' nPrerequisites
+    nPrerequisites' <- peek nPrerequisites
+    checkUnexpectedReturnNULL "g_type_interface_prerequisites" result
+    result' <- (unpackMapStorableArrayWithLength GType nPrerequisites') result
+    freeMem result
+    freeMem nPrerequisites
+    return result'
+
+type family ResolveTypeInterfaceMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypeInterfaceMethod "peekParent" o = TypeInterfacePeekParentMethodInfo
+    ResolveTypeInterfaceMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypeInterfaceMethod t TypeInterface, MethodInfo info TypeInterface p) => IsLabelProxy t (TypeInterface -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypeInterfaceMethod t TypeInterface, MethodInfo info TypeInterface p) => IsLabel t (TypeInterface -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/TypeInterface.hs-boot b/GI/GObject/Structs/TypeInterface.hs-boot
--- a/GI/GObject/Structs/TypeInterface.hs-boot
+++ b/GI/GObject/Structs/TypeInterface.hs-boot
@@ -8,3 +8,4 @@
 import qualified Data.Map as Map
 
 newtype TypeInterface = TypeInterface (ForeignPtr TypeInterface)
+data TypeInterfacePeekParentMethodInfo
diff --git a/GI/GObject/Structs/TypePluginClass.hs b/GI/GObject/Structs/TypePluginClass.hs
--- a/GI/GObject/Structs/TypePluginClass.hs
+++ b/GI/GObject/Structs/TypePluginClass.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
     TypePluginClass(..)                     ,
+    newZeroTypePluginClass                  ,
     noTypePluginClass                       ,
 
 
@@ -29,6 +31,10 @@
 import GI.GObject.Callbacks
 
 newtype TypePluginClass = TypePluginClass (ForeignPtr TypePluginClass)
+-- | Construct a `TypePluginClass` struct initialized to zero.
+newZeroTypePluginClass :: MonadIO m => m TypePluginClass
+newZeroTypePluginClass = liftIO $ callocBytes 48 >>= wrapPtr TypePluginClass
+
 noTypePluginClass :: Maybe TypePluginClass
 noTypePluginClass = Nothing
 
@@ -39,5 +45,16 @@
 -- XXX Skipped getter for "TypePluginClass:complete_type_info" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
 
 -- XXX Skipped getter for "TypePluginClass:complete_interface_info" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+type family ResolveTypePluginClassMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypePluginClassMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypePluginClassMethod t TypePluginClass, MethodInfo info TypePluginClass p) => IsLabelProxy t (TypePluginClass -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypePluginClassMethod t TypePluginClass, MethodInfo info TypePluginClass p) => IsLabel t (TypePluginClass -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/TypeQuery.hs b/GI/GObject/Structs/TypeQuery.hs
--- a/GI/GObject/Structs/TypeQuery.hs
+++ b/GI/GObject/Structs/TypeQuery.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
     TypeQuery(..)                           ,
+    newZeroTypeQuery                        ,
     noTypeQuery                             ,
 
 
@@ -48,6 +50,10 @@
 import GI.GObject.Callbacks
 
 newtype TypeQuery = TypeQuery (ForeignPtr TypeQuery)
+-- | Construct a `TypeQuery` struct initialized to zero.
+newZeroTypeQuery :: MonadIO m => m TypeQuery
+newZeroTypeQuery = liftIO $ callocBytes 24 >>= wrapPtr TypeQuery
+
 noTypeQuery :: Maybe TypeQuery
 noTypeQuery = Nothing
 
@@ -72,5 +78,16 @@
 typeQueryReadInstanceSize s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 20) :: IO Word32
     return val
+
+type family ResolveTypeQueryMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypeQueryMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypeQueryMethod t TypeQuery, MethodInfo info TypeQuery p) => IsLabelProxy t (TypeQuery -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypeQueryMethod t TypeQuery, MethodInfo info TypeQuery p) => IsLabel t (TypeQuery -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/TypeValueTable.hs b/GI/GObject/Structs/TypeValueTable.hs
--- a/GI/GObject/Structs/TypeValueTable.hs
+++ b/GI/GObject/Structs/TypeValueTable.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
     TypeValueTable(..)                      ,
+    newZeroTypeValueTable                   ,
     noTypeValueTable                        ,
 
 
@@ -40,6 +42,10 @@
 import GI.GObject.Callbacks
 
 newtype TypeValueTable = TypeValueTable (ForeignPtr TypeValueTable)
+-- | Construct a `TypeValueTable` struct initialized to zero.
+newZeroTypeValueTable :: MonadIO m => m TypeValueTable
+newZeroTypeValueTable = liftIO $ callocBytes 64 >>= wrapPtr TypeValueTable
+
 noTypeValueTable :: Maybe TypeValueTable
 noTypeValueTable = Nothing
 
@@ -64,5 +70,16 @@
     return val'
 
 -- XXX Skipped getter for "TypeValueTable:lcopy_value" :: Not implemented: "Wrapping foreign callbacks is not supported yet"
+
+type family ResolveTypeValueTableMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypeValueTableMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypeValueTableMethod t TypeValueTable, MethodInfo info TypeValueTable p) => IsLabelProxy t (TypeValueTable -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypeValueTableMethod t TypeValueTable, MethodInfo info TypeValueTable p) => IsLabel t (TypeValueTable -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/ValueArray.hs b/GI/GObject/Structs/ValueArray.hs
--- a/GI/GObject/Structs/ValueArray.hs
+++ b/GI/GObject/Structs/ValueArray.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -12,27 +13,33 @@
 
 -- * Exported types
     ValueArray(..)                          ,
+    newZeroValueArray                       ,
     noValueArray                            ,
 
 
  -- * Methods
 -- ** valueArrayAppend
+    ValueArrayAppendMethodInfo              ,
     valueArrayAppend                        ,
 
 
 -- ** valueArrayCopy
+    ValueArrayCopyMethodInfo                ,
     valueArrayCopy                          ,
 
 
 -- ** valueArrayFree
+    ValueArrayFreeMethodInfo                ,
     valueArrayFree                          ,
 
 
 -- ** valueArrayGetNth
+    ValueArrayGetNthMethodInfo              ,
     valueArrayGetNth                        ,
 
 
 -- ** valueArrayInsert
+    ValueArrayInsertMethodInfo              ,
     valueArrayInsert                        ,
 
 
@@ -41,14 +48,17 @@
 
 
 -- ** valueArrayPrepend
+    ValueArrayPrependMethodInfo             ,
     valueArrayPrepend                       ,
 
 
 -- ** valueArrayRemove
+    ValueArrayRemoveMethodInfo              ,
     valueArrayRemove                        ,
 
 
 -- ** valueArraySort
+    ValueArraySortMethodInfo                ,
     valueArraySort                          ,
 
 
@@ -85,6 +95,10 @@
 instance BoxedObject ValueArray where
     boxedType _ = c_g_value_array_get_type
 
+-- | Construct a `ValueArray` struct initialized to zero.
+newZeroValueArray :: MonadIO m => m ValueArray
+newZeroValueArray = liftIO $ callocBoxedBytes 24 >>= wrapBoxed ValueArray
+
 noValueArray :: Maybe ValueArray
 noValueArray = Nothing
 
@@ -101,9 +115,8 @@
 
 -- method ValueArray::new
 -- method type : Constructor
--- Args : [Arg {argName = "n_prealloced", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "n_prealloced", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "n_prealloced", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "ValueArray"
 -- throws : False
 -- Skip return : False
@@ -115,19 +128,18 @@
 {-# DEPRECATED valueArrayNew ["(Since version 2.32)","Use #GArray and g_array_sized_new() instead."]#-}
 valueArrayNew ::
     (MonadIO m) =>
-    Word32 ->                               -- n_prealloced
-    m ValueArray
-valueArrayNew n_prealloced = liftIO $ do
-    result <- g_value_array_new n_prealloced
+    Word32                                  -- nPrealloced
+    -> m ValueArray                         -- result
+valueArrayNew nPrealloced = liftIO $ do
+    result <- g_value_array_new nPrealloced
     checkUnexpectedReturnNULL "g_value_array_new" result
     result' <- (wrapBoxed ValueArray) result
     return result'
 
 -- method ValueArray::append
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "ValueArray"
 -- throws : False
 -- Skip return : False
@@ -140,9 +152,9 @@
 {-# DEPRECATED valueArrayAppend ["(Since version 2.32)","Use #GArray and g_array_append_val() instead."]#-}
 valueArrayAppend ::
     (MonadIO m) =>
-    ValueArray ->                           -- _obj
-    Maybe (GValue) ->                       -- value
-    m ValueArray
+    ValueArray                              -- _obj
+    -> Maybe (GValue)                       -- value
+    -> m ValueArray                         -- result
 valueArrayAppend _obj value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeValue <- case value of
@@ -157,11 +169,14 @@
     whenJust value touchManagedPtr
     return result'
 
+data ValueArrayAppendMethodInfo
+instance (signature ~ (Maybe (GValue) -> m ValueArray), MonadIO m) => MethodInfo ValueArrayAppendMethodInfo ValueArray signature where
+    overloadedMethod _ = valueArrayAppend
+
 -- method ValueArray::copy
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "ValueArray"
 -- throws : False
 -- Skip return : False
@@ -173,8 +188,8 @@
 {-# DEPRECATED valueArrayCopy ["(Since version 2.32)","Use #GArray and g_array_ref() instead."]#-}
 valueArrayCopy ::
     (MonadIO m) =>
-    ValueArray ->                           -- _obj
-    m ValueArray
+    ValueArray                              -- _obj
+    -> m ValueArray                         -- result
 valueArrayCopy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- g_value_array_copy _obj'
@@ -183,11 +198,14 @@
     touchManagedPtr _obj
     return result'
 
+data ValueArrayCopyMethodInfo
+instance (signature ~ (m ValueArray), MonadIO m) => MethodInfo ValueArrayCopyMethodInfo ValueArray signature where
+    overloadedMethod _ = valueArrayCopy
+
 -- method ValueArray::free
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -199,19 +217,22 @@
 {-# DEPRECATED valueArrayFree ["(Since version 2.32)","Use #GArray and g_array_unref() instead."]#-}
 valueArrayFree ::
     (MonadIO m) =>
-    ValueArray ->                           -- _obj
-    m ()
+    ValueArray                              -- _obj
+    -> m ()                                 -- result
 valueArrayFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     g_value_array_free _obj'
     touchManagedPtr _obj
     return ()
 
+data ValueArrayFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo ValueArrayFreeMethodInfo ValueArray signature where
+    overloadedMethod _ = valueArrayFree
+
 -- method ValueArray::get_nth
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "Value"
 -- throws : False
 -- Skip return : False
@@ -224,22 +245,25 @@
 {-# DEPRECATED valueArrayGetNth ["(Since version 2.32)","Use g_array_index() instead."]#-}
 valueArrayGetNth ::
     (MonadIO m) =>
-    ValueArray ->                           -- _obj
-    Word32 ->                               -- index_
-    m GValue
-valueArrayGetNth _obj index_ = liftIO $ do
+    ValueArray                              -- _obj
+    -> Word32                               -- index
+    -> m GValue                             -- result
+valueArrayGetNth _obj index = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- g_value_array_get_nth _obj' index_
+    result <- g_value_array_get_nth _obj' index
     checkUnexpectedReturnNULL "g_value_array_get_nth" result
     result' <- (newBoxed GValue) result
     touchManagedPtr _obj
     return result'
 
+data ValueArrayGetNthMethodInfo
+instance (signature ~ (Word32 -> m GValue), MonadIO m) => MethodInfo ValueArrayGetNthMethodInfo ValueArray signature where
+    overloadedMethod _ = valueArrayGetNth
+
 -- method ValueArray::insert
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "ValueArray"
 -- throws : False
 -- Skip return : False
@@ -253,29 +277,32 @@
 {-# DEPRECATED valueArrayInsert ["(Since version 2.32)","Use #GArray and g_array_insert_val() instead."]#-}
 valueArrayInsert ::
     (MonadIO m) =>
-    ValueArray ->                           -- _obj
-    Word32 ->                               -- index_
-    Maybe (GValue) ->                       -- value
-    m ValueArray
-valueArrayInsert _obj index_ value = liftIO $ do
+    ValueArray                              -- _obj
+    -> Word32                               -- index
+    -> Maybe (GValue)                       -- value
+    -> m ValueArray                         -- result
+valueArrayInsert _obj index value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeValue <- case value of
         Nothing -> return nullPtr
         Just jValue -> do
             let jValue' = unsafeManagedPtrGetPtr jValue
             return jValue'
-    result <- g_value_array_insert _obj' index_ maybeValue
+    result <- g_value_array_insert _obj' index maybeValue
     checkUnexpectedReturnNULL "g_value_array_insert" result
     result' <- (newBoxed ValueArray) result
     touchManagedPtr _obj
     whenJust value touchManagedPtr
     return result'
 
+data ValueArrayInsertMethodInfo
+instance (signature ~ (Word32 -> Maybe (GValue) -> m ValueArray), MonadIO m) => MethodInfo ValueArrayInsertMethodInfo ValueArray signature where
+    overloadedMethod _ = valueArrayInsert
+
 -- method ValueArray::prepend
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "ValueArray"
 -- throws : False
 -- Skip return : False
@@ -288,9 +315,9 @@
 {-# DEPRECATED valueArrayPrepend ["(Since version 2.32)","Use #GArray and g_array_prepend_val() instead."]#-}
 valueArrayPrepend ::
     (MonadIO m) =>
-    ValueArray ->                           -- _obj
-    Maybe (GValue) ->                       -- value
-    m ValueArray
+    ValueArray                              -- _obj
+    -> Maybe (GValue)                       -- value
+    -> m ValueArray                         -- result
 valueArrayPrepend _obj value = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     maybeValue <- case value of
@@ -305,11 +332,14 @@
     whenJust value touchManagedPtr
     return result'
 
+data ValueArrayPrependMethodInfo
+instance (signature ~ (Maybe (GValue) -> m ValueArray), MonadIO m) => MethodInfo ValueArrayPrependMethodInfo ValueArray signature where
+    overloadedMethod _ = valueArrayPrepend
+
 -- method ValueArray::remove
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "index_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "ValueArray"
 -- throws : False
 -- Skip return : False
@@ -322,22 +352,25 @@
 {-# DEPRECATED valueArrayRemove ["(Since version 2.32)","Use #GArray and g_array_remove_index() instead."]#-}
 valueArrayRemove ::
     (MonadIO m) =>
-    ValueArray ->                           -- _obj
-    Word32 ->                               -- index_
-    m ValueArray
-valueArrayRemove _obj index_ = liftIO $ do
+    ValueArray                              -- _obj
+    -> Word32                               -- index
+    -> m ValueArray                         -- result
+valueArrayRemove _obj index = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    result <- g_value_array_remove _obj' index_
+    result <- g_value_array_remove _obj' index
     checkUnexpectedReturnNULL "g_value_array_remove" result
     result' <- (newBoxed ValueArray) result
     touchManagedPtr _obj
     return result'
 
+data ValueArrayRemoveMethodInfo
+instance (signature ~ (Word32 -> m ValueArray), MonadIO m) => MethodInfo ValueArrayRemoveMethodInfo ValueArray signature where
+    overloadedMethod _ = valueArrayRemove
+
 -- method ValueArray::sort
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compare_func", argType = TInterface "GLib" "CompareDataFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, 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 "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compare_func", argType = TInterface "GLib" "CompareDataFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, 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 "GObject" "ValueArray", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compare_func", argType = TInterface "GLib" "CompareDataFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeCall, argClosure = 2, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GObject" "ValueArray"
 -- throws : False
 -- Skip return : False
@@ -351,18 +384,41 @@
 {-# DEPRECATED valueArraySort ["(Since version 2.32)","Use #GArray and g_array_sort_with_data()."]#-}
 valueArraySort ::
     (MonadIO m) =>
-    ValueArray ->                           -- _obj
-    GLib.CompareDataFunc ->                 -- compare_func
-    m ValueArray
-valueArraySort _obj compare_func = liftIO $ do
+    ValueArray                              -- _obj
+    -> GLib.CompareDataFunc                 -- compareFunc
+    -> m ValueArray                         -- result
+valueArraySort _obj compareFunc = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    compare_func' <- GLib.mkCompareDataFunc (GLib.compareDataFuncWrapper Nothing compare_func)
-    let user_data = nullPtr
-    result <- g_value_array_sort_with_data _obj' compare_func' user_data
+    compareFunc' <- GLib.mkCompareDataFunc (GLib.compareDataFuncWrapper Nothing compareFunc)
+    let userData = nullPtr
+    result <- g_value_array_sort_with_data _obj' compareFunc' userData
     checkUnexpectedReturnNULL "g_value_array_sort_with_data" result
     result' <- (newBoxed ValueArray) result
-    safeFreeFunPtr $ castFunPtrToPtr compare_func'
+    safeFreeFunPtr $ castFunPtrToPtr compareFunc'
     touchManagedPtr _obj
     return result'
+
+data ValueArraySortMethodInfo
+instance (signature ~ (GLib.CompareDataFunc -> m ValueArray), MonadIO m) => MethodInfo ValueArraySortMethodInfo ValueArray signature where
+    overloadedMethod _ = valueArraySort
+
+type family ResolveValueArrayMethod (t :: Symbol) (o :: *) :: * where
+    ResolveValueArrayMethod "append" o = ValueArrayAppendMethodInfo
+    ResolveValueArrayMethod "copy" o = ValueArrayCopyMethodInfo
+    ResolveValueArrayMethod "free" o = ValueArrayFreeMethodInfo
+    ResolveValueArrayMethod "insert" o = ValueArrayInsertMethodInfo
+    ResolveValueArrayMethod "prepend" o = ValueArrayPrependMethodInfo
+    ResolveValueArrayMethod "remove" o = ValueArrayRemoveMethodInfo
+    ResolveValueArrayMethod "sort" o = ValueArraySortMethodInfo
+    ResolveValueArrayMethod "getNth" o = ValueArrayGetNthMethodInfo
+    ResolveValueArrayMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveValueArrayMethod t ValueArray, MethodInfo info ValueArray p) => IsLabelProxy t (ValueArray -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveValueArrayMethod t ValueArray, MethodInfo info ValueArray p) => IsLabel t (ValueArray -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Structs/ValueArray.hs-boot b/GI/GObject/Structs/ValueArray.hs-boot
--- a/GI/GObject/Structs/ValueArray.hs-boot
+++ b/GI/GObject/Structs/ValueArray.hs-boot
@@ -9,3 +9,11 @@
 
 newtype ValueArray = ValueArray (ForeignPtr ValueArray)
 instance BoxedObject ValueArray where
+data ValueArrayAppendMethodInfo
+data ValueArrayCopyMethodInfo
+data ValueArrayFreeMethodInfo
+data ValueArrayGetNthMethodInfo
+data ValueArrayInsertMethodInfo
+data ValueArrayPrependMethodInfo
+data ValueArrayRemoveMethodInfo
+data ValueArraySortMethodInfo
diff --git a/GI/GObject/Structs/WeakRef.hs b/GI/GObject/Structs/WeakRef.hs
--- a/GI/GObject/Structs/WeakRef.hs
+++ b/GI/GObject/Structs/WeakRef.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -49,5 +50,16 @@
 newtype WeakRef = WeakRef (ForeignPtr WeakRef)
 noWeakRef :: Maybe WeakRef
 noWeakRef = Nothing
+
+type family ResolveWeakRefMethod (t :: Symbol) (o :: *) :: * where
+    ResolveWeakRefMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveWeakRefMethod t WeakRef, MethodInfo info WeakRef p) => IsLabelProxy t (WeakRef -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveWeakRefMethod t WeakRef, MethodInfo info WeakRef p) => IsLabel t (WeakRef -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Unions.hs b/GI/GObject/Unions.hs
--- a/GI/GObject/Unions.hs
+++ b/GI/GObject/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/GObject/Unions/TypeCValue.hs b/GI/GObject/Unions/TypeCValue.hs
--- a/GI/GObject/Unions/TypeCValue.hs
+++ b/GI/GObject/Unions/TypeCValue.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
     TypeCValue(..)                          ,
+    newZeroTypeCValue                       ,
     noTypeCValue                            ,
 
 
@@ -49,6 +51,10 @@
 import GI.GObject.Callbacks
 
 newtype TypeCValue = TypeCValue (ForeignPtr TypeCValue)
+-- | Construct a `TypeCValue` struct initialized to zero.
+newZeroTypeCValue :: MonadIO m => m TypeCValue
+newZeroTypeCValue = liftIO $ callocBytes 8 >>= wrapPtr TypeCValue
+
 noTypeCValue :: Maybe TypeCValue
 noTypeCValue = Nothing
 
@@ -77,5 +83,16 @@
 typeCValueReadVPointer s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
     return val
+
+type family ResolveTypeCValueMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTypeCValueMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTypeCValueMethod t TypeCValue, MethodInfo info TypeCValue p) => IsLabelProxy t (TypeCValue -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTypeCValueMethod t TypeCValue, MethodInfo info TypeCValue p) => IsLabel t (TypeCValue -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/GObject/Unions/Value_Data_Union_.hs b/GI/GObject/Unions/Value_Data_Union_.hs
--- a/GI/GObject/Unions/Value_Data_Union_.hs
+++ b/GI/GObject/Unions/Value_Data_Union_.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
     Value_Data_Union_(..)                   ,
+    newZeroValue_Data_Union_                ,
     noValue_Data_Union_                     ,
 
 
@@ -65,6 +67,10 @@
 import GI.GObject.Callbacks
 
 newtype Value_Data_Union_ = Value_Data_Union_ (ForeignPtr Value_Data_Union_)
+-- | Construct a `Value_Data_Union_` struct initialized to zero.
+newZeroValue_Data_Union_ :: MonadIO m => m Value_Data_Union_
+newZeroValue_Data_Union_ = liftIO $ callocBytes 8 >>= wrapPtr Value_Data_Union_
+
 noValue_Data_Union_ :: Maybe Value_Data_Union_
 noValue_Data_Union_ = Nothing
 
@@ -114,5 +120,16 @@
 value_Data_Union_ReadVPointer s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 0) :: IO (Ptr ())
     return val
+
+type family ResolveValue_Data_Union_Method (t :: Symbol) (o :: *) :: * where
+    ResolveValue_Data_Union_Method l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveValue_Data_Union_Method t Value_Data_Union_, MethodInfo info Value_Data_Union_ p) => IsLabelProxy t (Value_Data_Union_ -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveValue_Data_Union_Method t Value_Data_Union_, MethodInfo info Value_Data_Union_ p) => IsLabel t (Value_Data_Union_ -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/gi-gobject.cabal b/gi-gobject.cabal
--- a/gi-gobject.cabal
+++ b/gi-gobject.cabal
@@ -1,6 +1,6 @@
 -- Autogenerated, do not edit.
 name:               gi-gobject
-version:            0.2.46.12
+version:            0.2.46.13
 synopsis:           GObject bindings
 description:        Bindings for GObject, 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.GObject.Types
                         GI.GObject
@@ -59,8 +59,8 @@
                         GI.GObject.Unions.Value_Data_Union_
     pkgconfig-depends:  gobject-2.0 >= 2.46
     build-depends: base >= 4.7 && <5,
-        haskell-gi-base >= 0.12 && < 1,
-        gi-glib >= 0.2.46.12 && < 0.2.47,
+        haskell-gi-base >= 0.13 && < 1,
+        gi-glib >= 0.2.46.13 && < 0.2.47,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
