diff --git a/GI/Gdk.hs b/GI/Gdk.hs
--- a/GI/Gdk.hs
+++ b/GI/Gdk.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.Gdk.Unions                    ,
 
 
+
+    module Data.GI.Base                     ,
+
+
     ) where
 
 import GI.Gdk.Callbacks
@@ -37,4 +42,5 @@
 import GI.Gdk.Types
 import GI.Gdk.Callbacks
 
+import Data.GI.Base
 
diff --git a/GI/Gdk/Callbacks.hs b/GI/Gdk/Callbacks.hs
--- a/GI/Gdk/Callbacks.hs
+++ b/GI/Gdk/Callbacks.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
diff --git a/GI/Gdk/Constants.hs b/GI/Gdk/Constants.hs
--- a/GI/Gdk/Constants.hs
+++ b/GI/Gdk/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/Gdk/Enums.hs b/GI/Gdk/Enums.hs
--- a/GI/Gdk/Enums.hs
+++ b/GI/Gdk/Enums.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
diff --git a/GI/Gdk/Flags.hs b/GI/Gdk/Flags.hs
--- a/GI/Gdk/Flags.hs
+++ b/GI/Gdk/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/Gdk/Functions.hs b/GI/Gdk/Functions.hs
--- a/GI/Gdk/Functions.hs
+++ b/GI/Gdk/Functions.hs
@@ -1,3318 +1,2993 @@
 
-{- |
-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.Gdk.Functions
-    ( 
-
- -- * Methods
--- ** addOptionEntriesLibgtkOnly
-    addOptionEntriesLibgtkOnly              ,
-
-
--- ** atomIntern
-    atomIntern                              ,
-
-
--- ** atomInternStaticString
-    atomInternStaticString                  ,
-
-
--- ** beep
-    beep                                    ,
-
-
--- ** cairoCreate
-    cairoCreate                             ,
-
-
--- ** cairoDrawFromGl
-    cairoDrawFromGl                         ,
-
-
--- ** cairoGetClipRectangle
-    cairoGetClipRectangle                   ,
-
-
--- ** cairoRectangle
-    cairoRectangle                          ,
-
-
--- ** cairoRegion
-    cairoRegion                             ,
-
-
--- ** cairoRegionCreateFromSurface
-    cairoRegionCreateFromSurface            ,
-
-
--- ** cairoSetSourceColor
-    cairoSetSourceColor                     ,
-
-
--- ** cairoSetSourcePixbuf
-    cairoSetSourcePixbuf                    ,
-
-
--- ** cairoSetSourceRgba
-    cairoSetSourceRgba                      ,
-
-
--- ** cairoSetSourceWindow
-    cairoSetSourceWindow                    ,
-
-
--- ** cairoSurfaceCreateFromPixbuf
-    cairoSurfaceCreateFromPixbuf            ,
-
-
--- ** colorParse
-    colorParse                              ,
-
-
--- ** disableMultidevice
-    disableMultidevice                      ,
-
-
--- ** dragAbort
-    dragAbort                               ,
-
-
--- ** dragBegin
-    dragBegin                               ,
-
-
--- ** dragBeginForDevice
-    dragBeginForDevice                      ,
-
-
--- ** dragDrop
-    dragDrop                                ,
-
-
--- ** dragDropSucceeded
-    dragDropSucceeded                       ,
-
-
--- ** dragFindWindowForScreen
-    dragFindWindowForScreen                 ,
-
-
--- ** dragGetSelection
-    dragGetSelection                        ,
-
-
--- ** dragMotion
-    dragMotion                              ,
-
-
--- ** dragStatus
-    dragStatus                              ,
-
-
--- ** dropFinish
-    dropFinish                              ,
-
-
--- ** dropReply
-    dropReply                               ,
-
-
--- ** errorTrapPop
-    errorTrapPop                            ,
-
-
--- ** errorTrapPopIgnored
-    errorTrapPopIgnored                     ,
-
-
--- ** errorTrapPush
-    errorTrapPush                           ,
-
-
--- ** eventGet
-    eventGet                                ,
-
-
--- ** eventHandlerSet
-    eventHandlerSet                         ,
-
-
--- ** eventPeek
-    eventPeek                               ,
-
-
--- ** eventRequestMotions
-    eventRequestMotions                     ,
-
-
--- ** eventsGetAngle
-    eventsGetAngle                          ,
-
-
--- ** eventsGetCenter
-    eventsGetCenter                         ,
-
-
--- ** eventsGetDistance
-    eventsGetDistance                       ,
-
-
--- ** eventsPending
-    eventsPending                           ,
-
-
--- ** flush
-    flush                                   ,
-
-
--- ** getDefaultRootWindow
-    getDefaultRootWindow                    ,
-
-
--- ** getDisplay
-    getDisplay                              ,
-
-
--- ** getDisplayArgName
-    getDisplayArgName                       ,
-
-
--- ** getProgramClass
-    getProgramClass                         ,
-
-
--- ** getShowEvents
-    getShowEvents                           ,
-
-
--- ** glErrorQuark
-    glErrorQuark                            ,
-
-
--- ** init
-    init                                    ,
-
-
--- ** initCheck
-    initCheck                               ,
-
-
--- ** keyboardGrab
-    keyboardGrab                            ,
-
-
--- ** keyboardUngrab
-    keyboardUngrab                          ,
-
-
--- ** keyvalConvertCase
-    keyvalConvertCase                       ,
-
-
--- ** keyvalFromName
-    keyvalFromName                          ,
-
-
--- ** keyvalIsLower
-    keyvalIsLower                           ,
-
-
--- ** keyvalIsUpper
-    keyvalIsUpper                           ,
-
-
--- ** keyvalName
-    keyvalName                              ,
-
-
--- ** keyvalToLower
-    keyvalToLower                           ,
-
-
--- ** keyvalToUnicode
-    keyvalToUnicode                         ,
-
-
--- ** keyvalToUpper
-    keyvalToUpper                           ,
-
-
--- ** listVisuals
-    listVisuals                             ,
-
-
--- ** notifyStartupComplete
-    notifyStartupComplete                   ,
-
-
--- ** notifyStartupCompleteWithId
-    notifyStartupCompleteWithId             ,
-
-
--- ** offscreenWindowGetEmbedder
-    offscreenWindowGetEmbedder              ,
-
-
--- ** offscreenWindowGetSurface
-    offscreenWindowGetSurface               ,
-
-
--- ** offscreenWindowSetEmbedder
-    offscreenWindowSetEmbedder              ,
-
-
--- ** pangoContextGet
-    pangoContextGet                         ,
-
-
--- ** pangoContextGetForScreen
-    pangoContextGetForScreen                ,
-
-
--- ** parseArgs
-    parseArgs                               ,
-
-
--- ** pixbufGetFromSurface
-    pixbufGetFromSurface                    ,
-
-
--- ** pixbufGetFromWindow
-    pixbufGetFromWindow                     ,
-
-
--- ** pointerGrab
-    pointerGrab                             ,
-
-
--- ** pointerIsGrabbed
-    pointerIsGrabbed                        ,
-
-
--- ** pointerUngrab
-    pointerUngrab                           ,
-
-
--- ** preParseLibgtkOnly
-    preParseLibgtkOnly                      ,
-
-
--- ** propertyDelete
-    propertyDelete                          ,
-
-
--- ** propertyGet
-    propertyGet                             ,
-
-
--- ** queryDepths
-    queryDepths                             ,
-
-
--- ** queryVisualTypes
-    queryVisualTypes                        ,
-
-
--- ** selectionConvert
-    selectionConvert                        ,
-
-
--- ** selectionOwnerGet
-    selectionOwnerGet                       ,
-
-
--- ** selectionOwnerGetForDisplay
-    selectionOwnerGetForDisplay             ,
-
-
--- ** selectionOwnerSet
-    selectionOwnerSet                       ,
-
-
--- ** selectionOwnerSetForDisplay
-    selectionOwnerSetForDisplay             ,
-
-
--- ** selectionSendNotify
-    selectionSendNotify                     ,
-
-
--- ** selectionSendNotifyForDisplay
-    selectionSendNotifyForDisplay           ,
-
-
--- ** setAllowedBackends
-    setAllowedBackends                      ,
-
-
--- ** setDoubleClickTime
-    setDoubleClickTime                      ,
-
-
--- ** setProgramClass
-    setProgramClass                         ,
-
-
--- ** setShowEvents
-    setShowEvents                           ,
-
-
--- ** settingGet
-    settingGet                              ,
-
-
--- ** synthesizeWindowState
-    synthesizeWindowState                   ,
-
-
--- ** testRenderSync
-    testRenderSync                          ,
-
-
--- ** testSimulateButton
-    testSimulateButton                      ,
-
-
--- ** testSimulateKey
-    testSimulateKey                         ,
-
-
--- ** textPropertyToUtf8ListForDisplay
-    textPropertyToUtf8ListForDisplay        ,
-
-
--- ** threadsAddIdle
-    threadsAddIdle                          ,
-
-
--- ** threadsAddTimeout
-    threadsAddTimeout                       ,
-
-
--- ** threadsAddTimeoutSeconds
-    threadsAddTimeoutSeconds                ,
-
-
--- ** threadsEnter
-    threadsEnter                            ,
-
-
--- ** threadsInit
-    threadsInit                             ,
-
-
--- ** threadsLeave
-    threadsLeave                            ,
-
-
--- ** unicodeToKeyval
-    unicodeToKeyval                         ,
-
-
--- ** utf8ToStringTarget
-    utf8ToStringTarget                      ,
-
-
-
-
-    ) 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.Gdk.Types
-import GI.Gdk.Callbacks
-import qualified GI.GLib as GLib
-import qualified GI.GdkPixbuf as GdkPixbuf
-import qualified GI.Pango as Pango
-import qualified GI.Cairo as Cairo
-
--- function gdk_utf8_to_string_target
--- Args : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_utf8_to_string_target" gdk_utf8_to_string_target :: 
-    CString ->                              -- str : TBasicType TUTF8
-    IO CString
-
-
-utf8ToStringTarget ::
-    (MonadIO m) =>
-    T.Text ->                               -- str
-    m T.Text
-utf8ToStringTarget str = liftIO $ do
-    str' <- textToCString str
-    result <- gdk_utf8_to_string_target str'
-    checkUnexpectedReturnNULL "gdk_utf8_to_string_target" result
-    result' <- cstringToText result
-    freeMem result
-    freeMem str'
-    return result'
-
-
--- function gdk_unicode_to_keyval
--- Args : [Arg {argName = "wc", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "wc", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_unicode_to_keyval" gdk_unicode_to_keyval :: 
-    Word32 ->                               -- wc : TBasicType TUInt32
-    IO Word32
-
-
-unicodeToKeyval ::
-    (MonadIO m) =>
-    Word32 ->                               -- wc
-    m Word32
-unicodeToKeyval wc = liftIO $ do
-    result <- gdk_unicode_to_keyval wc
-    return result
-
-
--- function gdk_threads_leave
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_leave" gdk_threads_leave :: 
-    IO ()
-
-{-# DEPRECATED threadsLeave ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
-threadsLeave ::
-    (MonadIO m) =>
-    m ()
-threadsLeave  = liftIO $ do
-    gdk_threads_leave
-    return ()
-
-
--- function gdk_threads_init
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_init" gdk_threads_init :: 
-    IO ()
-
-{-# DEPRECATED threadsInit ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
-threadsInit ::
-    (MonadIO m) =>
-    m ()
-threadsInit  = liftIO $ do
-    gdk_threads_init
-    return ()
-
-
--- function gdk_threads_enter
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_enter" gdk_threads_enter :: 
-    IO ()
-
-{-# DEPRECATED threadsEnter ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
-threadsEnter ::
-    (MonadIO m) =>
-    m ()
-threadsEnter  = liftIO $ do
-    gdk_threads_enter
-    return ()
-
-
--- function gdk_threads_add_timeout_seconds_full
--- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_add_timeout_seconds_full" gdk_threads_add_timeout_seconds_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    Word32 ->                               -- interval : TBasicType TUInt32
-    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-threadsAddTimeoutSeconds ::
-    (MonadIO m) =>
-    Int32 ->                                -- priority
-    Word32 ->                               -- interval
-    GLib.SourceFunc ->                      -- function
-    m Word32
-threadsAddTimeoutSeconds priority interval function = liftIO $ do
-    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
-    let data_ = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- gdk_threads_add_timeout_seconds_full priority interval function' data_ notify
-    return result
-
-
--- function gdk_threads_add_timeout_full
--- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_add_timeout_full" gdk_threads_add_timeout_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    Word32 ->                               -- interval : TBasicType TUInt32
-    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-threadsAddTimeout ::
-    (MonadIO m) =>
-    Int32 ->                                -- priority
-    Word32 ->                               -- interval
-    GLib.SourceFunc ->                      -- function
-    m Word32
-threadsAddTimeout priority interval function = liftIO $ do
-    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
-    let data_ = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- gdk_threads_add_timeout_full priority interval function' data_ notify
-    return result
-
-
--- function gdk_threads_add_idle_full
--- Args : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_threads_add_idle_full" gdk_threads_add_idle_full :: 
-    Int32 ->                                -- priority : TBasicType TInt32
-    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
-    IO Word32
-
-
-threadsAddIdle ::
-    (MonadIO m) =>
-    Int32 ->                                -- priority
-    GLib.SourceFunc ->                      -- function
-    m Word32
-threadsAddIdle priority function = liftIO $ do
-    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
-    let data_ = castFunPtrToPtr function'
-    let notify = safeFreeFunPtrPtr
-    result <- gdk_threads_add_idle_full priority function' data_ notify
-    return result
-
-
--- function gdk_text_property_to_utf8_list_for_display
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "encoding", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TCArray False (-1) 4 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "list", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "encoding", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "text", argType = TCArray False (-1) 4 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_text_property_to_utf8_list_for_display" gdk_text_property_to_utf8_list_for_display :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr Atom ->                             -- encoding : TInterface "Gdk" "Atom"
-    Int32 ->                                -- format : TBasicType TInt32
-    Ptr Word8 ->                            -- text : TCArray False (-1) 4 (TBasicType TUInt8)
-    Int32 ->                                -- length : TBasicType TInt32
-    Ptr (Ptr CString) ->                    -- list : TCArray True (-1) (-1) (TBasicType TUTF8)
-    IO Int32
-
-
-textPropertyToUtf8ListForDisplay ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    Atom ->                                 -- encoding
-    Int32 ->                                -- format
-    ByteString ->                           -- text
-    m (Int32,[T.Text])
-textPropertyToUtf8ListForDisplay display encoding format text = liftIO $ do
-    let length_ = fromIntegral $ B.length text
-    let display' = unsafeManagedPtrCastPtr display
-    let encoding' = unsafeManagedPtrGetPtr encoding
-    text' <- packByteString text
-    list <- allocMem :: IO (Ptr (Ptr CString))
-    result <- gdk_text_property_to_utf8_list_for_display display' encoding' format text' length_ list
-    list' <- peek list
-    list'' <- unpackZeroTerminatedUTF8CArray list'
-    mapZeroTerminatedCArray freeMem list'
-    freeMem list'
-    touchManagedPtr display
-    touchManagedPtr encoding
-    freeMem text'
-    freeMem list
-    return (result, list'')
-
-
--- function gdk_test_simulate_key
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_test_simulate_key" gdk_test_simulate_key :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    CUInt ->                                -- modifiers : TInterface "Gdk" "ModifierType"
-    CUInt ->                                -- key_pressrelease : TInterface "Gdk" "EventType"
-    IO CInt
-
-
-testSimulateKey ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    Word32 ->                               -- keyval
-    [ModifierType] ->                       -- modifiers
-    EventType ->                            -- key_pressrelease
-    m Bool
-testSimulateKey window x y keyval modifiers key_pressrelease = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let modifiers' = gflagsToWord modifiers
-    let key_pressrelease' = (fromIntegral . fromEnum) key_pressrelease
-    result <- gdk_test_simulate_key window' x y keyval modifiers' key_pressrelease'
-    let result' = (/= 0) result
-    touchManagedPtr window
-    return result'
-
-
--- function gdk_test_simulate_button
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button_pressrelease", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_test_simulate_button" gdk_test_simulate_button :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Word32 ->                               -- button : TBasicType TUInt32
-    CUInt ->                                -- modifiers : TInterface "Gdk" "ModifierType"
-    CUInt ->                                -- button_pressrelease : TInterface "Gdk" "EventType"
-    IO CInt
-
-
-testSimulateButton ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    Word32 ->                               -- button
-    [ModifierType] ->                       -- modifiers
-    EventType ->                            -- button_pressrelease
-    m Bool
-testSimulateButton window x y button modifiers button_pressrelease = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let modifiers' = gflagsToWord modifiers
-    let button_pressrelease' = (fromIntegral . fromEnum) button_pressrelease
-    result <- gdk_test_simulate_button window' x y button modifiers' button_pressrelease'
-    let result' = (/= 0) result
-    touchManagedPtr window
-    return result'
-
-
--- function gdk_test_render_sync
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_test_render_sync" gdk_test_render_sync :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    IO ()
-
-
-testRenderSync ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    m ()
-testRenderSync window = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    gdk_test_render_sync window'
-    touchManagedPtr window
-    return ()
-
-
--- function gdk_synthesize_window_state
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "unset_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "set_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "unset_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "set_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_synthesize_window_state" gdk_synthesize_window_state :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    CUInt ->                                -- unset_flags : TInterface "Gdk" "WindowState"
-    CUInt ->                                -- set_flags : TInterface "Gdk" "WindowState"
-    IO ()
-
-
-synthesizeWindowState ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    [WindowState] ->                        -- unset_flags
-    [WindowState] ->                        -- set_flags
-    m ()
-synthesizeWindowState window unset_flags set_flags_ = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let unset_flags' = gflagsToWord unset_flags
-    let set_flags_' = gflagsToWord set_flags_
-    gdk_synthesize_window_state window' unset_flags' set_flags_'
-    touchManagedPtr window
-    return ()
-
-
--- function gdk_setting_get
--- Args : [Arg {argName = "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}]
--- Lengths : []
--- hInArgs : [Arg {argName = "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 TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_setting_get" gdk_setting_get :: 
-    CString ->                              -- name : TBasicType TUTF8
-    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
-    IO CInt
-
-
-settingGet ::
-    (MonadIO m) =>
-    T.Text ->                               -- name
-    GValue ->                               -- value
-    m Bool
-settingGet name value = liftIO $ do
-    name' <- textToCString name
-    let value' = unsafeManagedPtrGetPtr value
-    result <- gdk_setting_get name' value'
-    let result' = (/= 0) result
-    touchManagedPtr value
-    freeMem name'
-    return result'
-
-
--- function gdk_set_show_events
--- Args : [Arg {argName = "show_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "show_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_set_show_events" gdk_set_show_events :: 
-    CInt ->                                 -- show_events : TBasicType TBoolean
-    IO ()
-
-
-setShowEvents ::
-    (MonadIO m) =>
-    Bool ->                                 -- show_events
-    m ()
-setShowEvents show_events = liftIO $ do
-    let show_events' = (fromIntegral . fromEnum) show_events
-    gdk_set_show_events show_events'
-    return ()
-
-
--- function gdk_set_program_class
--- Args : [Arg {argName = "program_class", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "program_class", 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 "gdk_set_program_class" gdk_set_program_class :: 
-    CString ->                              -- program_class : TBasicType TUTF8
-    IO ()
-
-
-setProgramClass ::
-    (MonadIO m) =>
-    T.Text ->                               -- program_class
-    m ()
-setProgramClass program_class = liftIO $ do
-    program_class' <- textToCString program_class
-    gdk_set_program_class program_class'
-    freeMem program_class'
-    return ()
-
-
--- function gdk_set_double_click_time
--- Args : [Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "msec", 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 "gdk_set_double_click_time" gdk_set_double_click_time :: 
-    Word32 ->                               -- msec : TBasicType TUInt32
-    IO ()
-
-
-setDoubleClickTime ::
-    (MonadIO m) =>
-    Word32 ->                               -- msec
-    m ()
-setDoubleClickTime msec = liftIO $ do
-    gdk_set_double_click_time msec
-    return ()
-
-
--- function gdk_set_allowed_backends
--- Args : [Arg {argName = "backends", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "backends", 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 "gdk_set_allowed_backends" gdk_set_allowed_backends :: 
-    CString ->                              -- backends : TBasicType TUTF8
-    IO ()
-
-
-setAllowedBackends ::
-    (MonadIO m) =>
-    T.Text ->                               -- backends
-    m ()
-setAllowedBackends backends = liftIO $ do
-    backends' <- textToCString backends
-    gdk_set_allowed_backends backends'
-    freeMem backends'
-    return ()
-
-
--- function gdk_selection_send_notify_for_display
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", 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 "gdk_selection_send_notify_for_display" gdk_selection_send_notify_for_display :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-selectionSendNotifyForDisplay ::
-    (MonadIO m, DisplayK a, WindowK b) =>
-    a ->                                    -- display
-    b ->                                    -- requestor
-    Atom ->                                 -- selection
-    Atom ->                                 -- target
-    Atom ->                                 -- property
-    Word32 ->                               -- time_
-    m ()
-selectionSendNotifyForDisplay display requestor selection target property time_ = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    let requestor' = unsafeManagedPtrCastPtr requestor
-    let selection' = unsafeManagedPtrGetPtr selection
-    let target' = unsafeManagedPtrGetPtr target
-    let property' = unsafeManagedPtrGetPtr property
-    gdk_selection_send_notify_for_display display' requestor' selection' target' property' time_
-    touchManagedPtr display
-    touchManagedPtr requestor
-    touchManagedPtr selection
-    touchManagedPtr target
-    touchManagedPtr property
-    return ()
-
-
--- function gdk_selection_send_notify
--- Args : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", 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 "gdk_selection_send_notify" gdk_selection_send_notify :: 
-    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-selectionSendNotify ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- requestor
-    Atom ->                                 -- selection
-    Atom ->                                 -- target
-    Atom ->                                 -- property
-    Word32 ->                               -- time_
-    m ()
-selectionSendNotify requestor selection target property time_ = liftIO $ do
-    let requestor' = unsafeManagedPtrCastPtr requestor
-    let selection' = unsafeManagedPtrGetPtr selection
-    let target' = unsafeManagedPtrGetPtr target
-    let property' = unsafeManagedPtrGetPtr property
-    gdk_selection_send_notify requestor' selection' target' property' time_
-    touchManagedPtr requestor
-    touchManagedPtr selection
-    touchManagedPtr target
-    touchManagedPtr property
-    return ()
-
-
--- function gdk_selection_owner_set_for_display
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", 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 "gdk_selection_owner_set_for_display" gdk_selection_owner_set_for_display :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr Window ->                           -- owner : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    CInt ->                                 -- send_event : TBasicType TBoolean
-    IO CInt
-
-
-selectionOwnerSetForDisplay ::
-    (MonadIO m, DisplayK a, WindowK b) =>
-    a ->                                    -- display
-    Maybe (b) ->                            -- owner
-    Atom ->                                 -- selection
-    Word32 ->                               -- time_
-    Bool ->                                 -- send_event
-    m Bool
-selectionOwnerSetForDisplay display owner selection time_ send_event = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    maybeOwner <- case owner of
-        Nothing -> return nullPtr
-        Just jOwner -> do
-            let jOwner' = unsafeManagedPtrCastPtr jOwner
-            return jOwner'
-    let selection' = unsafeManagedPtrGetPtr selection
-    let send_event' = (fromIntegral . fromEnum) send_event
-    result <- gdk_selection_owner_set_for_display display' maybeOwner selection' time_ send_event'
-    let result' = (/= 0) result
-    touchManagedPtr display
-    whenJust owner touchManagedPtr
-    touchManagedPtr selection
-    return result'
-
-
--- function gdk_selection_owner_set
--- Args : [Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "send_event", 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 "gdk_selection_owner_set" gdk_selection_owner_set :: 
-    Ptr Window ->                           -- owner : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    CInt ->                                 -- send_event : TBasicType TBoolean
-    IO CInt
-
-
-selectionOwnerSet ::
-    (MonadIO m, WindowK a) =>
-    Maybe (a) ->                            -- owner
-    Atom ->                                 -- selection
-    Word32 ->                               -- time_
-    Bool ->                                 -- send_event
-    m Bool
-selectionOwnerSet owner selection time_ send_event = liftIO $ do
-    maybeOwner <- case owner of
-        Nothing -> return nullPtr
-        Just jOwner -> do
-            let jOwner' = unsafeManagedPtrCastPtr jOwner
-            return jOwner'
-    let selection' = unsafeManagedPtrGetPtr selection
-    let send_event' = (fromIntegral . fromEnum) send_event
-    result <- gdk_selection_owner_set maybeOwner selection' time_ send_event'
-    let result' = (/= 0) result
-    whenJust owner touchManagedPtr
-    touchManagedPtr selection
-    return result'
-
-
--- function gdk_selection_owner_get_for_display
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_selection_owner_get_for_display" gdk_selection_owner_get_for_display :: 
-    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    IO (Ptr Window)
-
-
-selectionOwnerGetForDisplay ::
-    (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    Atom ->                                 -- selection
-    m Window
-selectionOwnerGetForDisplay display selection = liftIO $ do
-    let display' = unsafeManagedPtrCastPtr display
-    let selection' = unsafeManagedPtrGetPtr selection
-    result <- gdk_selection_owner_get_for_display display' selection'
-    checkUnexpectedReturnNULL "gdk_selection_owner_get_for_display" result
-    result' <- (newObject Window) result
-    touchManagedPtr display
-    touchManagedPtr selection
-    return result'
-
-
--- function gdk_selection_owner_get
--- Args : [Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_selection_owner_get" gdk_selection_owner_get :: 
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    IO (Ptr Window)
-
-
-selectionOwnerGet ::
-    (MonadIO m) =>
-    Atom ->                                 -- selection
-    m Window
-selectionOwnerGet selection = liftIO $ do
-    let selection' = unsafeManagedPtrGetPtr selection
-    result <- gdk_selection_owner_get selection'
-    checkUnexpectedReturnNULL "gdk_selection_owner_get" result
-    result' <- (newObject Window) result
-    touchManagedPtr selection
-    return result'
-
-
--- function gdk_selection_convert
--- Args : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", 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 "gdk_selection_convert" gdk_selection_convert :: 
-    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-selectionConvert ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- requestor
-    Atom ->                                 -- selection
-    Atom ->                                 -- target
-    Word32 ->                               -- time_
-    m ()
-selectionConvert requestor selection target time_ = liftIO $ do
-    let requestor' = unsafeManagedPtrCastPtr requestor
-    let selection' = unsafeManagedPtrGetPtr selection
-    let target' = unsafeManagedPtrGetPtr target
-    gdk_selection_convert requestor' selection' target' time_
-    touchManagedPtr requestor
-    touchManagedPtr selection
-    touchManagedPtr target
-    return ()
-
-
--- function gdk_query_visual_types
--- Args : [Arg {argName = "visual_types", argType = TCArray False (-1) 1 (TInterface "Gdk" "VisualType"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_query_visual_types" gdk_query_visual_types :: 
-    Ptr (Ptr CUInt) ->                      -- visual_types : TCArray False (-1) 1 (TInterface "Gdk" "VisualType")
-    Ptr Int32 ->                            -- count : TBasicType TInt32
-    IO ()
-
-
-queryVisualTypes ::
-    (MonadIO m) =>
-    m ([VisualType])
-queryVisualTypes  = liftIO $ do
-    visual_types <- allocMem :: IO (Ptr (Ptr CUInt))
-    count <- allocMem :: IO (Ptr Int32)
-    gdk_query_visual_types visual_types count
-    count' <- peek count
-    visual_types' <- peek visual_types
-    visual_types'' <- (unpackStorableArrayWithLength count') visual_types'
-    let visual_types''' = map (toEnum . fromIntegral) visual_types''
-    freeMem visual_types
-    freeMem count
-    return visual_types'''
-
-
--- function gdk_query_depths
--- Args : [Arg {argName = "depths", argType = TCArray False (-1) 1 (TBasicType TInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_query_depths" gdk_query_depths :: 
-    Ptr (Ptr Int32) ->                      -- depths : TCArray False (-1) 1 (TBasicType TInt32)
-    Ptr Int32 ->                            -- count : TBasicType TInt32
-    IO ()
-
-
-queryDepths ::
-    (MonadIO m) =>
-    m ([Int32])
-queryDepths  = liftIO $ do
-    depths <- allocMem :: IO (Ptr (Ptr Int32))
-    count <- allocMem :: IO (Ptr Int32)
-    gdk_query_depths depths count
-    count' <- peek count
-    depths' <- peek depths
-    depths'' <- (unpackStorableArrayWithLength count') depths'
-    freeMem depths
-    freeMem count
-    return depths''
-
-
--- function gdk_property_get
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pdelete", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "actual_property_type", argType = TInterface "Gdk" "Atom", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "actual_format", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "actual_length", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "data", argType = TCArray False (-1) 8 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "actual_length", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pdelete", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_property_get" gdk_property_get :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
-    Ptr Atom ->                             -- type : TInterface "Gdk" "Atom"
-    Word64 ->                               -- offset : TBasicType TUInt64
-    Word64 ->                               -- length : TBasicType TUInt64
-    Int32 ->                                -- pdelete : TBasicType TInt32
-    Ptr (Ptr Atom) ->                       -- actual_property_type : TInterface "Gdk" "Atom"
-    Ptr Int32 ->                            -- actual_format : TBasicType TInt32
-    Ptr Int32 ->                            -- actual_length : TBasicType TInt32
-    Ptr (Ptr Word8) ->                      -- data : TCArray False (-1) 8 (TBasicType TUInt8)
-    IO CInt
-
-
-propertyGet ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Atom ->                                 -- property
-    Atom ->                                 -- type
-    Word64 ->                               -- offset
-    Word64 ->                               -- length
-    Int32 ->                                -- pdelete
-    m (Bool,Atom,Int32,ByteString)
-propertyGet window property type_ offset length_ pdelete = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let property' = unsafeManagedPtrGetPtr property
-    let type_' = unsafeManagedPtrGetPtr type_
-    actual_property_type <- allocMem :: IO (Ptr (Ptr Atom))
-    actual_format <- allocMem :: IO (Ptr Int32)
-    actual_length <- allocMem :: IO (Ptr Int32)
-    data_ <- allocMem :: IO (Ptr (Ptr Word8))
-    result <- gdk_property_get window' property' type_' offset length_ pdelete actual_property_type actual_format actual_length data_
-    actual_length' <- peek actual_length
-    let result' = (/= 0) result
-    actual_property_type' <- peek actual_property_type
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    actual_property_type'' <- (\x -> Atom <$> newForeignPtr_ x) actual_property_type'
-    actual_format' <- peek actual_format
-    data_' <- peek data_
-    data_'' <- (unpackByteStringWithLength actual_length') data_'
-    freeMem data_'
-    touchManagedPtr window
-    touchManagedPtr property
-    touchManagedPtr type_
-    freeMem actual_property_type
-    freeMem actual_format
-    freeMem actual_length
-    freeMem data_
-    return (result', actual_property_type'', actual_format', data_'')
-
-
--- function gdk_property_delete
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_property_delete" gdk_property_delete :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
-    IO ()
-
-
-propertyDelete ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Atom ->                                 -- property
-    m ()
-propertyDelete window property = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let property' = unsafeManagedPtrGetPtr property
-    gdk_property_delete window' property'
-    touchManagedPtr window
-    touchManagedPtr property
-    return ()
-
-
--- function gdk_pre_parse_libgtk_only
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pre_parse_libgtk_only" gdk_pre_parse_libgtk_only :: 
-    IO ()
-
-{-# DEPRECATED preParseLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
-preParseLibgtkOnly ::
-    (MonadIO m) =>
-    m ()
-preParseLibgtkOnly  = liftIO $ do
-    gdk_pre_parse_libgtk_only
-    return ()
-
-
--- function gdk_pointer_ungrab
--- Args : [Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "time_", 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 "gdk_pointer_ungrab" gdk_pointer_ungrab :: 
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-{-# DEPRECATED pointerUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
-pointerUngrab ::
-    (MonadIO m) =>
-    Word32 ->                               -- time_
-    m ()
-pointerUngrab time_ = liftIO $ do
-    gdk_pointer_ungrab time_
-    return ()
-
-
--- function gdk_pointer_is_grabbed
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pointer_is_grabbed" gdk_pointer_is_grabbed :: 
-    IO CInt
-
-{-# DEPRECATED pointerIsGrabbed ["(Since version 3.0)","Use gdk_display_device_is_grabbed() instead."]#-}
-pointerIsGrabbed ::
-    (MonadIO m) =>
-    m Bool
-pointerIsGrabbed  = liftIO $ do
-    result <- gdk_pointer_is_grabbed
-    let result' = (/= 0) result
-    return result'
-
-
--- function gdk_pointer_grab
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "confine_to", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "confine_to", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "GrabStatus"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pointer_grab" gdk_pointer_grab :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    CInt ->                                 -- owner_events : TBasicType TBoolean
-    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
-    Ptr Window ->                           -- confine_to : TInterface "Gdk" "Window"
-    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO CUInt
-
-{-# DEPRECATED pointerGrab ["(Since version 3.0)","Use gdk_device_grab() instead."]#-}
-pointerGrab ::
-    (MonadIO m, WindowK a, WindowK b, CursorK c) =>
-    a ->                                    -- window
-    Bool ->                                 -- owner_events
-    [EventMask] ->                          -- event_mask
-    Maybe (b) ->                            -- confine_to
-    Maybe (c) ->                            -- cursor
-    Word32 ->                               -- time_
-    m GrabStatus
-pointerGrab window owner_events event_mask confine_to cursor time_ = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let owner_events' = (fromIntegral . fromEnum) owner_events
-    let event_mask' = gflagsToWord event_mask
-    maybeConfine_to <- case confine_to of
-        Nothing -> return nullPtr
-        Just jConfine_to -> do
-            let jConfine_to' = unsafeManagedPtrCastPtr jConfine_to
-            return jConfine_to'
-    maybeCursor <- case cursor of
-        Nothing -> return nullPtr
-        Just jCursor -> do
-            let jCursor' = unsafeManagedPtrCastPtr jCursor
-            return jCursor'
-    result <- gdk_pointer_grab window' owner_events' event_mask' maybeConfine_to maybeCursor time_
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr window
-    whenJust confine_to touchManagedPtr
-    whenJust cursor touchManagedPtr
-    return result'
-
-
--- function gdk_pixbuf_get_from_window
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GdkPixbuf" "Pixbuf"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pixbuf_get_from_window" gdk_pixbuf_get_from_window :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Int32 ->                                -- src_x : TBasicType TInt32
-    Int32 ->                                -- src_y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO (Ptr GdkPixbuf.Pixbuf)
-
-
-pixbufGetFromWindow ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Int32 ->                                -- src_x
-    Int32 ->                                -- src_y
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m GdkPixbuf.Pixbuf
-pixbufGetFromWindow window src_x src_y width height = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    result <- gdk_pixbuf_get_from_window window' src_x src_y width height
-    checkUnexpectedReturnNULL "gdk_pixbuf_get_from_window" result
-    result' <- (wrapObject GdkPixbuf.Pixbuf) result
-    touchManagedPtr window
-    return result'
-
-
--- function gdk_pixbuf_get_from_surface
--- Args : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "GdkPixbuf" "Pixbuf"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pixbuf_get_from_surface" gdk_pixbuf_get_from_surface :: 
-    Ptr Cairo.Surface ->                    -- surface : TInterface "cairo" "Surface"
-    Int32 ->                                -- src_x : TBasicType TInt32
-    Int32 ->                                -- src_y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO (Ptr GdkPixbuf.Pixbuf)
-
-
-pixbufGetFromSurface ::
-    (MonadIO m) =>
-    Cairo.Surface ->                        -- surface
-    Int32 ->                                -- src_x
-    Int32 ->                                -- src_y
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m GdkPixbuf.Pixbuf
-pixbufGetFromSurface surface src_x src_y width height = liftIO $ do
-    let surface' = unsafeManagedPtrGetPtr surface
-    result <- gdk_pixbuf_get_from_surface surface' src_x src_y width height
-    checkUnexpectedReturnNULL "gdk_pixbuf_get_from_surface" result
-    result' <- (wrapObject GdkPixbuf.Pixbuf) result
-    touchManagedPtr surface
-    return result'
-
-
--- function gdk_parse_args
--- Args : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- hInArgs : [Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_parse_args" gdk_parse_args :: 
-    Ptr Int32 ->                            -- argc : TBasicType TInt32
-    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
-    IO ()
-
-
-parseArgs ::
-    (MonadIO m) =>
-    [T.Text] ->                             -- argv
-    m ([T.Text])
-parseArgs argv = liftIO $ do
-    let argc = fromIntegral $ length argv
-    argc' <- allocMem :: IO (Ptr Int32)
-    poke argc' argc
-    argv' <- packUTF8CArray argv
-    argv'' <- allocMem :: IO (Ptr (Ptr CString))
-    poke argv'' argv'
-    gdk_parse_args argc' argv''
-    argc'' <- peek argc'
-    argv''' <- peek argv''
-    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
-    (mapCArrayWithLength argc'') freeMem argv'''
-    freeMem argv'''
-    freeMem argc'
-    freeMem argv''
-    return argv''''
-
-
--- function gdk_pango_context_get_for_screen
--- Args : [Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Pango" "Context"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pango_context_get_for_screen" gdk_pango_context_get_for_screen :: 
-    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
-    IO (Ptr Pango.Context)
-
-
-pangoContextGetForScreen ::
-    (MonadIO m, ScreenK a) =>
-    a ->                                    -- screen
-    m Pango.Context
-pangoContextGetForScreen screen = liftIO $ do
-    let screen' = unsafeManagedPtrCastPtr screen
-    result <- gdk_pango_context_get_for_screen screen'
-    checkUnexpectedReturnNULL "gdk_pango_context_get_for_screen" result
-    result' <- (wrapObject Pango.Context) result
-    touchManagedPtr screen
-    return result'
-
-
--- function gdk_pango_context_get
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Pango" "Context"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_pango_context_get" gdk_pango_context_get :: 
-    IO (Ptr Pango.Context)
-
-
-pangoContextGet ::
-    (MonadIO m) =>
-    m Pango.Context
-pangoContextGet  = liftIO $ do
-    result <- gdk_pango_context_get
-    checkUnexpectedReturnNULL "gdk_pango_context_get" result
-    result' <- (wrapObject Pango.Context) result
-    return result'
-
-
--- function gdk_offscreen_window_set_embedder
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "embedder", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "embedder", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_offscreen_window_set_embedder" gdk_offscreen_window_set_embedder :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Ptr Window ->                           -- embedder : TInterface "Gdk" "Window"
-    IO ()
-
-
-offscreenWindowSetEmbedder ::
-    (MonadIO m, WindowK a, WindowK b) =>
-    a ->                                    -- window
-    b ->                                    -- embedder
-    m ()
-offscreenWindowSetEmbedder window embedder = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let embedder' = unsafeManagedPtrCastPtr embedder
-    gdk_offscreen_window_set_embedder window' embedder'
-    touchManagedPtr window
-    touchManagedPtr embedder
-    return ()
-
-
--- function gdk_offscreen_window_get_surface
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Surface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_offscreen_window_get_surface" gdk_offscreen_window_get_surface :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Surface)
-
-
-offscreenWindowGetSurface ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    m Cairo.Surface
-offscreenWindowGetSurface window = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    result <- gdk_offscreen_window_get_surface window'
-    checkUnexpectedReturnNULL "gdk_offscreen_window_get_surface" result
-    result' <- (newBoxed Cairo.Surface) result
-    touchManagedPtr window
-    return result'
-
-
--- function gdk_offscreen_window_get_embedder
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_offscreen_window_get_embedder" gdk_offscreen_window_get_embedder :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-offscreenWindowGetEmbedder ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    m Window
-offscreenWindowGetEmbedder window = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    result <- gdk_offscreen_window_get_embedder window'
-    checkUnexpectedReturnNULL "gdk_offscreen_window_get_embedder" result
-    result' <- (newObject Window) result
-    touchManagedPtr window
-    return result'
-
-
--- function gdk_notify_startup_complete_with_id
--- Args : [Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "startup_id", 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 "gdk_notify_startup_complete_with_id" gdk_notify_startup_complete_with_id :: 
-    CString ->                              -- startup_id : TBasicType TUTF8
-    IO ()
-
-
-notifyStartupCompleteWithId ::
-    (MonadIO m) =>
-    T.Text ->                               -- startup_id
-    m ()
-notifyStartupCompleteWithId startup_id = liftIO $ do
-    startup_id' <- textToCString startup_id
-    gdk_notify_startup_complete_with_id startup_id'
-    freeMem startup_id'
-    return ()
-
-
--- function gdk_notify_startup_complete
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_notify_startup_complete" gdk_notify_startup_complete :: 
-    IO ()
-
-
-notifyStartupComplete ::
-    (MonadIO m) =>
-    m ()
-notifyStartupComplete  = liftIO $ do
-    gdk_notify_startup_complete
-    return ()
-
-
--- function gdk_list_visuals
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TGList (TInterface "Gdk" "Visual")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_list_visuals" gdk_list_visuals :: 
-    IO (Ptr (GList (Ptr Visual)))
-
-
-listVisuals ::
-    (MonadIO m) =>
-    m [Visual]
-listVisuals  = liftIO $ do
-    result <- gdk_list_visuals
-    checkUnexpectedReturnNULL "gdk_list_visuals" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Visual) result'
-    g_list_free result
-    return result''
-
-
--- function gdk_keyval_to_upper
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_to_upper" gdk_keyval_to_upper :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO Word32
-
-
-keyvalToUpper ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m Word32
-keyvalToUpper keyval = liftIO $ do
-    result <- gdk_keyval_to_upper keyval
-    return result
-
-
--- function gdk_keyval_to_unicode
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_to_unicode" gdk_keyval_to_unicode :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO Word32
-
-
-keyvalToUnicode ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m Word32
-keyvalToUnicode keyval = liftIO $ do
-    result <- gdk_keyval_to_unicode keyval
-    return result
-
-
--- function gdk_keyval_to_lower
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_to_lower" gdk_keyval_to_lower :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO Word32
-
-
-keyvalToLower ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m Word32
-keyvalToLower keyval = liftIO $ do
-    result <- gdk_keyval_to_lower keyval
-    return result
-
-
--- function gdk_keyval_name
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", 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 "gdk_keyval_name" gdk_keyval_name :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO CString
-
-
-keyvalName ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m T.Text
-keyvalName keyval = liftIO $ do
-    result <- gdk_keyval_name keyval
-    checkUnexpectedReturnNULL "gdk_keyval_name" result
-    result' <- cstringToText result
-    return result'
-
-
--- function gdk_keyval_is_upper
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", 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 "gdk_keyval_is_upper" gdk_keyval_is_upper :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO CInt
-
-
-keyvalIsUpper ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m Bool
-keyvalIsUpper keyval = liftIO $ do
-    result <- gdk_keyval_is_upper keyval
-    let result' = (/= 0) result
-    return result'
-
-
--- function gdk_keyval_is_lower
--- Args : [Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval", 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 "gdk_keyval_is_lower" gdk_keyval_is_lower :: 
-    Word32 ->                               -- keyval : TBasicType TUInt32
-    IO CInt
-
-
-keyvalIsLower ::
-    (MonadIO m) =>
-    Word32 ->                               -- keyval
-    m Bool
-keyvalIsLower keyval = liftIO $ do
-    result <- gdk_keyval_is_lower keyval
-    let result' = (/= 0) result
-    return result'
-
-
--- function gdk_keyval_from_name
--- Args : [Arg {argName = "keyval_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "keyval_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyval_from_name" gdk_keyval_from_name :: 
-    CString ->                              -- keyval_name : TBasicType TUTF8
-    IO Word32
-
-
-keyvalFromName ::
-    (MonadIO m) =>
-    T.Text ->                               -- keyval_name
-    m Word32
-keyvalFromName keyval_name = liftIO $ do
-    keyval_name' <- textToCString keyval_name
-    result <- gdk_keyval_from_name keyval_name'
-    freeMem keyval_name'
-    return result
-
-
--- function gdk_keyval_convert_case
--- Args : [Arg {argName = "symbol", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "lower", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "upper", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "symbol", 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 "gdk_keyval_convert_case" gdk_keyval_convert_case :: 
-    Word32 ->                               -- symbol : TBasicType TUInt32
-    Ptr Word32 ->                           -- lower : TBasicType TUInt32
-    Ptr Word32 ->                           -- upper : TBasicType TUInt32
-    IO ()
-
-
-keyvalConvertCase ::
-    (MonadIO m) =>
-    Word32 ->                               -- symbol
-    m (Word32,Word32)
-keyvalConvertCase symbol = liftIO $ do
-    lower <- allocMem :: IO (Ptr Word32)
-    upper <- allocMem :: IO (Ptr Word32)
-    gdk_keyval_convert_case symbol lower upper
-    lower' <- peek lower
-    upper' <- peek upper
-    freeMem lower
-    freeMem upper
-    return (lower', upper')
-
-
--- function gdk_keyboard_ungrab
--- Args : [Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "time_", 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 "gdk_keyboard_ungrab" gdk_keyboard_ungrab :: 
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-{-# DEPRECATED keyboardUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
-keyboardUngrab ::
-    (MonadIO m) =>
-    Word32 ->                               -- time_
-    m ()
-keyboardUngrab time_ = liftIO $ do
-    gdk_keyboard_ungrab time_
-    return ()
-
-
--- function gdk_keyboard_grab
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "GrabStatus"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_keyboard_grab" gdk_keyboard_grab :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    CInt ->                                 -- owner_events : TBasicType TBoolean
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO CUInt
-
-{-# DEPRECATED keyboardGrab ["(Since version 3.0)","Use gdk_device_grab() instead."]#-}
-keyboardGrab ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    Bool ->                                 -- owner_events
-    Word32 ->                               -- time_
-    m GrabStatus
-keyboardGrab window owner_events time_ = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let owner_events' = (fromIntegral . fromEnum) owner_events
-    result <- gdk_keyboard_grab window' owner_events' time_
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr window
-    return result'
-
-
--- function gdk_init_check
--- Args : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_init_check" gdk_init_check :: 
-    Ptr Int32 ->                            -- argc : TBasicType TInt32
-    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
-    IO CInt
-
-
-initCheck ::
-    (MonadIO m) =>
-    [T.Text] ->                             -- argv
-    m (Bool,[T.Text])
-initCheck argv = liftIO $ do
-    let argc = fromIntegral $ length argv
-    argc' <- allocMem :: IO (Ptr Int32)
-    poke argc' argc
-    argv' <- packUTF8CArray argv
-    argv'' <- allocMem :: IO (Ptr (Ptr CString))
-    poke argv'' argv'
-    result <- gdk_init_check argc' argv''
-    argc'' <- peek argc'
-    let result' = (/= 0) result
-    argv''' <- peek argv''
-    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
-    (mapCArrayWithLength argc'') freeMem argv'''
-    freeMem argv'''
-    freeMem argc'
-    freeMem argv''
-    return (result', argv'''')
-
-
--- function gdk_init
--- Args : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_init" gdk_init :: 
-    Ptr Int32 ->                            -- argc : TBasicType TInt32
-    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
-    IO ()
-
-
-init ::
-    (MonadIO m) =>
-    [T.Text] ->                             -- argv
-    m ([T.Text])
-init argv = liftIO $ do
-    let argc = fromIntegral $ length argv
-    argc' <- allocMem :: IO (Ptr Int32)
-    poke argc' argc
-    argv' <- packUTF8CArray argv
-    argv'' <- allocMem :: IO (Ptr (Ptr CString))
-    poke argv'' argv'
-    gdk_init argc' argv''
-    argc'' <- peek argc'
-    argv''' <- peek argv''
-    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
-    (mapCArrayWithLength argc'') freeMem argv'''
-    freeMem argv'''
-    freeMem argc'
-    freeMem argv''
-    return argv''''
-
-
--- function gdk_gl_error_quark
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TUInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_gl_error_quark" gdk_gl_error_quark :: 
-    IO Word32
-
-
-glErrorQuark ::
-    (MonadIO m) =>
-    m Word32
-glErrorQuark  = liftIO $ do
-    result <- gdk_gl_error_quark
-    return result
-
-
--- function gdk_get_show_events
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_get_show_events" gdk_get_show_events :: 
-    IO CInt
-
-
-getShowEvents ::
-    (MonadIO m) =>
-    m Bool
-getShowEvents  = liftIO $ do
-    result <- gdk_get_show_events
-    let result' = (/= 0) result
-    return result'
-
-
--- function gdk_get_program_class
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_get_program_class" gdk_get_program_class :: 
-    IO CString
-
-
-getProgramClass ::
-    (MonadIO m) =>
-    m T.Text
-getProgramClass  = liftIO $ do
-    result <- gdk_get_program_class
-    checkUnexpectedReturnNULL "gdk_get_program_class" result
-    result' <- cstringToText result
-    return result'
-
-
--- function gdk_get_display_arg_name
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_get_display_arg_name" gdk_get_display_arg_name :: 
-    IO CString
-
-
-getDisplayArgName ::
-    (MonadIO m) =>
-    m T.Text
-getDisplayArgName  = liftIO $ do
-    result <- gdk_get_display_arg_name
-    checkUnexpectedReturnNULL "gdk_get_display_arg_name" result
-    result' <- cstringToText result
-    return result'
-
-
--- function gdk_get_display
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TUTF8
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_get_display" gdk_get_display :: 
-    IO CString
-
-{-# DEPRECATED getDisplay ["(Since version 3.8)","Call gdk_display_get_name (gdk_display_get_default ()))","   instead."]#-}
-getDisplay ::
-    (MonadIO m) =>
-    m T.Text
-getDisplay  = liftIO $ do
-    result <- gdk_get_display
-    checkUnexpectedReturnNULL "gdk_get_display" result
-    result' <- cstringToText result
-    freeMem result
-    return result'
-
-
--- function gdk_get_default_root_window
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_get_default_root_window" gdk_get_default_root_window :: 
-    IO (Ptr Window)
-
-
-getDefaultRootWindow ::
-    (MonadIO m) =>
-    m Window
-getDefaultRootWindow  = liftIO $ do
-    result <- gdk_get_default_root_window
-    checkUnexpectedReturnNULL "gdk_get_default_root_window" result
-    result' <- (newObject Window) result
-    return result'
-
-
--- function gdk_flush
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_flush" gdk_flush :: 
-    IO ()
-
-
-flush ::
-    (MonadIO m) =>
-    m ()
-flush  = liftIO $ do
-    gdk_flush
-    return ()
-
-
--- function gdk_events_pending
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_events_pending" gdk_events_pending :: 
-    IO CInt
-
-
-eventsPending ::
-    (MonadIO m) =>
-    m Bool
-eventsPending  = liftIO $ do
-    result <- gdk_events_pending
-    let result' = (/= 0) result
-    return result'
-
-
--- function gdk_events_get_distance
--- Args : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "distance", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_events_get_distance" gdk_events_get_distance :: 
-    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
-    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
-    Ptr CDouble ->                          -- distance : TBasicType TDouble
-    IO CInt
-
-
-eventsGetDistance ::
-    (MonadIO m) =>
-    Event ->                                -- event1
-    Event ->                                -- event2
-    m (Bool,Double)
-eventsGetDistance event1 event2 = liftIO $ do
-    let event1' = unsafeManagedPtrGetPtr event1
-    let event2' = unsafeManagedPtrGetPtr event2
-    distance <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_events_get_distance event1' event2' distance
-    let result' = (/= 0) result
-    distance' <- peek distance
-    let distance'' = realToFrac distance'
-    touchManagedPtr event1
-    touchManagedPtr event2
-    freeMem distance
-    return (result', distance'')
-
-
--- function gdk_events_get_center
--- Args : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_events_get_center" gdk_events_get_center :: 
-    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
-    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
-    Ptr CDouble ->                          -- x : TBasicType TDouble
-    Ptr CDouble ->                          -- y : TBasicType TDouble
-    IO CInt
-
-
-eventsGetCenter ::
-    (MonadIO m) =>
-    Event ->                                -- event1
-    Event ->                                -- event2
-    m (Bool,Double,Double)
-eventsGetCenter event1 event2 = liftIO $ do
-    let event1' = unsafeManagedPtrGetPtr event1
-    let event2' = unsafeManagedPtrGetPtr event2
-    x <- allocMem :: IO (Ptr CDouble)
-    y <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_events_get_center event1' event2' x y
-    let result' = (/= 0) result
-    x' <- peek x
-    let x'' = realToFrac x'
-    y' <- peek y
-    let y'' = realToFrac y'
-    touchManagedPtr event1
-    touchManagedPtr event2
-    freeMem x
-    freeMem y
-    return (result', x'', y'')
-
-
--- function gdk_events_get_angle
--- Args : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "angle", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_events_get_angle" gdk_events_get_angle :: 
-    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
-    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
-    Ptr CDouble ->                          -- angle : TBasicType TDouble
-    IO CInt
-
-
-eventsGetAngle ::
-    (MonadIO m) =>
-    Event ->                                -- event1
-    Event ->                                -- event2
-    m (Bool,Double)
-eventsGetAngle event1 event2 = liftIO $ do
-    let event1' = unsafeManagedPtrGetPtr event1
-    let event2' = unsafeManagedPtrGetPtr event2
-    angle <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_events_get_angle event1' event2' angle
-    let result' = (/= 0) result
-    angle' <- peek angle
-    let angle'' = realToFrac angle'
-    touchManagedPtr event1
-    touchManagedPtr event2
-    freeMem angle
-    return (result', angle'')
-
-
--- function gdk_event_request_motions
--- Args : [Arg {argName = "event", argType = TInterface "Gdk" "EventMotion", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "event", argType = TInterface "Gdk" "EventMotion", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_request_motions" gdk_event_request_motions :: 
-    Ptr EventMotion ->                      -- event : TInterface "Gdk" "EventMotion"
-    IO ()
-
-
-eventRequestMotions ::
-    (MonadIO m) =>
-    EventMotion ->                          -- event
-    m ()
-eventRequestMotions event = liftIO $ do
-    let event' = unsafeManagedPtrGetPtr event
-    gdk_event_request_motions event'
-    touchManagedPtr event
-    return ()
-
-
--- function gdk_event_peek
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Event"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_peek" gdk_event_peek :: 
-    IO (Ptr Event)
-
-
-eventPeek ::
-    (MonadIO m) =>
-    m Event
-eventPeek  = liftIO $ do
-    result <- gdk_event_peek
-    checkUnexpectedReturnNULL "gdk_event_peek" result
-    result' <- (wrapBoxed Event) result
-    return result'
-
-
--- function gdk_event_handler_set
--- Args : [Arg {argName = "func", argType = TInterface "Gdk" "EventFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 1, argDestroy = 2, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "func", argType = TInterface "Gdk" "EventFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 1, argDestroy = 2, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_handler_set" gdk_event_handler_set :: 
-    FunPtr EventFuncC ->                    -- func : TInterface "Gdk" "EventFunc"
-    Ptr () ->                               -- data : TBasicType TVoid
-    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
-    IO ()
-
-
-eventHandlerSet ::
-    (MonadIO m) =>
-    EventFunc ->                            -- func
-    m ()
-eventHandlerSet func = liftIO $ do
-    func' <- mkEventFunc (eventFuncWrapper Nothing func)
-    let data_ = castFunPtrToPtr func'
-    let notify = safeFreeFunPtrPtr
-    gdk_event_handler_set func' data_ notify
-    return ()
-
-
--- function gdk_event_get
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Event"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_event_get" gdk_event_get :: 
-    IO (Ptr Event)
-
-
-eventGet ::
-    (MonadIO m) =>
-    m Event
-eventGet  = liftIO $ do
-    result <- gdk_event_get
-    checkUnexpectedReturnNULL "gdk_event_get" result
-    result' <- (wrapBoxed Event) result
-    return result'
-
-
--- function gdk_error_trap_push
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_error_trap_push" gdk_error_trap_push :: 
-    IO ()
-
-
-errorTrapPush ::
-    (MonadIO m) =>
-    m ()
-errorTrapPush  = liftIO $ do
-    gdk_error_trap_push
-    return ()
-
-
--- function gdk_error_trap_pop_ignored
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_error_trap_pop_ignored" gdk_error_trap_pop_ignored :: 
-    IO ()
-
-
-errorTrapPopIgnored ::
-    (MonadIO m) =>
-    m ()
-errorTrapPopIgnored  = liftIO $ do
-    gdk_error_trap_pop_ignored
-    return ()
-
-
--- function gdk_error_trap_pop
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_error_trap_pop" gdk_error_trap_pop :: 
-    IO Int32
-
-
-errorTrapPop ::
-    (MonadIO m) =>
-    m Int32
-errorTrapPop  = liftIO $ do
-    result <- gdk_error_trap_pop
-    return result
-
-
--- function gdk_drop_reply
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accepted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accepted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", 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 "gdk_drop_reply" gdk_drop_reply :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    CInt ->                                 -- accepted : TBasicType TBoolean
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-dropReply ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    Bool ->                                 -- accepted
-    Word32 ->                               -- time_
-    m ()
-dropReply context accepted time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    let accepted' = (fromIntegral . fromEnum) accepted
-    gdk_drop_reply context' accepted' time_
-    touchManagedPtr context
-    return ()
-
-
--- function gdk_drop_finish
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "success", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "success", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", 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 "gdk_drop_finish" gdk_drop_finish :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    CInt ->                                 -- success : TBasicType TBoolean
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-dropFinish ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    Bool ->                                 -- success
-    Word32 ->                               -- time_
-    m ()
-dropFinish context success time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    let success' = (fromIntegral . fromEnum) success
-    gdk_drop_finish context' success' time_
-    touchManagedPtr context
-    return ()
-
-
--- function gdk_drag_status
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", 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 "gdk_drag_status" gdk_drag_status :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    CUInt ->                                -- action : TInterface "Gdk" "DragAction"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-dragStatus ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    [DragAction] ->                         -- action
-    Word32 ->                               -- time_
-    m ()
-dragStatus context action time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    let action' = gflagsToWord action
-    gdk_drag_status context' action' time_
-    touchManagedPtr context
-    return ()
-
-
--- function gdk_drag_motion
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "suggested_action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "possible_actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "suggested_action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "possible_actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", 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 "gdk_drag_motion" gdk_drag_motion :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    Ptr Window ->                           -- dest_window : TInterface "Gdk" "Window"
-    CUInt ->                                -- protocol : TInterface "Gdk" "DragProtocol"
-    Int32 ->                                -- x_root : TBasicType TInt32
-    Int32 ->                                -- y_root : TBasicType TInt32
-    CUInt ->                                -- suggested_action : TInterface "Gdk" "DragAction"
-    CUInt ->                                -- possible_actions : TInterface "Gdk" "DragAction"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO CInt
-
-
-dragMotion ::
-    (MonadIO m, DragContextK a, WindowK b) =>
-    a ->                                    -- context
-    b ->                                    -- dest_window
-    DragProtocol ->                         -- protocol
-    Int32 ->                                -- x_root
-    Int32 ->                                -- y_root
-    [DragAction] ->                         -- suggested_action
-    [DragAction] ->                         -- possible_actions
-    Word32 ->                               -- time_
-    m Bool
-dragMotion context dest_window protocol x_root y_root suggested_action possible_actions time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    let dest_window' = unsafeManagedPtrCastPtr dest_window
-    let protocol' = (fromIntegral . fromEnum) protocol
-    let suggested_action' = gflagsToWord suggested_action
-    let possible_actions' = gflagsToWord possible_actions
-    result <- gdk_drag_motion context' dest_window' protocol' x_root y_root suggested_action' possible_actions' time_
-    let result' = (/= 0) result
-    touchManagedPtr context
-    touchManagedPtr dest_window
-    return result'
-
-
--- function gdk_drag_get_selection
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Atom"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_get_selection" gdk_drag_get_selection :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    IO (Ptr Atom)
-
-
-dragGetSelection ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    m Atom
-dragGetSelection context = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    result <- gdk_drag_get_selection context'
-    checkUnexpectedReturnNULL "gdk_drag_get_selection" result
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    result' <- (\x -> Atom <$> newForeignPtr_ x) result
-    touchManagedPtr context
-    return result'
-
-
--- function gdk_drag_find_window_for_screen
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "drag_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "drag_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y_root", 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 "gdk_drag_find_window_for_screen" gdk_drag_find_window_for_screen :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    Ptr Window ->                           -- drag_window : TInterface "Gdk" "Window"
-    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
-    Int32 ->                                -- x_root : TBasicType TInt32
-    Int32 ->                                -- y_root : TBasicType TInt32
-    Ptr (Ptr Window) ->                     -- dest_window : TInterface "Gdk" "Window"
-    Ptr CUInt ->                            -- protocol : TInterface "Gdk" "DragProtocol"
-    IO ()
-
-
-dragFindWindowForScreen ::
-    (MonadIO m, DragContextK a, WindowK b, ScreenK c) =>
-    a ->                                    -- context
-    b ->                                    -- drag_window
-    c ->                                    -- screen
-    Int32 ->                                -- x_root
-    Int32 ->                                -- y_root
-    m (Window,DragProtocol)
-dragFindWindowForScreen context drag_window screen x_root y_root = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    let drag_window' = unsafeManagedPtrCastPtr drag_window
-    let screen' = unsafeManagedPtrCastPtr screen
-    dest_window <- allocMem :: IO (Ptr (Ptr Window))
-    protocol <- allocMem :: IO (Ptr CUInt)
-    gdk_drag_find_window_for_screen context' drag_window' screen' x_root y_root dest_window protocol
-    dest_window' <- peek dest_window
-    dest_window'' <- (wrapObject Window) dest_window'
-    protocol' <- peek protocol
-    let protocol'' = (toEnum . fromIntegral) protocol'
-    touchManagedPtr context
-    touchManagedPtr drag_window
-    touchManagedPtr screen
-    freeMem dest_window
-    freeMem protocol
-    return (dest_window'', protocol'')
-
-
--- function gdk_drag_drop_succeeded
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_drop_succeeded" gdk_drag_drop_succeeded :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    IO CInt
-
-
-dragDropSucceeded ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    m Bool
-dragDropSucceeded context = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    result <- gdk_drag_drop_succeeded context'
-    let result' = (/= 0) result
-    touchManagedPtr context
-    return result'
-
-
--- function gdk_drag_drop
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", 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 "gdk_drag_drop" gdk_drag_drop :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-dragDrop ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    Word32 ->                               -- time_
-    m ()
-dragDrop context time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    gdk_drag_drop context' time_
-    touchManagedPtr context
-    return ()
-
-
--- function gdk_drag_begin_for_device
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DragContext"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_begin_for_device" gdk_drag_begin_for_device :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Ptr (GList (Ptr Atom)) ->               -- targets : TGList (TInterface "Gdk" "Atom")
-    IO (Ptr DragContext)
-
-
-dragBeginForDevice ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- window
-    b ->                                    -- device
-    [Atom] ->                               -- targets
-    m DragContext
-dragBeginForDevice window device targets = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let device' = unsafeManagedPtrCastPtr device
-    let targets' = map unsafeManagedPtrGetPtr targets
-    targets'' <- packGList targets'
-    result <- gdk_drag_begin_for_device window' device' targets''
-    checkUnexpectedReturnNULL "gdk_drag_begin_for_device" result
-    result' <- (wrapObject DragContext) result
-    touchManagedPtr window
-    touchManagedPtr device
-    mapM_ touchManagedPtr targets
-    g_list_free targets''
-    return result'
-
-
--- function gdk_drag_begin
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DragContext"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_drag_begin" gdk_drag_begin :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Ptr (GList (Ptr Atom)) ->               -- targets : TGList (TInterface "Gdk" "Atom")
-    IO (Ptr DragContext)
-
-
-dragBegin ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    [Atom] ->                               -- targets
-    m DragContext
-dragBegin window targets = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    let targets' = map unsafeManagedPtrGetPtr targets
-    targets'' <- packGList targets'
-    result <- gdk_drag_begin window' targets''
-    checkUnexpectedReturnNULL "gdk_drag_begin" result
-    result' <- (wrapObject DragContext) result
-    touchManagedPtr window
-    mapM_ touchManagedPtr targets
-    g_list_free targets''
-    return result'
-
-
--- function gdk_drag_abort
--- Args : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", 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 "gdk_drag_abort" gdk_drag_abort :: 
-    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
-    Word32 ->                               -- time_ : TBasicType TUInt32
-    IO ()
-
-
-dragAbort ::
-    (MonadIO m, DragContextK a) =>
-    a ->                                    -- context
-    Word32 ->                               -- time_
-    m ()
-dragAbort context time_ = liftIO $ do
-    let context' = unsafeManagedPtrCastPtr context
-    gdk_drag_abort context' time_
-    touchManagedPtr context
-    return ()
-
-
--- function gdk_disable_multidevice
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_disable_multidevice" gdk_disable_multidevice :: 
-    IO ()
-
-
-disableMultidevice ::
-    (MonadIO m) =>
-    m ()
-disableMultidevice  = liftIO $ do
-    gdk_disable_multidevice
-    return ()
-
-
--- function gdk_color_parse
--- Args : [Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_color_parse" gdk_color_parse :: 
-    CString ->                              -- spec : TBasicType TUTF8
-    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
-    IO CInt
-
-{-# DEPRECATED colorParse ["(Since version 3.14)","Use #GdkRGBA"]#-}
-colorParse ::
-    (MonadIO m) =>
-    T.Text ->                               -- spec
-    m (Bool,Color)
-colorParse spec = liftIO $ do
-    spec' <- textToCString spec
-    color <- callocBoxedBytes 12 :: IO (Ptr Color)
-    result <- gdk_color_parse spec' color
-    let result' = (/= 0) result
-    color' <- (wrapBoxed Color) color
-    freeMem spec'
-    return (result', color')
-
-
--- function gdk_cairo_surface_create_from_pixbuf
--- Args : [Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "for_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "for_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Surface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_surface_create_from_pixbuf" gdk_cairo_surface_create_from_pixbuf :: 
-    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
-    Int32 ->                                -- scale : TBasicType TInt32
-    Ptr Window ->                           -- for_window : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Surface)
-
-
-cairoSurfaceCreateFromPixbuf ::
-    (MonadIO m, GdkPixbuf.PixbufK a, WindowK b) =>
-    a ->                                    -- pixbuf
-    Int32 ->                                -- scale
-    Maybe (b) ->                            -- for_window
-    m Cairo.Surface
-cairoSurfaceCreateFromPixbuf pixbuf scale for_window = liftIO $ do
-    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
-    maybeFor_window <- case for_window of
-        Nothing -> return nullPtr
-        Just jFor_window -> do
-            let jFor_window' = unsafeManagedPtrCastPtr jFor_window
-            return jFor_window'
-    result <- gdk_cairo_surface_create_from_pixbuf pixbuf' scale maybeFor_window
-    checkUnexpectedReturnNULL "gdk_cairo_surface_create_from_pixbuf" result
-    result' <- (wrapBoxed Cairo.Surface) result
-    touchManagedPtr pixbuf
-    whenJust for_window touchManagedPtr
-    return result'
-
-
--- function gdk_cairo_set_source_window
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_set_source_window" gdk_cairo_set_source_window :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    CDouble ->                              -- x : TBasicType TDouble
-    CDouble ->                              -- y : TBasicType TDouble
-    IO ()
-
-
-cairoSetSourceWindow ::
-    (MonadIO m, WindowK a) =>
-    Cairo.Context ->                        -- cr
-    a ->                                    -- window
-    Double ->                               -- x
-    Double ->                               -- y
-    m ()
-cairoSetSourceWindow cr window x y = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let window' = unsafeManagedPtrCastPtr window
-    let x' = realToFrac x
-    let y' = realToFrac y
-    gdk_cairo_set_source_window cr' window' x' y'
-    touchManagedPtr cr
-    touchManagedPtr window
-    return ()
-
-
--- function gdk_cairo_set_source_rgba
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_set_source_rgba" gdk_cairo_set_source_rgba :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr RGBA ->                             -- rgba : TInterface "Gdk" "RGBA"
-    IO ()
-
-
-cairoSetSourceRgba ::
-    (MonadIO m) =>
-    Cairo.Context ->                        -- cr
-    RGBA ->                                 -- rgba
-    m ()
-cairoSetSourceRgba cr rgba = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let rgba' = unsafeManagedPtrGetPtr rgba
-    gdk_cairo_set_source_rgba cr' rgba'
-    touchManagedPtr cr
-    touchManagedPtr rgba
-    return ()
-
-
--- function gdk_cairo_set_source_pixbuf
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_set_source_pixbuf" gdk_cairo_set_source_pixbuf :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
-    CDouble ->                              -- pixbuf_x : TBasicType TDouble
-    CDouble ->                              -- pixbuf_y : TBasicType TDouble
-    IO ()
-
-
-cairoSetSourcePixbuf ::
-    (MonadIO m, GdkPixbuf.PixbufK a) =>
-    Cairo.Context ->                        -- cr
-    a ->                                    -- pixbuf
-    Double ->                               -- pixbuf_x
-    Double ->                               -- pixbuf_y
-    m ()
-cairoSetSourcePixbuf cr pixbuf pixbuf_x pixbuf_y = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
-    let pixbuf_x' = realToFrac pixbuf_x
-    let pixbuf_y' = realToFrac pixbuf_y
-    gdk_cairo_set_source_pixbuf cr' pixbuf' pixbuf_x' pixbuf_y'
-    touchManagedPtr cr
-    touchManagedPtr pixbuf
-    return ()
-
-
--- function gdk_cairo_set_source_color
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_set_source_color" gdk_cairo_set_source_color :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
-    IO ()
-
-{-# DEPRECATED cairoSetSourceColor ["(Since version 3.4)","Use gdk_cairo_set_source_rgba() instead"]#-}
-cairoSetSourceColor ::
-    (MonadIO m) =>
-    Cairo.Context ->                        -- cr
-    Color ->                                -- color
-    m ()
-cairoSetSourceColor cr color = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let color' = unsafeManagedPtrGetPtr color
-    gdk_cairo_set_source_color cr' color'
-    touchManagedPtr cr
-    touchManagedPtr color
-    return ()
-
-
--- function gdk_cairo_region_create_from_surface
--- Args : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Region"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_region_create_from_surface" gdk_cairo_region_create_from_surface :: 
-    Ptr Cairo.Surface ->                    -- surface : TInterface "cairo" "Surface"
-    IO (Ptr Cairo.Region)
-
-
-cairoRegionCreateFromSurface ::
-    (MonadIO m) =>
-    Cairo.Surface ->                        -- surface
-    m Cairo.Region
-cairoRegionCreateFromSurface surface = liftIO $ do
-    let surface' = unsafeManagedPtrGetPtr surface
-    result <- gdk_cairo_region_create_from_surface surface'
-    checkUnexpectedReturnNULL "gdk_cairo_region_create_from_surface" result
-    result' <- (wrapBoxed Cairo.Region) result
-    touchManagedPtr surface
-    return result'
-
-
--- function gdk_cairo_region
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_region" gdk_cairo_region :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    IO ()
-
-
-cairoRegion ::
-    (MonadIO m) =>
-    Cairo.Context ->                        -- cr
-    Cairo.Region ->                         -- region
-    m ()
-cairoRegion cr region = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let region' = unsafeManagedPtrGetPtr region
-    gdk_cairo_region cr' region'
-    touchManagedPtr cr
-    touchManagedPtr region
-    return ()
-
-
--- function gdk_cairo_rectangle
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_rectangle" gdk_cairo_rectangle :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Rectangle ->                        -- rectangle : TInterface "Gdk" "Rectangle"
-    IO ()
-
-
-cairoRectangle ::
-    (MonadIO m) =>
-    Cairo.Context ->                        -- cr
-    Rectangle ->                            -- rectangle
-    m ()
-cairoRectangle cr rectangle = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let rectangle' = unsafeManagedPtrGetPtr rectangle
-    gdk_cairo_rectangle cr' rectangle'
-    touchManagedPtr cr
-    touchManagedPtr rectangle
-    return ()
-
-
--- function gdk_cairo_get_clip_rectangle
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_get_clip_rectangle" gdk_cairo_get_clip_rectangle :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
-    IO CInt
-
-
-cairoGetClipRectangle ::
-    (MonadIO m) =>
-    Cairo.Context ->                        -- cr
-    m (Bool,Rectangle)
-cairoGetClipRectangle cr = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    rect <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
-    result <- gdk_cairo_get_clip_rectangle cr' rect
-    let result' = (/= 0) result
-    rect' <- (wrapBoxed Rectangle) rect
-    touchManagedPtr cr
-    return (result', rect')
-
-
--- function gdk_cairo_draw_from_gl
--- Args : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_type", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer_scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source_type", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "buffer_scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", 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 "gdk_cairo_draw_from_gl" gdk_cairo_draw_from_gl :: 
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    Int32 ->                                -- source : TBasicType TInt32
-    Int32 ->                                -- source_type : TBasicType TInt32
-    Int32 ->                                -- buffer_scale : TBasicType TInt32
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO ()
-
-
-cairoDrawFromGl ::
-    (MonadIO m, WindowK a) =>
-    Cairo.Context ->                        -- cr
-    a ->                                    -- window
-    Int32 ->                                -- source
-    Int32 ->                                -- source_type
-    Int32 ->                                -- buffer_scale
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m ()
-cairoDrawFromGl cr window source source_type buffer_scale x y width height = liftIO $ do
-    let cr' = unsafeManagedPtrGetPtr cr
-    let window' = unsafeManagedPtrCastPtr window
-    gdk_cairo_draw_from_gl cr' window' source source_type buffer_scale x y width height
-    touchManagedPtr cr
-    touchManagedPtr window
-    return ()
-
-
--- function gdk_cairo_create
--- Args : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Context"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_cairo_create" gdk_cairo_create :: 
-    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Context)
-
-
-cairoCreate ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- window
-    m Cairo.Context
-cairoCreate window = liftIO $ do
-    let window' = unsafeManagedPtrCastPtr window
-    result <- gdk_cairo_create window'
-    checkUnexpectedReturnNULL "gdk_cairo_create" result
-    result' <- (wrapBoxed Cairo.Context) result
-    touchManagedPtr window
-    return result'
-
-
--- function gdk_beep
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_beep" gdk_beep :: 
-    IO ()
-
-
-beep ::
-    (MonadIO m) =>
-    m ()
-beep  = liftIO $ do
-    gdk_beep
-    return ()
-
-
--- function gdk_atom_intern_static_string
--- Args : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Atom"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_atom_intern_static_string" gdk_atom_intern_static_string :: 
-    CString ->                              -- atom_name : TBasicType TUTF8
-    IO (Ptr Atom)
-
-
-atomInternStaticString ::
-    (MonadIO m) =>
-    T.Text ->                               -- atom_name
-    m Atom
-atomInternStaticString atom_name = liftIO $ do
-    atom_name' <- textToCString atom_name
-    result <- gdk_atom_intern_static_string atom_name'
-    checkUnexpectedReturnNULL "gdk_atom_intern_static_string" result
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    result' <- (\x -> Atom <$> newForeignPtr_ x) result
-    freeMem atom_name'
-    return result'
-
-
--- function gdk_atom_intern
--- Args : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "only_if_exists", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "only_if_exists", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Atom"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_atom_intern" gdk_atom_intern :: 
-    CString ->                              -- atom_name : TBasicType TUTF8
-    CInt ->                                 -- only_if_exists : TBasicType TBoolean
-    IO (Ptr Atom)
-
-
-atomIntern ::
-    (MonadIO m) =>
-    T.Text ->                               -- atom_name
-    Bool ->                                 -- only_if_exists
-    m Atom
-atomIntern atom_name only_if_exists = liftIO $ do
-    atom_name' <- textToCString atom_name
-    let only_if_exists' = (fromIntegral . fromEnum) only_if_exists
-    result <- gdk_atom_intern atom_name' only_if_exists'
-    checkUnexpectedReturnNULL "gdk_atom_intern" result
-    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
-    result' <- (\x -> Atom <$> newForeignPtr_ x) result
-    freeMem atom_name'
-    return result'
-
-
--- function gdk_add_option_entries_libgtk_only
--- Args : [Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "group", argType = TInterface "GLib" "OptionGroup", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_add_option_entries_libgtk_only" gdk_add_option_entries_libgtk_only :: 
-    Ptr GLib.OptionGroup ->                 -- group : TInterface "GLib" "OptionGroup"
-    IO ()
-
-{-# DEPRECATED addOptionEntriesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
-addOptionEntriesLibgtkOnly ::
-    (MonadIO m) =>
-    GLib.OptionGroup ->                     -- group
-    m ()
+
+{- |
+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.Gdk.Functions
+    ( 
+
+ -- * Methods
+-- ** addOptionEntriesLibgtkOnly
+    addOptionEntriesLibgtkOnly              ,
+
+
+-- ** beep
+    beep                                    ,
+
+
+-- ** cairoCreate
+    cairoCreate                             ,
+
+
+-- ** cairoDrawFromGl
+    cairoDrawFromGl                         ,
+
+
+-- ** cairoGetClipRectangle
+    cairoGetClipRectangle                   ,
+
+
+-- ** cairoRectangle
+    cairoRectangle                          ,
+
+
+-- ** cairoRegion
+    cairoRegion                             ,
+
+
+-- ** cairoRegionCreateFromSurface
+    cairoRegionCreateFromSurface            ,
+
+
+-- ** cairoSetSourceColor
+    cairoSetSourceColor                     ,
+
+
+-- ** cairoSetSourcePixbuf
+    cairoSetSourcePixbuf                    ,
+
+
+-- ** cairoSetSourceRgba
+    cairoSetSourceRgba                      ,
+
+
+-- ** cairoSetSourceWindow
+    cairoSetSourceWindow                    ,
+
+
+-- ** cairoSurfaceCreateFromPixbuf
+    cairoSurfaceCreateFromPixbuf            ,
+
+
+-- ** disableMultidevice
+    disableMultidevice                      ,
+
+
+-- ** dragAbort
+    dragAbort                               ,
+
+
+-- ** dragBegin
+    dragBegin                               ,
+
+
+-- ** dragBeginForDevice
+    dragBeginForDevice                      ,
+
+
+-- ** dragDrop
+    dragDrop                                ,
+
+
+-- ** dragDropSucceeded
+    dragDropSucceeded                       ,
+
+
+-- ** dragFindWindowForScreen
+    dragFindWindowForScreen                 ,
+
+
+-- ** dragGetSelection
+    dragGetSelection                        ,
+
+
+-- ** dragMotion
+    dragMotion                              ,
+
+
+-- ** dragStatus
+    dragStatus                              ,
+
+
+-- ** dropFinish
+    dropFinish                              ,
+
+
+-- ** dropReply
+    dropReply                               ,
+
+
+-- ** errorTrapPop
+    errorTrapPop                            ,
+
+
+-- ** errorTrapPopIgnored
+    errorTrapPopIgnored                     ,
+
+
+-- ** errorTrapPush
+    errorTrapPush                           ,
+
+
+-- ** eventsGetAngle
+    eventsGetAngle                          ,
+
+
+-- ** eventsGetCenter
+    eventsGetCenter                         ,
+
+
+-- ** eventsGetDistance
+    eventsGetDistance                       ,
+
+
+-- ** eventsPending
+    eventsPending                           ,
+
+
+-- ** flush
+    flush                                   ,
+
+
+-- ** getDefaultRootWindow
+    getDefaultRootWindow                    ,
+
+
+-- ** getDisplay
+    getDisplay                              ,
+
+
+-- ** getDisplayArgName
+    getDisplayArgName                       ,
+
+
+-- ** getProgramClass
+    getProgramClass                         ,
+
+
+-- ** getShowEvents
+    getShowEvents                           ,
+
+
+-- ** init
+    init                                    ,
+
+
+-- ** initCheck
+    initCheck                               ,
+
+
+-- ** keyboardGrab
+    keyboardGrab                            ,
+
+
+-- ** keyboardUngrab
+    keyboardUngrab                          ,
+
+
+-- ** keyvalConvertCase
+    keyvalConvertCase                       ,
+
+
+-- ** keyvalFromName
+    keyvalFromName                          ,
+
+
+-- ** keyvalIsLower
+    keyvalIsLower                           ,
+
+
+-- ** keyvalIsUpper
+    keyvalIsUpper                           ,
+
+
+-- ** keyvalName
+    keyvalName                              ,
+
+
+-- ** keyvalToLower
+    keyvalToLower                           ,
+
+
+-- ** keyvalToUnicode
+    keyvalToUnicode                         ,
+
+
+-- ** keyvalToUpper
+    keyvalToUpper                           ,
+
+
+-- ** listVisuals
+    listVisuals                             ,
+
+
+-- ** notifyStartupComplete
+    notifyStartupComplete                   ,
+
+
+-- ** notifyStartupCompleteWithId
+    notifyStartupCompleteWithId             ,
+
+
+-- ** offscreenWindowGetEmbedder
+    offscreenWindowGetEmbedder              ,
+
+
+-- ** offscreenWindowGetSurface
+    offscreenWindowGetSurface               ,
+
+
+-- ** offscreenWindowSetEmbedder
+    offscreenWindowSetEmbedder              ,
+
+
+-- ** pangoContextGet
+    pangoContextGet                         ,
+
+
+-- ** pangoContextGetForScreen
+    pangoContextGetForScreen                ,
+
+
+-- ** parseArgs
+    parseArgs                               ,
+
+
+-- ** pixbufGetFromSurface
+    pixbufGetFromSurface                    ,
+
+
+-- ** pixbufGetFromWindow
+    pixbufGetFromWindow                     ,
+
+
+-- ** pointerGrab
+    pointerGrab                             ,
+
+
+-- ** pointerIsGrabbed
+    pointerIsGrabbed                        ,
+
+
+-- ** pointerUngrab
+    pointerUngrab                           ,
+
+
+-- ** preParseLibgtkOnly
+    preParseLibgtkOnly                      ,
+
+
+-- ** propertyDelete
+    propertyDelete                          ,
+
+
+-- ** propertyGet
+    propertyGet                             ,
+
+
+-- ** queryDepths
+    queryDepths                             ,
+
+
+-- ** queryVisualTypes
+    queryVisualTypes                        ,
+
+
+-- ** selectionConvert
+    selectionConvert                        ,
+
+
+-- ** selectionOwnerGet
+    selectionOwnerGet                       ,
+
+
+-- ** selectionOwnerGetForDisplay
+    selectionOwnerGetForDisplay             ,
+
+
+-- ** selectionOwnerSet
+    selectionOwnerSet                       ,
+
+
+-- ** selectionOwnerSetForDisplay
+    selectionOwnerSetForDisplay             ,
+
+
+-- ** selectionSendNotify
+    selectionSendNotify                     ,
+
+
+-- ** selectionSendNotifyForDisplay
+    selectionSendNotifyForDisplay           ,
+
+
+-- ** setAllowedBackends
+    setAllowedBackends                      ,
+
+
+-- ** setDoubleClickTime
+    setDoubleClickTime                      ,
+
+
+-- ** setProgramClass
+    setProgramClass                         ,
+
+
+-- ** setShowEvents
+    setShowEvents                           ,
+
+
+-- ** settingGet
+    settingGet                              ,
+
+
+-- ** synthesizeWindowState
+    synthesizeWindowState                   ,
+
+
+-- ** testRenderSync
+    testRenderSync                          ,
+
+
+-- ** testSimulateButton
+    testSimulateButton                      ,
+
+
+-- ** testSimulateKey
+    testSimulateKey                         ,
+
+
+-- ** textPropertyToUtf8ListForDisplay
+    textPropertyToUtf8ListForDisplay        ,
+
+
+-- ** threadsAddIdle
+    threadsAddIdle                          ,
+
+
+-- ** threadsAddTimeout
+    threadsAddTimeout                       ,
+
+
+-- ** threadsAddTimeoutSeconds
+    threadsAddTimeoutSeconds                ,
+
+
+-- ** threadsEnter
+    threadsEnter                            ,
+
+
+-- ** threadsInit
+    threadsInit                             ,
+
+
+-- ** threadsLeave
+    threadsLeave                            ,
+
+
+-- ** unicodeToKeyval
+    unicodeToKeyval                         ,
+
+
+-- ** utf8ToStringTarget
+    utf8ToStringTarget                      ,
+
+
+
+
+    ) 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.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GLib as GLib
+import qualified GI.GdkPixbuf as GdkPixbuf
+import qualified GI.Pango as Pango
+import qualified GI.Cairo as Cairo
+
+-- function gdk_utf8_to_string_target
+-- Args : [Arg {argCName = "str", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_utf8_to_string_target" gdk_utf8_to_string_target :: 
+    CString ->                              -- str : TBasicType TUTF8
+    IO CString
+
+
+utf8ToStringTarget ::
+    (MonadIO m) =>
+    T.Text                                  -- str
+    -> m T.Text                             -- result
+utf8ToStringTarget str = liftIO $ do
+    str' <- textToCString str
+    result <- gdk_utf8_to_string_target str'
+    checkUnexpectedReturnNULL "gdk_utf8_to_string_target" result
+    result' <- cstringToText result
+    freeMem result
+    freeMem str'
+    return result'
+
+
+-- function gdk_unicode_to_keyval
+-- Args : [Arg {argCName = "wc", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_unicode_to_keyval" gdk_unicode_to_keyval :: 
+    Word32 ->                               -- wc : TBasicType TUInt32
+    IO Word32
+
+
+unicodeToKeyval ::
+    (MonadIO m) =>
+    Word32                                  -- wc
+    -> m Word32                             -- result
+unicodeToKeyval wc = liftIO $ do
+    result <- gdk_unicode_to_keyval wc
+    return result
+
+
+-- function gdk_threads_leave
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_leave" gdk_threads_leave :: 
+    IO ()
+
+{-# DEPRECATED threadsLeave ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
+threadsLeave ::
+    (MonadIO m) =>
+    m ()                                    -- result
+threadsLeave  = liftIO $ do
+    gdk_threads_leave
+    return ()
+
+
+-- function gdk_threads_init
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_init" gdk_threads_init :: 
+    IO ()
+
+{-# DEPRECATED threadsInit ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
+threadsInit ::
+    (MonadIO m) =>
+    m ()                                    -- result
+threadsInit  = liftIO $ do
+    gdk_threads_init
+    return ()
+
+
+-- function gdk_threads_enter
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_enter" gdk_threads_enter :: 
+    IO ()
+
+{-# DEPRECATED threadsEnter ["(Since version 3.6)","All GDK and GTK+ calls should be made from the main","    thread"]#-}
+threadsEnter ::
+    (MonadIO m) =>
+    m ()                                    -- result
+threadsEnter  = liftIO $ do
+    gdk_threads_enter
+    return ()
+
+
+-- function gdk_threads_add_timeout_seconds_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_add_timeout_seconds_full" gdk_threads_add_timeout_seconds_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    Word32 ->                               -- interval : TBasicType TUInt32
+    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+threadsAddTimeoutSeconds ::
+    (MonadIO m) =>
+    Int32                                   -- priority
+    -> Word32                               -- interval
+    -> GLib.SourceFunc                      -- function
+    -> m Word32                             -- result
+threadsAddTimeoutSeconds priority interval function = liftIO $ do
+    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- gdk_threads_add_timeout_seconds_full priority interval function' data_ notify
+    return result
+
+
+-- function gdk_threads_add_timeout_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "interval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 3, argDestroy = 4, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_add_timeout_full" gdk_threads_add_timeout_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    Word32 ->                               -- interval : TBasicType TUInt32
+    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+threadsAddTimeout ::
+    (MonadIO m) =>
+    Int32                                   -- priority
+    -> Word32                               -- interval
+    -> GLib.SourceFunc                      -- function
+    -> m Word32                             -- result
+threadsAddTimeout priority interval function = liftIO $ do
+    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- gdk_threads_add_timeout_full priority interval function' data_ notify
+    return result
+
+
+-- function gdk_threads_add_idle_full
+-- Args : [Arg {argCName = "priority", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "function", argType = TInterface "GLib" "SourceFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 2, argDestroy = 3, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_threads_add_idle_full" gdk_threads_add_idle_full :: 
+    Int32 ->                                -- priority : TBasicType TInt32
+    FunPtr GLib.SourceFuncC ->              -- function : TInterface "GLib" "SourceFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
+    IO Word32
+
+
+threadsAddIdle ::
+    (MonadIO m) =>
+    Int32                                   -- priority
+    -> GLib.SourceFunc                      -- function
+    -> m Word32                             -- result
+threadsAddIdle priority function = liftIO $ do
+    function' <- GLib.mkSourceFunc (GLib.sourceFuncWrapper Nothing function)
+    let data_ = castFunPtrToPtr function'
+    let notify = safeFreeFunPtrPtr
+    result <- gdk_threads_add_idle_full priority function' data_ notify
+    return result
+
+
+-- function gdk_text_property_to_utf8_list_for_display
+-- Args : [Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "encoding", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "text", argType = TCArray False (-1) 4 (TBasicType TUInt8), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "list", argType = TCArray True (-1) (-1) (TBasicType TUTF8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "length", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_text_property_to_utf8_list_for_display" gdk_text_property_to_utf8_list_for_display :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr Atom ->                             -- encoding : TInterface "Gdk" "Atom"
+    Int32 ->                                -- format : TBasicType TInt32
+    Ptr Word8 ->                            -- text : TCArray False (-1) 4 (TBasicType TUInt8)
+    Int32 ->                                -- length : TBasicType TInt32
+    Ptr (Ptr CString) ->                    -- list : TCArray True (-1) (-1) (TBasicType TUTF8)
+    IO Int32
+
+
+textPropertyToUtf8ListForDisplay ::
+    (MonadIO m, DisplayK a) =>
+    a                                       -- display
+    -> Atom                                 -- encoding
+    -> Int32                                -- format
+    -> ByteString                           -- text
+    -> m (Int32,[T.Text])                   -- result
+textPropertyToUtf8ListForDisplay display encoding format text = liftIO $ do
+    let length_ = fromIntegral $ B.length text
+    let display' = unsafeManagedPtrCastPtr display
+    let encoding' = unsafeManagedPtrGetPtr encoding
+    text' <- packByteString text
+    list <- allocMem :: IO (Ptr (Ptr CString))
+    result <- gdk_text_property_to_utf8_list_for_display display' encoding' format text' length_ list
+    list' <- peek list
+    list'' <- unpackZeroTerminatedUTF8CArray list'
+    mapZeroTerminatedCArray freeMem list'
+    freeMem list'
+    touchManagedPtr display
+    touchManagedPtr encoding
+    freeMem text'
+    freeMem list
+    return (result, list'')
+
+
+-- function gdk_test_simulate_key
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key_pressrelease", argType = TInterface "Gdk" "EventType", 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 "gdk_test_simulate_key" gdk_test_simulate_key :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    CUInt ->                                -- modifiers : TInterface "Gdk" "ModifierType"
+    CUInt ->                                -- key_pressrelease : TInterface "Gdk" "EventType"
+    IO CInt
+
+
+testSimulateKey ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> Word32                               -- keyval
+    -> [ModifierType]                       -- modifiers
+    -> EventType                            -- keyPressrelease
+    -> m Bool                               -- result
+testSimulateKey window x y keyval modifiers keyPressrelease = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let modifiers' = gflagsToWord modifiers
+    let keyPressrelease' = (fromIntegral . fromEnum) keyPressrelease
+    result <- gdk_test_simulate_key window' x y keyval modifiers' keyPressrelease'
+    let result' = (/= 0) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_test_simulate_button
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "button", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "button_pressrelease", argType = TInterface "Gdk" "EventType", 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 "gdk_test_simulate_button" gdk_test_simulate_button :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    Word32 ->                               -- button : TBasicType TUInt32
+    CUInt ->                                -- modifiers : TInterface "Gdk" "ModifierType"
+    CUInt ->                                -- button_pressrelease : TInterface "Gdk" "EventType"
+    IO CInt
+
+
+testSimulateButton ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> Word32                               -- button
+    -> [ModifierType]                       -- modifiers
+    -> EventType                            -- buttonPressrelease
+    -> m Bool                               -- result
+testSimulateButton window x y button modifiers buttonPressrelease = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let modifiers' = gflagsToWord modifiers
+    let buttonPressrelease' = (fromIntegral . fromEnum) buttonPressrelease
+    result <- gdk_test_simulate_button window' x y button modifiers' buttonPressrelease'
+    let result' = (/= 0) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_test_render_sync
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", 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 "gdk_test_render_sync" gdk_test_render_sync :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    IO ()
+
+
+testRenderSync ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> m ()                                 -- result
+testRenderSync window = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    gdk_test_render_sync window'
+    touchManagedPtr window
+    return ()
+
+
+-- function gdk_synthesize_window_state
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "unset_flags", argType = TInterface "Gdk" "WindowState", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "set_flags", argType = TInterface "Gdk" "WindowState", 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 "gdk_synthesize_window_state" gdk_synthesize_window_state :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    CUInt ->                                -- unset_flags : TInterface "Gdk" "WindowState"
+    CUInt ->                                -- set_flags : TInterface "Gdk" "WindowState"
+    IO ()
+
+
+synthesizeWindowState ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> [WindowState]                        -- unsetFlags
+    -> [WindowState]                        -- setFlags
+    -> m ()                                 -- result
+synthesizeWindowState window unsetFlags setFlags = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let unsetFlags' = gflagsToWord unsetFlags
+    let setFlags' = gflagsToWord setFlags
+    gdk_synthesize_window_state window' unsetFlags' setFlags'
+    touchManagedPtr window
+    return ()
+
+
+-- function gdk_setting_get
+-- Args : [Arg {argCName = "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 : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_setting_get" gdk_setting_get :: 
+    CString ->                              -- name : TBasicType TUTF8
+    Ptr GValue ->                           -- value : TInterface "GObject" "Value"
+    IO CInt
+
+
+settingGet ::
+    (MonadIO m) =>
+    T.Text                                  -- name
+    -> GValue                               -- value
+    -> m Bool                               -- result
+settingGet name value = liftIO $ do
+    name' <- textToCString name
+    let value' = unsafeManagedPtrGetPtr value
+    result <- gdk_setting_get name' value'
+    let result' = (/= 0) result
+    touchManagedPtr value
+    freeMem name'
+    return result'
+
+
+-- function gdk_set_show_events
+-- Args : [Arg {argCName = "show_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_set_show_events" gdk_set_show_events :: 
+    CInt ->                                 -- show_events : TBasicType TBoolean
+    IO ()
+
+
+setShowEvents ::
+    (MonadIO m) =>
+    Bool                                    -- showEvents
+    -> m ()                                 -- result
+setShowEvents showEvents = liftIO $ do
+    let showEvents' = (fromIntegral . fromEnum) showEvents
+    gdk_set_show_events showEvents'
+    return ()
+
+
+-- function gdk_set_program_class
+-- Args : [Arg {argCName = "program_class", 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 "gdk_set_program_class" gdk_set_program_class :: 
+    CString ->                              -- program_class : TBasicType TUTF8
+    IO ()
+
+
+setProgramClass ::
+    (MonadIO m) =>
+    T.Text                                  -- programClass
+    -> m ()                                 -- result
+setProgramClass programClass = liftIO $ do
+    programClass' <- textToCString programClass
+    gdk_set_program_class programClass'
+    freeMem programClass'
+    return ()
+
+
+-- function gdk_set_double_click_time
+-- Args : [Arg {argCName = "msec", 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 "gdk_set_double_click_time" gdk_set_double_click_time :: 
+    Word32 ->                               -- msec : TBasicType TUInt32
+    IO ()
+
+
+setDoubleClickTime ::
+    (MonadIO m) =>
+    Word32                                  -- msec
+    -> m ()                                 -- result
+setDoubleClickTime msec = liftIO $ do
+    gdk_set_double_click_time msec
+    return ()
+
+
+-- function gdk_set_allowed_backends
+-- Args : [Arg {argCName = "backends", 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 "gdk_set_allowed_backends" gdk_set_allowed_backends :: 
+    CString ->                              -- backends : TBasicType TUTF8
+    IO ()
+
+
+setAllowedBackends ::
+    (MonadIO m) =>
+    T.Text                                  -- backends
+    -> m ()                                 -- result
+setAllowedBackends backends = liftIO $ do
+    backends' <- textToCString backends
+    gdk_set_allowed_backends backends'
+    freeMem backends'
+    return ()
+
+
+-- function gdk_selection_send_notify_for_display
+-- Args : [Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", 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 "gdk_selection_send_notify_for_display" gdk_selection_send_notify_for_display :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+selectionSendNotifyForDisplay ::
+    (MonadIO m, DisplayK a, WindowK b) =>
+    a                                       -- display
+    -> b                                    -- requestor
+    -> Atom                                 -- selection
+    -> Atom                                 -- target
+    -> Atom                                 -- property
+    -> Word32                               -- time
+    -> m ()                                 -- result
+selectionSendNotifyForDisplay display requestor selection target property time = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    let requestor' = unsafeManagedPtrCastPtr requestor
+    let selection' = unsafeManagedPtrGetPtr selection
+    let target' = unsafeManagedPtrGetPtr target
+    let property' = unsafeManagedPtrGetPtr property
+    gdk_selection_send_notify_for_display display' requestor' selection' target' property' time
+    touchManagedPtr display
+    touchManagedPtr requestor
+    touchManagedPtr selection
+    touchManagedPtr target
+    touchManagedPtr property
+    return ()
+
+
+-- function gdk_selection_send_notify
+-- Args : [Arg {argCName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", 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 "gdk_selection_send_notify" gdk_selection_send_notify :: 
+    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+selectionSendNotify ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- requestor
+    -> Atom                                 -- selection
+    -> Atom                                 -- target
+    -> Atom                                 -- property
+    -> Word32                               -- time
+    -> m ()                                 -- result
+selectionSendNotify requestor selection target property time = liftIO $ do
+    let requestor' = unsafeManagedPtrCastPtr requestor
+    let selection' = unsafeManagedPtrGetPtr selection
+    let target' = unsafeManagedPtrGetPtr target
+    let property' = unsafeManagedPtrGetPtr property
+    gdk_selection_send_notify requestor' selection' target' property' time
+    touchManagedPtr requestor
+    touchManagedPtr selection
+    touchManagedPtr target
+    touchManagedPtr property
+    return ()
+
+
+-- function gdk_selection_owner_set_for_display
+-- Args : [Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "send_event", 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 "gdk_selection_owner_set_for_display" gdk_selection_owner_set_for_display :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr Window ->                           -- owner : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    CInt ->                                 -- send_event : TBasicType TBoolean
+    IO CInt
+
+
+selectionOwnerSetForDisplay ::
+    (MonadIO m, DisplayK a, WindowK b) =>
+    a                                       -- display
+    -> Maybe (b)                            -- owner
+    -> Atom                                 -- selection
+    -> Word32                               -- time
+    -> Bool                                 -- sendEvent
+    -> m Bool                               -- result
+selectionOwnerSetForDisplay display owner selection time sendEvent = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    maybeOwner <- case owner of
+        Nothing -> return nullPtr
+        Just jOwner -> do
+            let jOwner' = unsafeManagedPtrCastPtr jOwner
+            return jOwner'
+    let selection' = unsafeManagedPtrGetPtr selection
+    let sendEvent' = (fromIntegral . fromEnum) sendEvent
+    result <- gdk_selection_owner_set_for_display display' maybeOwner selection' time sendEvent'
+    let result' = (/= 0) result
+    touchManagedPtr display
+    whenJust owner touchManagedPtr
+    touchManagedPtr selection
+    return result'
+
+
+-- function gdk_selection_owner_set
+-- Args : [Arg {argCName = "owner", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "send_event", 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 "gdk_selection_owner_set" gdk_selection_owner_set :: 
+    Ptr Window ->                           -- owner : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    CInt ->                                 -- send_event : TBasicType TBoolean
+    IO CInt
+
+
+selectionOwnerSet ::
+    (MonadIO m, WindowK a) =>
+    Maybe (a)                               -- owner
+    -> Atom                                 -- selection
+    -> Word32                               -- time
+    -> Bool                                 -- sendEvent
+    -> m Bool                               -- result
+selectionOwnerSet owner selection time sendEvent = liftIO $ do
+    maybeOwner <- case owner of
+        Nothing -> return nullPtr
+        Just jOwner -> do
+            let jOwner' = unsafeManagedPtrCastPtr jOwner
+            return jOwner'
+    let selection' = unsafeManagedPtrGetPtr selection
+    let sendEvent' = (fromIntegral . fromEnum) sendEvent
+    result <- gdk_selection_owner_set maybeOwner selection' time sendEvent'
+    let result' = (/= 0) result
+    whenJust owner touchManagedPtr
+    touchManagedPtr selection
+    return result'
+
+
+-- function gdk_selection_owner_get_for_display
+-- Args : [Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_selection_owner_get_for_display" gdk_selection_owner_get_for_display :: 
+    Ptr Display ->                          -- display : TInterface "Gdk" "Display"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    IO (Ptr Window)
+
+
+selectionOwnerGetForDisplay ::
+    (MonadIO m, DisplayK a) =>
+    a                                       -- display
+    -> Atom                                 -- selection
+    -> m Window                             -- result
+selectionOwnerGetForDisplay display selection = liftIO $ do
+    let display' = unsafeManagedPtrCastPtr display
+    let selection' = unsafeManagedPtrGetPtr selection
+    result <- gdk_selection_owner_get_for_display display' selection'
+    checkUnexpectedReturnNULL "gdk_selection_owner_get_for_display" result
+    result' <- (newObject Window) result
+    touchManagedPtr display
+    touchManagedPtr selection
+    return result'
+
+
+-- function gdk_selection_owner_get
+-- Args : [Arg {argCName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_selection_owner_get" gdk_selection_owner_get :: 
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    IO (Ptr Window)
+
+
+selectionOwnerGet ::
+    (MonadIO m) =>
+    Atom                                    -- selection
+    -> m Window                             -- result
+selectionOwnerGet selection = liftIO $ do
+    let selection' = unsafeManagedPtrGetPtr selection
+    result <- gdk_selection_owner_get selection'
+    checkUnexpectedReturnNULL "gdk_selection_owner_get" result
+    result' <- (newObject Window) result
+    touchManagedPtr selection
+    return result'
+
+
+-- function gdk_selection_convert
+-- Args : [Arg {argCName = "requestor", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", 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 "gdk_selection_convert" gdk_selection_convert :: 
+    Ptr Window ->                           -- requestor : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- selection : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- target : TInterface "Gdk" "Atom"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+selectionConvert ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- requestor
+    -> Atom                                 -- selection
+    -> Atom                                 -- target
+    -> Word32                               -- time
+    -> m ()                                 -- result
+selectionConvert requestor selection target time = liftIO $ do
+    let requestor' = unsafeManagedPtrCastPtr requestor
+    let selection' = unsafeManagedPtrGetPtr selection
+    let target' = unsafeManagedPtrGetPtr target
+    gdk_selection_convert requestor' selection' target' time
+    touchManagedPtr requestor
+    touchManagedPtr selection
+    touchManagedPtr target
+    return ()
+
+
+-- function gdk_query_visual_types
+-- Args : [Arg {argCName = "visual_types", argType = TCArray False (-1) 1 (TInterface "Gdk" "VisualType"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_query_visual_types" gdk_query_visual_types :: 
+    Ptr (Ptr CUInt) ->                      -- visual_types : TCArray False (-1) 1 (TInterface "Gdk" "VisualType")
+    Ptr Int32 ->                            -- count : TBasicType TInt32
+    IO ()
+
+
+queryVisualTypes ::
+    (MonadIO m) =>
+    m ([VisualType])                        -- result
+queryVisualTypes  = liftIO $ do
+    visualTypes <- allocMem :: IO (Ptr (Ptr CUInt))
+    count <- allocMem :: IO (Ptr Int32)
+    gdk_query_visual_types visualTypes count
+    count' <- peek count
+    visualTypes' <- peek visualTypes
+    visualTypes'' <- (unpackStorableArrayWithLength count') visualTypes'
+    let visualTypes''' = map (toEnum . fromIntegral) visualTypes''
+    freeMem visualTypes
+    freeMem count
+    return visualTypes'''
+
+
+-- function gdk_query_depths
+-- Args : [Arg {argCName = "depths", argType = TCArray False (-1) 1 (TBasicType TInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "count", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_query_depths" gdk_query_depths :: 
+    Ptr (Ptr Int32) ->                      -- depths : TCArray False (-1) 1 (TBasicType TInt32)
+    Ptr Int32 ->                            -- count : TBasicType TInt32
+    IO ()
+
+
+queryDepths ::
+    (MonadIO m) =>
+    m ([Int32])                             -- result
+queryDepths  = liftIO $ do
+    depths <- allocMem :: IO (Ptr (Ptr Int32))
+    count <- allocMem :: IO (Ptr Int32)
+    gdk_query_depths depths count
+    count' <- peek count
+    depths' <- peek depths
+    depths'' <- (unpackStorableArrayWithLength count') depths'
+    freeMem depths
+    freeMem count
+    return depths''
+
+
+-- function gdk_property_get
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "length", argType = TBasicType TUInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pdelete", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "actual_property_type", argType = TInterface "Gdk" "Atom", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing},Arg {argCName = "actual_format", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "actual_length", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "data", argType = TCArray False (-1) 8 (TBasicType TUInt8), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "actual_length", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_property_get" gdk_property_get :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
+    Ptr Atom ->                             -- type : TInterface "Gdk" "Atom"
+    Word64 ->                               -- offset : TBasicType TUInt64
+    Word64 ->                               -- length : TBasicType TUInt64
+    Int32 ->                                -- pdelete : TBasicType TInt32
+    Ptr (Ptr Atom) ->                       -- actual_property_type : TInterface "Gdk" "Atom"
+    Ptr Int32 ->                            -- actual_format : TBasicType TInt32
+    Ptr Int32 ->                            -- actual_length : TBasicType TInt32
+    Ptr (Ptr Word8) ->                      -- data : TCArray False (-1) 8 (TBasicType TUInt8)
+    IO CInt
+
+
+propertyGet ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> Atom                                 -- property
+    -> Atom                                 -- type_
+    -> Word64                               -- offset
+    -> Word64                               -- length_
+    -> Int32                                -- pdelete
+    -> m (Bool,Atom,Int32,ByteString)       -- result
+propertyGet window property type_ offset length_ pdelete = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let property' = unsafeManagedPtrGetPtr property
+    let type_' = unsafeManagedPtrGetPtr type_
+    actualPropertyType <- allocMem :: IO (Ptr (Ptr Atom))
+    actualFormat <- allocMem :: IO (Ptr Int32)
+    actualLength <- allocMem :: IO (Ptr Int32)
+    data_ <- allocMem :: IO (Ptr (Ptr Word8))
+    result <- gdk_property_get window' property' type_' offset length_ pdelete actualPropertyType actualFormat actualLength data_
+    actualLength' <- peek actualLength
+    let result' = (/= 0) result
+    actualPropertyType' <- peek actualPropertyType
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    actualPropertyType'' <- (\x -> Atom <$> newForeignPtr_ x) actualPropertyType'
+    actualFormat' <- peek actualFormat
+    data_' <- peek data_
+    data_'' <- (unpackByteStringWithLength actualLength') data_'
+    freeMem data_'
+    touchManagedPtr window
+    touchManagedPtr property
+    touchManagedPtr type_
+    freeMem actualPropertyType
+    freeMem actualFormat
+    freeMem actualLength
+    freeMem data_
+    return (result', actualPropertyType'', actualFormat', data_'')
+
+
+-- function gdk_property_delete
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "property", argType = TInterface "Gdk" "Atom", 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 "gdk_property_delete" gdk_property_delete :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Ptr Atom ->                             -- property : TInterface "Gdk" "Atom"
+    IO ()
+
+
+propertyDelete ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> Atom                                 -- property
+    -> m ()                                 -- result
+propertyDelete window property = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let property' = unsafeManagedPtrGetPtr property
+    gdk_property_delete window' property'
+    touchManagedPtr window
+    touchManagedPtr property
+    return ()
+
+
+-- function gdk_pre_parse_libgtk_only
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pre_parse_libgtk_only" gdk_pre_parse_libgtk_only :: 
+    IO ()
+
+{-# DEPRECATED preParseLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
+preParseLibgtkOnly ::
+    (MonadIO m) =>
+    m ()                                    -- result
+preParseLibgtkOnly  = liftIO $ do
+    gdk_pre_parse_libgtk_only
+    return ()
+
+
+-- function gdk_pointer_ungrab
+-- Args : [Arg {argCName = "time_", 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 "gdk_pointer_ungrab" gdk_pointer_ungrab :: 
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+{-# DEPRECATED pointerUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
+pointerUngrab ::
+    (MonadIO m) =>
+    Word32                                  -- time
+    -> m ()                                 -- result
+pointerUngrab time = liftIO $ do
+    gdk_pointer_ungrab time
+    return ()
+
+
+-- function gdk_pointer_is_grabbed
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pointer_is_grabbed" gdk_pointer_is_grabbed :: 
+    IO CInt
+
+{-# DEPRECATED pointerIsGrabbed ["(Since version 3.0)","Use gdk_display_device_is_grabbed() instead."]#-}
+pointerIsGrabbed ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+pointerIsGrabbed  = liftIO $ do
+    result <- gdk_pointer_is_grabbed
+    let result' = (/= 0) result
+    return result'
+
+
+-- function gdk_pointer_grab
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "confine_to", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "GrabStatus"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pointer_grab" gdk_pointer_grab :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    CInt ->                                 -- owner_events : TBasicType TBoolean
+    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
+    Ptr Window ->                           -- confine_to : TInterface "Gdk" "Window"
+    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO CUInt
+
+{-# DEPRECATED pointerGrab ["(Since version 3.0)","Use gdk_device_grab() instead."]#-}
+pointerGrab ::
+    (MonadIO m, WindowK a, WindowK b, CursorK c) =>
+    a                                       -- window
+    -> Bool                                 -- ownerEvents
+    -> [EventMask]                          -- eventMask
+    -> Maybe (b)                            -- confineTo
+    -> Maybe (c)                            -- cursor
+    -> Word32                               -- time
+    -> m GrabStatus                         -- result
+pointerGrab window ownerEvents eventMask confineTo cursor time = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let ownerEvents' = (fromIntegral . fromEnum) ownerEvents
+    let eventMask' = gflagsToWord eventMask
+    maybeConfineTo <- case confineTo of
+        Nothing -> return nullPtr
+        Just jConfineTo -> do
+            let jConfineTo' = unsafeManagedPtrCastPtr jConfineTo
+            return jConfineTo'
+    maybeCursor <- case cursor of
+        Nothing -> return nullPtr
+        Just jCursor -> do
+            let jCursor' = unsafeManagedPtrCastPtr jCursor
+            return jCursor'
+    result <- gdk_pointer_grab window' ownerEvents' eventMask' maybeConfineTo maybeCursor time
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr window
+    whenJust confineTo touchManagedPtr
+    whenJust cursor touchManagedPtr
+    return result'
+
+
+-- function gdk_pixbuf_get_from_window
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GdkPixbuf" "Pixbuf"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pixbuf_get_from_window" gdk_pixbuf_get_from_window :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Int32 ->                                -- src_x : TBasicType TInt32
+    Int32 ->                                -- src_y : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO (Ptr GdkPixbuf.Pixbuf)
+
+
+pixbufGetFromWindow ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> Int32                                -- srcX
+    -> Int32                                -- srcY
+    -> Int32                                -- width
+    -> Int32                                -- height
+    -> m GdkPixbuf.Pixbuf                   -- result
+pixbufGetFromWindow window srcX srcY width height = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    result <- gdk_pixbuf_get_from_window window' srcX srcY width height
+    checkUnexpectedReturnNULL "gdk_pixbuf_get_from_window" result
+    result' <- (wrapObject GdkPixbuf.Pixbuf) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_pixbuf_get_from_surface
+-- Args : [Arg {argCName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "GdkPixbuf" "Pixbuf"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pixbuf_get_from_surface" gdk_pixbuf_get_from_surface :: 
+    Ptr Cairo.Surface ->                    -- surface : TInterface "cairo" "Surface"
+    Int32 ->                                -- src_x : TBasicType TInt32
+    Int32 ->                                -- src_y : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO (Ptr GdkPixbuf.Pixbuf)
+
+
+pixbufGetFromSurface ::
+    (MonadIO m) =>
+    Cairo.Surface                           -- surface
+    -> Int32                                -- srcX
+    -> Int32                                -- srcY
+    -> Int32                                -- width
+    -> Int32                                -- height
+    -> m GdkPixbuf.Pixbuf                   -- result
+pixbufGetFromSurface surface srcX srcY width height = liftIO $ do
+    let surface' = unsafeManagedPtrGetPtr surface
+    result <- gdk_pixbuf_get_from_surface surface' srcX srcY width height
+    checkUnexpectedReturnNULL "gdk_pixbuf_get_from_surface" result
+    result' <- (wrapObject GdkPixbuf.Pixbuf) result
+    touchManagedPtr surface
+    return result'
+
+
+-- function gdk_parse_args
+-- Args : [Arg {argCName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_parse_args" gdk_parse_args :: 
+    Ptr Int32 ->                            -- argc : TBasicType TInt32
+    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
+    IO ()
+
+
+parseArgs ::
+    (MonadIO m) =>
+    [T.Text]                                -- argv
+    -> m ([T.Text])                         -- result
+parseArgs argv = liftIO $ do
+    let argc = fromIntegral $ length argv
+    argc' <- allocMem :: IO (Ptr Int32)
+    poke argc' argc
+    argv' <- packUTF8CArray argv
+    argv'' <- allocMem :: IO (Ptr (Ptr CString))
+    poke argv'' argv'
+    gdk_parse_args argc' argv''
+    argc'' <- peek argc'
+    argv''' <- peek argv''
+    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
+    (mapCArrayWithLength argc'') freeMem argv'''
+    freeMem argv'''
+    freeMem argc'
+    freeMem argv''
+    return argv''''
+
+
+-- function gdk_pango_context_get_for_screen
+-- Args : [Arg {argCName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Pango" "Context"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pango_context_get_for_screen" gdk_pango_context_get_for_screen :: 
+    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
+    IO (Ptr Pango.Context)
+
+
+pangoContextGetForScreen ::
+    (MonadIO m, ScreenK a) =>
+    a                                       -- screen
+    -> m Pango.Context                      -- result
+pangoContextGetForScreen screen = liftIO $ do
+    let screen' = unsafeManagedPtrCastPtr screen
+    result <- gdk_pango_context_get_for_screen screen'
+    checkUnexpectedReturnNULL "gdk_pango_context_get_for_screen" result
+    result' <- (wrapObject Pango.Context) result
+    touchManagedPtr screen
+    return result'
+
+
+-- function gdk_pango_context_get
+-- Args : []
+-- Lengths : []
+-- returnType : TInterface "Pango" "Context"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_pango_context_get" gdk_pango_context_get :: 
+    IO (Ptr Pango.Context)
+
+
+pangoContextGet ::
+    (MonadIO m) =>
+    m Pango.Context                         -- result
+pangoContextGet  = liftIO $ do
+    result <- gdk_pango_context_get
+    checkUnexpectedReturnNULL "gdk_pango_context_get" result
+    result' <- (wrapObject Pango.Context) result
+    return result'
+
+
+-- function gdk_offscreen_window_set_embedder
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "embedder", argType = TInterface "Gdk" "Window", 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 "gdk_offscreen_window_set_embedder" gdk_offscreen_window_set_embedder :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Ptr Window ->                           -- embedder : TInterface "Gdk" "Window"
+    IO ()
+
+
+offscreenWindowSetEmbedder ::
+    (MonadIO m, WindowK a, WindowK b) =>
+    a                                       -- window
+    -> b                                    -- embedder
+    -> m ()                                 -- result
+offscreenWindowSetEmbedder window embedder = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let embedder' = unsafeManagedPtrCastPtr embedder
+    gdk_offscreen_window_set_embedder window' embedder'
+    touchManagedPtr window
+    touchManagedPtr embedder
+    return ()
+
+
+-- function gdk_offscreen_window_get_surface
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "cairo" "Surface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_offscreen_window_get_surface" gdk_offscreen_window_get_surface :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Surface)
+
+
+offscreenWindowGetSurface ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> m Cairo.Surface                      -- result
+offscreenWindowGetSurface window = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    result <- gdk_offscreen_window_get_surface window'
+    checkUnexpectedReturnNULL "gdk_offscreen_window_get_surface" result
+    result' <- (newBoxed Cairo.Surface) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_offscreen_window_get_embedder
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_offscreen_window_get_embedder" gdk_offscreen_window_get_embedder :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+offscreenWindowGetEmbedder ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> m Window                             -- result
+offscreenWindowGetEmbedder window = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    result <- gdk_offscreen_window_get_embedder window'
+    checkUnexpectedReturnNULL "gdk_offscreen_window_get_embedder" result
+    result' <- (newObject Window) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_notify_startup_complete_with_id
+-- Args : [Arg {argCName = "startup_id", 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 "gdk_notify_startup_complete_with_id" gdk_notify_startup_complete_with_id :: 
+    CString ->                              -- startup_id : TBasicType TUTF8
+    IO ()
+
+
+notifyStartupCompleteWithId ::
+    (MonadIO m) =>
+    T.Text                                  -- startupId
+    -> m ()                                 -- result
+notifyStartupCompleteWithId startupId = liftIO $ do
+    startupId' <- textToCString startupId
+    gdk_notify_startup_complete_with_id startupId'
+    freeMem startupId'
+    return ()
+
+
+-- function gdk_notify_startup_complete
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_notify_startup_complete" gdk_notify_startup_complete :: 
+    IO ()
+
+
+notifyStartupComplete ::
+    (MonadIO m) =>
+    m ()                                    -- result
+notifyStartupComplete  = liftIO $ do
+    gdk_notify_startup_complete
+    return ()
+
+
+-- function gdk_list_visuals
+-- Args : []
+-- Lengths : []
+-- returnType : TGList (TInterface "Gdk" "Visual")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_list_visuals" gdk_list_visuals :: 
+    IO (Ptr (GList (Ptr Visual)))
+
+
+listVisuals ::
+    (MonadIO m) =>
+    m [Visual]                              -- result
+listVisuals  = liftIO $ do
+    result <- gdk_list_visuals
+    checkUnexpectedReturnNULL "gdk_list_visuals" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Visual) result'
+    g_list_free result
+    return result''
+
+
+-- function gdk_keyval_to_upper
+-- Args : [Arg {argCName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_to_upper" gdk_keyval_to_upper :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO Word32
+
+
+keyvalToUpper ::
+    (MonadIO m) =>
+    Word32                                  -- keyval
+    -> m Word32                             -- result
+keyvalToUpper keyval = liftIO $ do
+    result <- gdk_keyval_to_upper keyval
+    return result
+
+
+-- function gdk_keyval_to_unicode
+-- Args : [Arg {argCName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_to_unicode" gdk_keyval_to_unicode :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO Word32
+
+
+keyvalToUnicode ::
+    (MonadIO m) =>
+    Word32                                  -- keyval
+    -> m Word32                             -- result
+keyvalToUnicode keyval = liftIO $ do
+    result <- gdk_keyval_to_unicode keyval
+    return result
+
+
+-- function gdk_keyval_to_lower
+-- Args : [Arg {argCName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_to_lower" gdk_keyval_to_lower :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO Word32
+
+
+keyvalToLower ::
+    (MonadIO m) =>
+    Word32                                  -- keyval
+    -> m Word32                             -- result
+keyvalToLower keyval = liftIO $ do
+    result <- gdk_keyval_to_lower keyval
+    return result
+
+
+-- function gdk_keyval_name
+-- Args : [Arg {argCName = "keyval", 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 "gdk_keyval_name" gdk_keyval_name :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO CString
+
+
+keyvalName ::
+    (MonadIO m) =>
+    Word32                                  -- keyval
+    -> m T.Text                             -- result
+keyvalName keyval = liftIO $ do
+    result <- gdk_keyval_name keyval
+    checkUnexpectedReturnNULL "gdk_keyval_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function gdk_keyval_is_upper
+-- Args : [Arg {argCName = "keyval", 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 "gdk_keyval_is_upper" gdk_keyval_is_upper :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO CInt
+
+
+keyvalIsUpper ::
+    (MonadIO m) =>
+    Word32                                  -- keyval
+    -> m Bool                               -- result
+keyvalIsUpper keyval = liftIO $ do
+    result <- gdk_keyval_is_upper keyval
+    let result' = (/= 0) result
+    return result'
+
+
+-- function gdk_keyval_is_lower
+-- Args : [Arg {argCName = "keyval", 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 "gdk_keyval_is_lower" gdk_keyval_is_lower :: 
+    Word32 ->                               -- keyval : TBasicType TUInt32
+    IO CInt
+
+
+keyvalIsLower ::
+    (MonadIO m) =>
+    Word32                                  -- keyval
+    -> m Bool                               -- result
+keyvalIsLower keyval = liftIO $ do
+    result <- gdk_keyval_is_lower keyval
+    let result' = (/= 0) result
+    return result'
+
+
+-- function gdk_keyval_from_name
+-- Args : [Arg {argCName = "keyval_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TUInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_from_name" gdk_keyval_from_name :: 
+    CString ->                              -- keyval_name : TBasicType TUTF8
+    IO Word32
+
+
+keyvalFromName ::
+    (MonadIO m) =>
+    T.Text                                  -- keyvalName
+    -> m Word32                             -- result
+keyvalFromName keyvalName = liftIO $ do
+    keyvalName' <- textToCString keyvalName
+    result <- gdk_keyval_from_name keyvalName'
+    freeMem keyvalName'
+    return result
+
+
+-- function gdk_keyval_convert_case
+-- Args : [Arg {argCName = "symbol", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "lower", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "upper", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyval_convert_case" gdk_keyval_convert_case :: 
+    Word32 ->                               -- symbol : TBasicType TUInt32
+    Ptr Word32 ->                           -- lower : TBasicType TUInt32
+    Ptr Word32 ->                           -- upper : TBasicType TUInt32
+    IO ()
+
+
+keyvalConvertCase ::
+    (MonadIO m) =>
+    Word32                                  -- symbol
+    -> m (Word32,Word32)                    -- result
+keyvalConvertCase symbol = liftIO $ do
+    lower <- allocMem :: IO (Ptr Word32)
+    upper <- allocMem :: IO (Ptr Word32)
+    gdk_keyval_convert_case symbol lower upper
+    lower' <- peek lower
+    upper' <- peek upper
+    freeMem lower
+    freeMem upper
+    return (lower', upper')
+
+
+-- function gdk_keyboard_ungrab
+-- Args : [Arg {argCName = "time_", 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 "gdk_keyboard_ungrab" gdk_keyboard_ungrab :: 
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+{-# DEPRECATED keyboardUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
+keyboardUngrab ::
+    (MonadIO m) =>
+    Word32                                  -- time
+    -> m ()                                 -- result
+keyboardUngrab time = liftIO $ do
+    gdk_keyboard_ungrab time
+    return ()
+
+
+-- function gdk_keyboard_grab
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "GrabStatus"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_keyboard_grab" gdk_keyboard_grab :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    CInt ->                                 -- owner_events : TBasicType TBoolean
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO CUInt
+
+{-# DEPRECATED keyboardGrab ["(Since version 3.0)","Use gdk_device_grab() instead."]#-}
+keyboardGrab ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> Bool                                 -- ownerEvents
+    -> Word32                               -- time
+    -> m GrabStatus                         -- result
+keyboardGrab window ownerEvents time = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let ownerEvents' = (fromIntegral . fromEnum) ownerEvents
+    result <- gdk_keyboard_grab window' ownerEvents' time
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_init_check
+-- Args : [Arg {argCName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_init_check" gdk_init_check :: 
+    Ptr Int32 ->                            -- argc : TBasicType TInt32
+    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
+    IO CInt
+
+
+initCheck ::
+    (MonadIO m) =>
+    [T.Text]                                -- argv
+    -> m (Bool,[T.Text])                    -- result
+initCheck argv = liftIO $ do
+    let argc = fromIntegral $ length argv
+    argc' <- allocMem :: IO (Ptr Int32)
+    poke argc' argc
+    argv' <- packUTF8CArray argv
+    argv'' <- allocMem :: IO (Ptr (Ptr CString))
+    poke argv'' argv'
+    result <- gdk_init_check argc' argv''
+    argc'' <- peek argc'
+    let result' = (/= 0) result
+    argv''' <- peek argv''
+    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
+    (mapCArrayWithLength argc'') freeMem argv'''
+    freeMem argv'''
+    freeMem argc'
+    freeMem argv''
+    return (result', argv'''')
+
+
+-- function gdk_init
+-- Args : [Arg {argCName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "argv", argType = TCArray False (-1) 0 (TBasicType TUTF8), direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "argc", argType = TBasicType TInt32, direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_init" gdk_init :: 
+    Ptr Int32 ->                            -- argc : TBasicType TInt32
+    Ptr (Ptr CString) ->                    -- argv : TCArray False (-1) 0 (TBasicType TUTF8)
+    IO ()
+
+
+init ::
+    (MonadIO m) =>
+    [T.Text]                                -- argv
+    -> m ([T.Text])                         -- result
+init argv = liftIO $ do
+    let argc = fromIntegral $ length argv
+    argc' <- allocMem :: IO (Ptr Int32)
+    poke argc' argc
+    argv' <- packUTF8CArray argv
+    argv'' <- allocMem :: IO (Ptr (Ptr CString))
+    poke argv'' argv'
+    gdk_init argc' argv''
+    argc'' <- peek argc'
+    argv''' <- peek argv''
+    argv'''' <- (unpackUTF8CArrayWithLength argc'') argv'''
+    (mapCArrayWithLength argc'') freeMem argv'''
+    freeMem argv'''
+    freeMem argc'
+    freeMem argv''
+    return argv''''
+
+
+-- function gdk_get_show_events
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_get_show_events" gdk_get_show_events :: 
+    IO CInt
+
+
+getShowEvents ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+getShowEvents  = liftIO $ do
+    result <- gdk_get_show_events
+    let result' = (/= 0) result
+    return result'
+
+
+-- function gdk_get_program_class
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_get_program_class" gdk_get_program_class :: 
+    IO CString
+
+
+getProgramClass ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getProgramClass  = liftIO $ do
+    result <- gdk_get_program_class
+    checkUnexpectedReturnNULL "gdk_get_program_class" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function gdk_get_display_arg_name
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_get_display_arg_name" gdk_get_display_arg_name :: 
+    IO CString
+
+
+getDisplayArgName ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getDisplayArgName  = liftIO $ do
+    result <- gdk_get_display_arg_name
+    checkUnexpectedReturnNULL "gdk_get_display_arg_name" result
+    result' <- cstringToText result
+    return result'
+
+
+-- function gdk_get_display
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TUTF8
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_get_display" gdk_get_display :: 
+    IO CString
+
+{-# DEPRECATED getDisplay ["(Since version 3.8)","Call gdk_display_get_name (gdk_display_get_default ()))","   instead."]#-}
+getDisplay ::
+    (MonadIO m) =>
+    m T.Text                                -- result
+getDisplay  = liftIO $ do
+    result <- gdk_get_display
+    checkUnexpectedReturnNULL "gdk_get_display" result
+    result' <- cstringToText result
+    freeMem result
+    return result'
+
+
+-- function gdk_get_default_root_window
+-- Args : []
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_get_default_root_window" gdk_get_default_root_window :: 
+    IO (Ptr Window)
+
+
+getDefaultRootWindow ::
+    (MonadIO m) =>
+    m Window                                -- result
+getDefaultRootWindow  = liftIO $ do
+    result <- gdk_get_default_root_window
+    checkUnexpectedReturnNULL "gdk_get_default_root_window" result
+    result' <- (newObject Window) result
+    return result'
+
+
+-- function gdk_flush
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_flush" gdk_flush :: 
+    IO ()
+
+
+flush ::
+    (MonadIO m) =>
+    m ()                                    -- result
+flush  = liftIO $ do
+    gdk_flush
+    return ()
+
+
+-- function gdk_events_pending
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_events_pending" gdk_events_pending :: 
+    IO CInt
+
+
+eventsPending ::
+    (MonadIO m) =>
+    m Bool                                  -- result
+eventsPending  = liftIO $ do
+    result <- gdk_events_pending
+    let result' = (/= 0) result
+    return result'
+
+
+-- function gdk_events_get_distance
+-- Args : [Arg {argCName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "distance", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_events_get_distance" gdk_events_get_distance :: 
+    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
+    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
+    Ptr CDouble ->                          -- distance : TBasicType TDouble
+    IO CInt
+
+
+eventsGetDistance ::
+    (MonadIO m) =>
+    Event                                   -- event1
+    -> Event                                -- event2
+    -> m (Bool,Double)                      -- result
+eventsGetDistance event1 event2 = liftIO $ do
+    let event1' = unsafeManagedPtrGetPtr event1
+    let event2' = unsafeManagedPtrGetPtr event2
+    distance <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_events_get_distance event1' event2' distance
+    let result' = (/= 0) result
+    distance' <- peek distance
+    let distance'' = realToFrac distance'
+    touchManagedPtr event1
+    touchManagedPtr event2
+    freeMem distance
+    return (result', distance'')
+
+
+-- function gdk_events_get_center
+-- Args : [Arg {argCName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_events_get_center" gdk_events_get_center :: 
+    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
+    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
+    Ptr CDouble ->                          -- x : TBasicType TDouble
+    Ptr CDouble ->                          -- y : TBasicType TDouble
+    IO CInt
+
+
+eventsGetCenter ::
+    (MonadIO m) =>
+    Event                                   -- event1
+    -> Event                                -- event2
+    -> m (Bool,Double,Double)               -- result
+eventsGetCenter event1 event2 = liftIO $ do
+    let event1' = unsafeManagedPtrGetPtr event1
+    let event2' = unsafeManagedPtrGetPtr event2
+    x <- allocMem :: IO (Ptr CDouble)
+    y <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_events_get_center event1' event2' x y
+    let result' = (/= 0) result
+    x' <- peek x
+    let x'' = realToFrac x'
+    y' <- peek y
+    let y'' = realToFrac y'
+    touchManagedPtr event1
+    touchManagedPtr event2
+    freeMem x
+    freeMem y
+    return (result', x'', y'')
+
+
+-- function gdk_events_get_angle
+-- Args : [Arg {argCName = "event1", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event2", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "angle", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_events_get_angle" gdk_events_get_angle :: 
+    Ptr Event ->                            -- event1 : TInterface "Gdk" "Event"
+    Ptr Event ->                            -- event2 : TInterface "Gdk" "Event"
+    Ptr CDouble ->                          -- angle : TBasicType TDouble
+    IO CInt
+
+
+eventsGetAngle ::
+    (MonadIO m) =>
+    Event                                   -- event1
+    -> Event                                -- event2
+    -> m (Bool,Double)                      -- result
+eventsGetAngle event1 event2 = liftIO $ do
+    let event1' = unsafeManagedPtrGetPtr event1
+    let event2' = unsafeManagedPtrGetPtr event2
+    angle <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_events_get_angle event1' event2' angle
+    let result' = (/= 0) result
+    angle' <- peek angle
+    let angle'' = realToFrac angle'
+    touchManagedPtr event1
+    touchManagedPtr event2
+    freeMem angle
+    return (result', angle'')
+
+
+-- function gdk_error_trap_push
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_error_trap_push" gdk_error_trap_push :: 
+    IO ()
+
+
+errorTrapPush ::
+    (MonadIO m) =>
+    m ()                                    -- result
+errorTrapPush  = liftIO $ do
+    gdk_error_trap_push
+    return ()
+
+
+-- function gdk_error_trap_pop_ignored
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_error_trap_pop_ignored" gdk_error_trap_pop_ignored :: 
+    IO ()
+
+
+errorTrapPopIgnored ::
+    (MonadIO m) =>
+    m ()                                    -- result
+errorTrapPopIgnored  = liftIO $ do
+    gdk_error_trap_pop_ignored
+    return ()
+
+
+-- function gdk_error_trap_pop
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_error_trap_pop" gdk_error_trap_pop :: 
+    IO Int32
+
+
+errorTrapPop ::
+    (MonadIO m) =>
+    m Int32                                 -- result
+errorTrapPop  = liftIO $ do
+    result <- gdk_error_trap_pop
+    return result
+
+
+-- function gdk_drop_reply
+-- Args : [Arg {argCName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accepted", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", 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 "gdk_drop_reply" gdk_drop_reply :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    CInt ->                                 -- accepted : TBasicType TBoolean
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+dropReply ::
+    (MonadIO m, DragContextK a) =>
+    a                                       -- context
+    -> Bool                                 -- accepted
+    -> Word32                               -- time
+    -> m ()                                 -- result
+dropReply context accepted time = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    let accepted' = (fromIntegral . fromEnum) accepted
+    gdk_drop_reply context' accepted' time
+    touchManagedPtr context
+    return ()
+
+
+-- function gdk_drop_finish
+-- Args : [Arg {argCName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "success", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", 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 "gdk_drop_finish" gdk_drop_finish :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    CInt ->                                 -- success : TBasicType TBoolean
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+dropFinish ::
+    (MonadIO m, DragContextK a) =>
+    a                                       -- context
+    -> Bool                                 -- success
+    -> Word32                               -- time
+    -> m ()                                 -- result
+dropFinish context success time = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    let success' = (fromIntegral . fromEnum) success
+    gdk_drop_finish context' success' time
+    touchManagedPtr context
+    return ()
+
+
+-- function gdk_drag_status
+-- Args : [Arg {argCName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", 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 "gdk_drag_status" gdk_drag_status :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    CUInt ->                                -- action : TInterface "Gdk" "DragAction"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+dragStatus ::
+    (MonadIO m, DragContextK a) =>
+    a                                       -- context
+    -> [DragAction]                         -- action
+    -> Word32                               -- time
+    -> m ()                                 -- result
+dragStatus context action time = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    let action' = gflagsToWord action
+    gdk_drag_status context' action' time
+    touchManagedPtr context
+    return ()
+
+
+-- function gdk_drag_motion
+-- Args : [Arg {argCName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "suggested_action", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "possible_actions", argType = TInterface "Gdk" "DragAction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", 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 "gdk_drag_motion" gdk_drag_motion :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    Ptr Window ->                           -- dest_window : TInterface "Gdk" "Window"
+    CUInt ->                                -- protocol : TInterface "Gdk" "DragProtocol"
+    Int32 ->                                -- x_root : TBasicType TInt32
+    Int32 ->                                -- y_root : TBasicType TInt32
+    CUInt ->                                -- suggested_action : TInterface "Gdk" "DragAction"
+    CUInt ->                                -- possible_actions : TInterface "Gdk" "DragAction"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO CInt
+
+
+dragMotion ::
+    (MonadIO m, DragContextK a, WindowK b) =>
+    a                                       -- context
+    -> b                                    -- destWindow
+    -> DragProtocol                         -- protocol
+    -> Int32                                -- xRoot
+    -> Int32                                -- yRoot
+    -> [DragAction]                         -- suggestedAction
+    -> [DragAction]                         -- possibleActions
+    -> Word32                               -- time
+    -> m Bool                               -- result
+dragMotion context destWindow protocol xRoot yRoot suggestedAction possibleActions time = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    let destWindow' = unsafeManagedPtrCastPtr destWindow
+    let protocol' = (fromIntegral . fromEnum) protocol
+    let suggestedAction' = gflagsToWord suggestedAction
+    let possibleActions' = gflagsToWord possibleActions
+    result <- gdk_drag_motion context' destWindow' protocol' xRoot yRoot suggestedAction' possibleActions' time
+    let result' = (/= 0) result
+    touchManagedPtr context
+    touchManagedPtr destWindow
+    return result'
+
+
+-- function gdk_drag_get_selection
+-- Args : [Arg {argCName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Atom"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_get_selection" gdk_drag_get_selection :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    IO (Ptr Atom)
+
+
+dragGetSelection ::
+    (MonadIO m, DragContextK a) =>
+    a                                       -- context
+    -> m Atom                               -- result
+dragGetSelection context = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    result <- gdk_drag_get_selection context'
+    checkUnexpectedReturnNULL "gdk_drag_get_selection" result
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    result' <- (\x -> Atom <$> newForeignPtr_ x) result
+    touchManagedPtr context
+    return result'
+
+
+-- function gdk_drag_find_window_for_screen
+-- Args : [Arg {argCName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "drag_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y_root", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest_window", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "protocol", argType = TInterface "Gdk" "DragProtocol", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_find_window_for_screen" gdk_drag_find_window_for_screen :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    Ptr Window ->                           -- drag_window : TInterface "Gdk" "Window"
+    Ptr Screen ->                           -- screen : TInterface "Gdk" "Screen"
+    Int32 ->                                -- x_root : TBasicType TInt32
+    Int32 ->                                -- y_root : TBasicType TInt32
+    Ptr (Ptr Window) ->                     -- dest_window : TInterface "Gdk" "Window"
+    Ptr CUInt ->                            -- protocol : TInterface "Gdk" "DragProtocol"
+    IO ()
+
+
+dragFindWindowForScreen ::
+    (MonadIO m, DragContextK a, WindowK b, ScreenK c) =>
+    a                                       -- context
+    -> b                                    -- dragWindow
+    -> c                                    -- screen
+    -> Int32                                -- xRoot
+    -> Int32                                -- yRoot
+    -> m (Window,DragProtocol)              -- result
+dragFindWindowForScreen context dragWindow screen xRoot yRoot = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    let dragWindow' = unsafeManagedPtrCastPtr dragWindow
+    let screen' = unsafeManagedPtrCastPtr screen
+    destWindow <- allocMem :: IO (Ptr (Ptr Window))
+    protocol <- allocMem :: IO (Ptr CUInt)
+    gdk_drag_find_window_for_screen context' dragWindow' screen' xRoot yRoot destWindow protocol
+    destWindow' <- peek destWindow
+    destWindow'' <- (wrapObject Window) destWindow'
+    protocol' <- peek protocol
+    let protocol'' = (toEnum . fromIntegral) protocol'
+    touchManagedPtr context
+    touchManagedPtr dragWindow
+    touchManagedPtr screen
+    freeMem destWindow
+    freeMem protocol
+    return (destWindow'', protocol'')
+
+
+-- function gdk_drag_drop_succeeded
+-- Args : [Arg {argCName = "context", argType = TInterface "Gdk" "DragContext", 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 "gdk_drag_drop_succeeded" gdk_drag_drop_succeeded :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    IO CInt
+
+
+dragDropSucceeded ::
+    (MonadIO m, DragContextK a) =>
+    a                                       -- context
+    -> m Bool                               -- result
+dragDropSucceeded context = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    result <- gdk_drag_drop_succeeded context'
+    let result' = (/= 0) result
+    touchManagedPtr context
+    return result'
+
+
+-- function gdk_drag_drop
+-- Args : [Arg {argCName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", 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 "gdk_drag_drop" gdk_drag_drop :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+dragDrop ::
+    (MonadIO m, DragContextK a) =>
+    a                                       -- context
+    -> Word32                               -- time
+    -> m ()                                 -- result
+dragDrop context time = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    gdk_drag_drop context' time
+    touchManagedPtr context
+    return ()
+
+
+-- function gdk_drag_begin_for_device
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "DragContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_begin_for_device" gdk_drag_begin_for_device :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Ptr (GList (Ptr Atom)) ->               -- targets : TGList (TInterface "Gdk" "Atom")
+    IO (Ptr DragContext)
+
+
+dragBeginForDevice ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a                                       -- window
+    -> b                                    -- device
+    -> [Atom]                               -- targets
+    -> m DragContext                        -- result
+dragBeginForDevice window device targets = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let device' = unsafeManagedPtrCastPtr device
+    let targets' = map unsafeManagedPtrGetPtr targets
+    targets'' <- packGList targets'
+    result <- gdk_drag_begin_for_device window' device' targets''
+    checkUnexpectedReturnNULL "gdk_drag_begin_for_device" result
+    result' <- (wrapObject DragContext) result
+    touchManagedPtr window
+    touchManagedPtr device
+    mapM_ touchManagedPtr targets
+    g_list_free targets''
+    return result'
+
+
+-- function gdk_drag_begin
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "targets", argType = TGList (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "DragContext"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_drag_begin" gdk_drag_begin :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Ptr (GList (Ptr Atom)) ->               -- targets : TGList (TInterface "Gdk" "Atom")
+    IO (Ptr DragContext)
+
+
+dragBegin ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> [Atom]                               -- targets
+    -> m DragContext                        -- result
+dragBegin window targets = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    let targets' = map unsafeManagedPtrGetPtr targets
+    targets'' <- packGList targets'
+    result <- gdk_drag_begin window' targets''
+    checkUnexpectedReturnNULL "gdk_drag_begin" result
+    result' <- (wrapObject DragContext) result
+    touchManagedPtr window
+    mapM_ touchManagedPtr targets
+    g_list_free targets''
+    return result'
+
+
+-- function gdk_drag_abort
+-- Args : [Arg {argCName = "context", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", 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 "gdk_drag_abort" gdk_drag_abort :: 
+    Ptr DragContext ->                      -- context : TInterface "Gdk" "DragContext"
+    Word32 ->                               -- time_ : TBasicType TUInt32
+    IO ()
+
+
+dragAbort ::
+    (MonadIO m, DragContextK a) =>
+    a                                       -- context
+    -> Word32                               -- time
+    -> m ()                                 -- result
+dragAbort context time = liftIO $ do
+    let context' = unsafeManagedPtrCastPtr context
+    gdk_drag_abort context' time
+    touchManagedPtr context
+    return ()
+
+
+-- function gdk_disable_multidevice
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_disable_multidevice" gdk_disable_multidevice :: 
+    IO ()
+
+
+disableMultidevice ::
+    (MonadIO m) =>
+    m ()                                    -- result
+disableMultidevice  = liftIO $ do
+    gdk_disable_multidevice
+    return ()
+
+
+-- function gdk_cairo_surface_create_from_pixbuf
+-- Args : [Arg {argCName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "for_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "cairo" "Surface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_surface_create_from_pixbuf" gdk_cairo_surface_create_from_pixbuf :: 
+    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
+    Int32 ->                                -- scale : TBasicType TInt32
+    Ptr Window ->                           -- for_window : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Surface)
+
+
+cairoSurfaceCreateFromPixbuf ::
+    (MonadIO m, GdkPixbuf.PixbufK a, WindowK b) =>
+    a                                       -- pixbuf
+    -> Int32                                -- scale
+    -> Maybe (b)                            -- forWindow
+    -> m Cairo.Surface                      -- result
+cairoSurfaceCreateFromPixbuf pixbuf scale forWindow = liftIO $ do
+    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
+    maybeForWindow <- case forWindow of
+        Nothing -> return nullPtr
+        Just jForWindow -> do
+            let jForWindow' = unsafeManagedPtrCastPtr jForWindow
+            return jForWindow'
+    result <- gdk_cairo_surface_create_from_pixbuf pixbuf' scale maybeForWindow
+    checkUnexpectedReturnNULL "gdk_cairo_surface_create_from_pixbuf" result
+    result' <- (wrapBoxed Cairo.Surface) result
+    touchManagedPtr pixbuf
+    whenJust forWindow touchManagedPtr
+    return result'
+
+
+-- function gdk_cairo_set_source_window
+-- Args : [Arg {argCName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_set_source_window" gdk_cairo_set_source_window :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    CDouble ->                              -- x : TBasicType TDouble
+    CDouble ->                              -- y : TBasicType TDouble
+    IO ()
+
+
+cairoSetSourceWindow ::
+    (MonadIO m, WindowK a) =>
+    Cairo.Context                           -- cr
+    -> a                                    -- window
+    -> Double                               -- x
+    -> Double                               -- y
+    -> m ()                                 -- result
+cairoSetSourceWindow cr window x y = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let window' = unsafeManagedPtrCastPtr window
+    let x' = realToFrac x
+    let y' = realToFrac y
+    gdk_cairo_set_source_window cr' window' x' y'
+    touchManagedPtr cr
+    touchManagedPtr window
+    return ()
+
+
+-- function gdk_cairo_set_source_rgba
+-- Args : [Arg {argCName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rgba", argType = TInterface "Gdk" "RGBA", 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 "gdk_cairo_set_source_rgba" gdk_cairo_set_source_rgba :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr RGBA ->                             -- rgba : TInterface "Gdk" "RGBA"
+    IO ()
+
+
+cairoSetSourceRgba ::
+    (MonadIO m) =>
+    Cairo.Context                           -- cr
+    -> RGBA                                 -- rgba
+    -> m ()                                 -- result
+cairoSetSourceRgba cr rgba = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let rgba' = unsafeManagedPtrGetPtr rgba
+    gdk_cairo_set_source_rgba cr' rgba'
+    touchManagedPtr cr
+    touchManagedPtr rgba
+    return ()
+
+
+-- function gdk_cairo_set_source_pixbuf
+-- Args : [Arg {argCName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pixbuf_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pixbuf_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_set_source_pixbuf" gdk_cairo_set_source_pixbuf :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr GdkPixbuf.Pixbuf ->                 -- pixbuf : TInterface "GdkPixbuf" "Pixbuf"
+    CDouble ->                              -- pixbuf_x : TBasicType TDouble
+    CDouble ->                              -- pixbuf_y : TBasicType TDouble
+    IO ()
+
+
+cairoSetSourcePixbuf ::
+    (MonadIO m, GdkPixbuf.PixbufK a) =>
+    Cairo.Context                           -- cr
+    -> a                                    -- pixbuf
+    -> Double                               -- pixbufX
+    -> Double                               -- pixbufY
+    -> m ()                                 -- result
+cairoSetSourcePixbuf cr pixbuf pixbufX pixbufY = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let pixbuf' = unsafeManagedPtrCastPtr pixbuf
+    let pixbufX' = realToFrac pixbufX
+    let pixbufY' = realToFrac pixbufY
+    gdk_cairo_set_source_pixbuf cr' pixbuf' pixbufX' pixbufY'
+    touchManagedPtr cr
+    touchManagedPtr pixbuf
+    return ()
+
+
+-- function gdk_cairo_set_source_color
+-- Args : [Arg {argCName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TInterface "Gdk" "Color", 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 "gdk_cairo_set_source_color" gdk_cairo_set_source_color :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
+    IO ()
+
+{-# DEPRECATED cairoSetSourceColor ["(Since version 3.4)","Use gdk_cairo_set_source_rgba() instead"]#-}
+cairoSetSourceColor ::
+    (MonadIO m) =>
+    Cairo.Context                           -- cr
+    -> Color                                -- color
+    -> m ()                                 -- result
+cairoSetSourceColor cr color = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let color' = unsafeManagedPtrGetPtr color
+    gdk_cairo_set_source_color cr' color'
+    touchManagedPtr cr
+    touchManagedPtr color
+    return ()
+
+
+-- function gdk_cairo_region_create_from_surface
+-- Args : [Arg {argCName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "cairo" "Region"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_region_create_from_surface" gdk_cairo_region_create_from_surface :: 
+    Ptr Cairo.Surface ->                    -- surface : TInterface "cairo" "Surface"
+    IO (Ptr Cairo.Region)
+
+
+cairoRegionCreateFromSurface ::
+    (MonadIO m) =>
+    Cairo.Surface                           -- surface
+    -> m Cairo.Region                       -- result
+cairoRegionCreateFromSurface surface = liftIO $ do
+    let surface' = unsafeManagedPtrGetPtr surface
+    result <- gdk_cairo_region_create_from_surface surface'
+    checkUnexpectedReturnNULL "gdk_cairo_region_create_from_surface" result
+    result' <- (wrapBoxed Cairo.Region) result
+    touchManagedPtr surface
+    return result'
+
+
+-- function gdk_cairo_region
+-- Args : [Arg {argCName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "region", argType = TInterface "cairo" "Region", 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 "gdk_cairo_region" gdk_cairo_region :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    IO ()
+
+
+cairoRegion ::
+    (MonadIO m) =>
+    Cairo.Context                           -- cr
+    -> Cairo.Region                         -- region
+    -> m ()                                 -- result
+cairoRegion cr region = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let region' = unsafeManagedPtrGetPtr region
+    gdk_cairo_region cr' region'
+    touchManagedPtr cr
+    touchManagedPtr region
+    return ()
+
+
+-- function gdk_cairo_rectangle
+-- Args : [Arg {argCName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rectangle", argType = TInterface "Gdk" "Rectangle", 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 "gdk_cairo_rectangle" gdk_cairo_rectangle :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Rectangle ->                        -- rectangle : TInterface "Gdk" "Rectangle"
+    IO ()
+
+
+cairoRectangle ::
+    (MonadIO m) =>
+    Cairo.Context                           -- cr
+    -> Rectangle                            -- rectangle
+    -> m ()                                 -- result
+cairoRectangle cr rectangle = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let rectangle' = unsafeManagedPtrGetPtr rectangle
+    gdk_cairo_rectangle cr' rectangle'
+    touchManagedPtr cr
+    touchManagedPtr rectangle
+    return ()
+
+
+-- function gdk_cairo_get_clip_rectangle
+-- Args : [Arg {argCName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_get_clip_rectangle" gdk_cairo_get_clip_rectangle :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
+    IO CInt
+
+
+cairoGetClipRectangle ::
+    (MonadIO m) =>
+    Cairo.Context                           -- cr
+    -> m (Bool,Rectangle)                   -- result
+cairoGetClipRectangle cr = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    rect <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
+    result <- gdk_cairo_get_clip_rectangle cr' rect
+    let result' = (/= 0) result
+    rect' <- (wrapBoxed Rectangle) rect
+    touchManagedPtr cr
+    return (result', rect')
+
+
+-- function gdk_cairo_draw_from_gl
+-- Args : [Arg {argCName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source_type", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "buffer_scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", 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 "gdk_cairo_draw_from_gl" gdk_cairo_draw_from_gl :: 
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    Int32 ->                                -- source : TBasicType TInt32
+    Int32 ->                                -- source_type : TBasicType TInt32
+    Int32 ->                                -- buffer_scale : TBasicType TInt32
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO ()
+
+
+cairoDrawFromGl ::
+    (MonadIO m, WindowK a) =>
+    Cairo.Context                           -- cr
+    -> a                                    -- window
+    -> Int32                                -- source
+    -> Int32                                -- sourceType
+    -> Int32                                -- bufferScale
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> Int32                                -- width
+    -> Int32                                -- height
+    -> m ()                                 -- result
+cairoDrawFromGl cr window source sourceType bufferScale x y width height = liftIO $ do
+    let cr' = unsafeManagedPtrGetPtr cr
+    let window' = unsafeManagedPtrCastPtr window
+    gdk_cairo_draw_from_gl cr' window' source sourceType bufferScale x y width height
+    touchManagedPtr cr
+    touchManagedPtr window
+    return ()
+
+
+-- function gdk_cairo_create
+-- Args : [Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "cairo" "Context"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_cairo_create" gdk_cairo_create :: 
+    Ptr Window ->                           -- window : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Context)
+
+
+cairoCreate ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- window
+    -> m Cairo.Context                      -- result
+cairoCreate window = liftIO $ do
+    let window' = unsafeManagedPtrCastPtr window
+    result <- gdk_cairo_create window'
+    checkUnexpectedReturnNULL "gdk_cairo_create" result
+    result' <- (wrapBoxed Cairo.Context) result
+    touchManagedPtr window
+    return result'
+
+
+-- function gdk_beep
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_beep" gdk_beep :: 
+    IO ()
+
+
+beep ::
+    (MonadIO m) =>
+    m ()                                    -- result
+beep  = liftIO $ do
+    gdk_beep
+    return ()
+
+
+-- function gdk_add_option_entries_libgtk_only
+-- Args : [Arg {argCName = "group", argType = TInterface "GLib" "OptionGroup", 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 "gdk_add_option_entries_libgtk_only" gdk_add_option_entries_libgtk_only :: 
+    Ptr GLib.OptionGroup ->                 -- group : TInterface "GLib" "OptionGroup"
+    IO ()
+
+{-# DEPRECATED addOptionEntriesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
+addOptionEntriesLibgtkOnly ::
+    (MonadIO m) =>
+    GLib.OptionGroup                        -- group
+    -> m ()                                 -- result
 addOptionEntriesLibgtkOnly group = liftIO $ do
     let group' = unsafeManagedPtrGetPtr group
     gdk_add_option_entries_libgtk_only group'
diff --git a/GI/Gdk/Objects.hs b/GI/Gdk/Objects.hs
--- a/GI/Gdk/Objects.hs
+++ b/GI/Gdk/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/Gdk/Objects/AppLaunchContext.hs b/GI/Gdk/Objects/AppLaunchContext.hs
--- a/GI/Gdk/Objects/AppLaunchContext.hs
+++ b/GI/Gdk/Objects/AppLaunchContext.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -21,26 +22,32 @@
 
 
 -- ** appLaunchContextSetDesktop
+    AppLaunchContextSetDesktopMethodInfo    ,
     appLaunchContextSetDesktop              ,
 
 
 -- ** appLaunchContextSetDisplay
+    AppLaunchContextSetDisplayMethodInfo    ,
     appLaunchContextSetDisplay              ,
 
 
 -- ** appLaunchContextSetIcon
+    AppLaunchContextSetIconMethodInfo       ,
     appLaunchContextSetIcon                 ,
 
 
 -- ** appLaunchContextSetIconName
+    AppLaunchContextSetIconNameMethodInfo   ,
     appLaunchContextSetIconName             ,
 
 
 -- ** appLaunchContextSetScreen
+    AppLaunchContextSetScreenMethodInfo     ,
     appLaunchContextSetScreen               ,
 
 
 -- ** appLaunchContextSetTimestamp
+    AppLaunchContextSetTimestampMethodInfo  ,
     appLaunchContextSetTimestamp            ,
 
 
@@ -90,6 +97,51 @@
 noAppLaunchContext :: Maybe AppLaunchContext
 noAppLaunchContext = Nothing
 
+type family ResolveAppLaunchContextMethod (t :: Symbol) (o :: *) :: * where
+    ResolveAppLaunchContextMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveAppLaunchContextMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveAppLaunchContextMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveAppLaunchContextMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveAppLaunchContextMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveAppLaunchContextMethod "launchFailed" o = Gio.AppLaunchContextLaunchFailedMethodInfo
+    ResolveAppLaunchContextMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveAppLaunchContextMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveAppLaunchContextMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveAppLaunchContextMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveAppLaunchContextMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveAppLaunchContextMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveAppLaunchContextMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveAppLaunchContextMethod "setenv" o = Gio.AppLaunchContextSetenvMethodInfo
+    ResolveAppLaunchContextMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveAppLaunchContextMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveAppLaunchContextMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveAppLaunchContextMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveAppLaunchContextMethod "unsetenv" o = Gio.AppLaunchContextUnsetenvMethodInfo
+    ResolveAppLaunchContextMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveAppLaunchContextMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveAppLaunchContextMethod "getDisplay" o = Gio.AppLaunchContextGetDisplayMethodInfo
+    ResolveAppLaunchContextMethod "getEnvironment" o = Gio.AppLaunchContextGetEnvironmentMethodInfo
+    ResolveAppLaunchContextMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveAppLaunchContextMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveAppLaunchContextMethod "getStartupNotifyId" o = Gio.AppLaunchContextGetStartupNotifyIdMethodInfo
+    ResolveAppLaunchContextMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveAppLaunchContextMethod "setDesktop" o = AppLaunchContextSetDesktopMethodInfo
+    ResolveAppLaunchContextMethod "setDisplay" o = AppLaunchContextSetDisplayMethodInfo
+    ResolveAppLaunchContextMethod "setIcon" o = AppLaunchContextSetIconMethodInfo
+    ResolveAppLaunchContextMethod "setIconName" o = AppLaunchContextSetIconNameMethodInfo
+    ResolveAppLaunchContextMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveAppLaunchContextMethod "setScreen" o = AppLaunchContextSetScreenMethodInfo
+    ResolveAppLaunchContextMethod "setTimestamp" o = AppLaunchContextSetTimestampMethodInfo
+    ResolveAppLaunchContextMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveAppLaunchContextMethod t AppLaunchContext, MethodInfo info AppLaunchContext p) => IsLabelProxy t (AppLaunchContext -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveAppLaunchContextMethod t AppLaunchContext, MethodInfo info AppLaunchContext p) => IsLabel t (AppLaunchContext -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- VVV Prop "display"
    -- Type: TInterface "Gdk" "Display"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
@@ -106,7 +158,7 @@
     type AttrSetTypeConstraint AppLaunchContextDisplayPropertyInfo = DisplayK
     type AttrBaseTypeConstraint AppLaunchContextDisplayPropertyInfo = AppLaunchContextK
     type AttrGetType AppLaunchContextDisplayPropertyInfo = Display
-    type AttrLabel AppLaunchContextDisplayPropertyInfo = "AppLaunchContext::display"
+    type AttrLabel AppLaunchContextDisplayPropertyInfo = "display"
     attrGet _ = getAppLaunchContextDisplay
     attrSet _ = undefined
     attrConstruct _ = constructAppLaunchContextDisplay
@@ -115,13 +167,12 @@
 type AppLaunchContextAttributeList = ('[ '("display", AppLaunchContextDisplayPropertyInfo)] :: [(Symbol, *)])
 
 type instance SignalList AppLaunchContext = AppLaunchContextSignalList
-type AppLaunchContextSignalList = ('[ '("launch-failed", Gio.AppLaunchContextLaunchFailedSignalInfo), '("launched", Gio.AppLaunchContextLaunchedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type AppLaunchContextSignalList = ('[ '("launchFailed", Gio.AppLaunchContextLaunchFailedSignalInfo), '("launched", Gio.AppLaunchContextLaunchedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method AppLaunchContext::new
 -- method type : Constructor
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "Gdk" "AppLaunchContext"
 -- throws : False
 -- Skip return : False
@@ -132,7 +183,7 @@
 {-# DEPRECATED appLaunchContextNew ["(Since version 3.0)","Use gdk_display_get_app_launch_context() instead"]#-}
 appLaunchContextNew ::
     (MonadIO m) =>
-    m AppLaunchContext
+    m AppLaunchContext                      -- result
 appLaunchContextNew  = liftIO $ do
     result <- gdk_app_launch_context_new
     checkUnexpectedReturnNULL "gdk_app_launch_context_new" result
@@ -141,9 +192,8 @@
 
 -- method AppLaunchContext::set_desktop
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desktop", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "desktop", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "desktop", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -156,20 +206,23 @@
 
 appLaunchContextSetDesktop ::
     (MonadIO m, AppLaunchContextK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- desktop
-    m ()
+    a                                       -- _obj
+    -> Int32                                -- desktop
+    -> m ()                                 -- result
 appLaunchContextSetDesktop _obj desktop = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_app_launch_context_set_desktop _obj' desktop
     touchManagedPtr _obj
     return ()
 
+data AppLaunchContextSetDesktopMethodInfo
+instance (signature ~ (Int32 -> m ()), MonadIO m, AppLaunchContextK a) => MethodInfo AppLaunchContextSetDesktopMethodInfo a signature where
+    overloadedMethod _ = appLaunchContextSetDesktop
+
 -- method AppLaunchContext::set_display
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -182,9 +235,9 @@
 {-# DEPRECATED appLaunchContextSetDisplay ["(Since version 3.0)","Use gdk_display_get_app_launch_context() instead"]#-}
 appLaunchContextSetDisplay ::
     (MonadIO m, AppLaunchContextK a, DisplayK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- display
-    m ()
+    a                                       -- _obj
+    -> b                                    -- display
+    -> m ()                                 -- result
 appLaunchContextSetDisplay _obj display = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let display' = unsafeManagedPtrCastPtr display
@@ -193,11 +246,14 @@
     touchManagedPtr display
     return ()
 
+data AppLaunchContextSetDisplayMethodInfo
+instance (signature ~ (b -> m ()), MonadIO m, AppLaunchContextK a, DisplayK b) => MethodInfo AppLaunchContextSetDisplayMethodInfo a signature where
+    overloadedMethod _ = appLaunchContextSetDisplay
+
 -- method AppLaunchContext::set_icon
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon", argType = TInterface "Gio" "Icon", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -210,9 +266,9 @@
 
 appLaunchContextSetIcon ::
     (MonadIO m, AppLaunchContextK a, Gio.IconK b) =>
-    a ->                                    -- _obj
-    Maybe (b) ->                            -- icon
-    m ()
+    a                                       -- _obj
+    -> Maybe (b)                            -- icon
+    -> m ()                                 -- result
 appLaunchContextSetIcon _obj icon = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     maybeIcon <- case icon of
@@ -225,11 +281,14 @@
     whenJust icon touchManagedPtr
     return ()
 
+data AppLaunchContextSetIconMethodInfo
+instance (signature ~ (Maybe (b) -> m ()), MonadIO m, AppLaunchContextK a, Gio.IconK b) => MethodInfo AppLaunchContextSetIconMethodInfo a signature where
+    overloadedMethod _ = appLaunchContextSetIcon
+
 -- method AppLaunchContext::set_icon_name
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "icon_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "icon_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -242,26 +301,29 @@
 
 appLaunchContextSetIconName ::
     (MonadIO m, AppLaunchContextK a) =>
-    a ->                                    -- _obj
-    Maybe (T.Text) ->                       -- icon_name
-    m ()
-appLaunchContextSetIconName _obj icon_name = liftIO $ do
+    a                                       -- _obj
+    -> Maybe (T.Text)                       -- iconName
+    -> m ()                                 -- result
+appLaunchContextSetIconName _obj iconName = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeIcon_name <- case icon_name of
+    maybeIconName <- case iconName of
         Nothing -> return nullPtr
-        Just jIcon_name -> do
-            jIcon_name' <- textToCString jIcon_name
-            return jIcon_name'
-    gdk_app_launch_context_set_icon_name _obj' maybeIcon_name
+        Just jIconName -> do
+            jIconName' <- textToCString jIconName
+            return jIconName'
+    gdk_app_launch_context_set_icon_name _obj' maybeIconName
     touchManagedPtr _obj
-    freeMem maybeIcon_name
+    freeMem maybeIconName
     return ()
 
+data AppLaunchContextSetIconNameMethodInfo
+instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m, AppLaunchContextK a) => MethodInfo AppLaunchContextSetIconNameMethodInfo a signature where
+    overloadedMethod _ = appLaunchContextSetIconName
+
 -- method AppLaunchContext::set_screen
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -274,9 +336,9 @@
 
 appLaunchContextSetScreen ::
     (MonadIO m, AppLaunchContextK a, ScreenK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- screen
-    m ()
+    a                                       -- _obj
+    -> b                                    -- screen
+    -> m ()                                 -- result
 appLaunchContextSetScreen _obj screen = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let screen' = unsafeManagedPtrCastPtr screen
@@ -285,11 +347,14 @@
     touchManagedPtr screen
     return ()
 
+data AppLaunchContextSetScreenMethodInfo
+instance (signature ~ (b -> m ()), MonadIO m, AppLaunchContextK a, ScreenK b) => MethodInfo AppLaunchContextSetScreenMethodInfo a signature where
+    overloadedMethod _ = appLaunchContextSetScreen
+
 -- method AppLaunchContext::set_timestamp
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "AppLaunchContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -302,13 +367,17 @@
 
 appLaunchContextSetTimestamp ::
     (MonadIO m, AppLaunchContextK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- timestamp
-    m ()
+    a                                       -- _obj
+    -> Word32                               -- timestamp
+    -> m ()                                 -- result
 appLaunchContextSetTimestamp _obj timestamp = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_app_launch_context_set_timestamp _obj' timestamp
     touchManagedPtr _obj
     return ()
+
+data AppLaunchContextSetTimestampMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m, AppLaunchContextK a) => MethodInfo AppLaunchContextSetTimestampMethodInfo a signature where
+    overloadedMethod _ = appLaunchContextSetTimestamp
 
 
diff --git a/GI/Gdk/Objects/AppLaunchContext.hs-boot b/GI/Gdk/Objects/AppLaunchContext.hs-boot
--- a/GI/Gdk/Objects/AppLaunchContext.hs-boot
+++ b/GI/Gdk/Objects/AppLaunchContext.hs-boot
@@ -12,3 +12,9 @@
 class GObject o => AppLaunchContextK o
 instance (GObject o, IsDescendantOf AppLaunchContext o) => AppLaunchContextK o
 data AppLaunchContextDisplayPropertyInfo
+data AppLaunchContextSetDesktopMethodInfo
+data AppLaunchContextSetDisplayMethodInfo
+data AppLaunchContextSetIconMethodInfo
+data AppLaunchContextSetIconNameMethodInfo
+data AppLaunchContextSetScreenMethodInfo
+data AppLaunchContextSetTimestampMethodInfo
diff --git a/GI/Gdk/Objects/Cursor.hs b/GI/Gdk/Objects/Cursor.hs
--- a/GI/Gdk/Objects/Cursor.hs
+++ b/GI/Gdk/Objects/Cursor.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,18 +18,22 @@
 
  -- * Methods
 -- ** cursorGetCursorType
+    CursorGetCursorTypeMethodInfo           ,
     cursorGetCursorType                     ,
 
 
 -- ** cursorGetDisplay
+    CursorGetDisplayMethodInfo              ,
     cursorGetDisplay                        ,
 
 
 -- ** cursorGetImage
+    CursorGetImageMethodInfo                ,
     cursorGetImage                          ,
 
 
 -- ** cursorGetSurface
+    CursorGetSurfaceMethodInfo              ,
     cursorGetSurface                        ,
 
 
@@ -53,10 +58,12 @@
 
 
 -- ** cursorRef
+    CursorRefMethodInfo                     ,
     cursorRef                               ,
 
 
 -- ** cursorUnref
+    CursorUnrefMethodInfo                   ,
     cursorUnref                             ,
 
 
@@ -113,6 +120,41 @@
 noCursor :: Maybe Cursor
 noCursor = Nothing
 
+type family ResolveCursorMethod (t :: Symbol) (o :: *) :: * where
+    ResolveCursorMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveCursorMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveCursorMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveCursorMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveCursorMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveCursorMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveCursorMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveCursorMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveCursorMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveCursorMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveCursorMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveCursorMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveCursorMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveCursorMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveCursorMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveCursorMethod "getCursorType" o = CursorGetCursorTypeMethodInfo
+    ResolveCursorMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveCursorMethod "getDisplay" o = CursorGetDisplayMethodInfo
+    ResolveCursorMethod "getImage" o = CursorGetImageMethodInfo
+    ResolveCursorMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveCursorMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveCursorMethod "getSurface" o = CursorGetSurfaceMethodInfo
+    ResolveCursorMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveCursorMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveCursorMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveCursorMethod t Cursor, MethodInfo info Cursor p) => IsLabelProxy t (Cursor -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveCursorMethod t Cursor, MethodInfo info Cursor p) => IsLabel t (Cursor -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- VVV Prop "cursor-type"
    -- Type: TInterface "Gdk" "CursorType"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
@@ -129,7 +171,7 @@
     type AttrSetTypeConstraint CursorCursorTypePropertyInfo = (~) CursorType
     type AttrBaseTypeConstraint CursorCursorTypePropertyInfo = CursorK
     type AttrGetType CursorCursorTypePropertyInfo = CursorType
-    type AttrLabel CursorCursorTypePropertyInfo = "Cursor::cursor-type"
+    type AttrLabel CursorCursorTypePropertyInfo = "cursor-type"
     attrGet _ = getCursorCursorType
     attrSet _ = undefined
     attrConstruct _ = constructCursorCursorType
@@ -150,22 +192,21 @@
     type AttrSetTypeConstraint CursorDisplayPropertyInfo = DisplayK
     type AttrBaseTypeConstraint CursorDisplayPropertyInfo = CursorK
     type AttrGetType CursorDisplayPropertyInfo = Display
-    type AttrLabel CursorDisplayPropertyInfo = "Cursor::display"
+    type AttrLabel CursorDisplayPropertyInfo = "display"
     attrGet _ = getCursorDisplay
     attrSet _ = undefined
     attrConstruct _ = constructCursorDisplay
 
 type instance AttributeList Cursor = CursorAttributeList
-type CursorAttributeList = ('[ '("cursor-type", CursorCursorTypePropertyInfo), '("display", CursorDisplayPropertyInfo)] :: [(Symbol, *)])
+type CursorAttributeList = ('[ '("cursorType", CursorCursorTypePropertyInfo), '("display", CursorDisplayPropertyInfo)] :: [(Symbol, *)])
 
 type instance SignalList Cursor = CursorSignalList
-type CursorSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type CursorSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method Cursor::new
 -- method type : Constructor
--- Args : [Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Cursor"
 -- throws : False
 -- Skip return : False
@@ -177,20 +218,19 @@
 {-# DEPRECATED cursorNew ["(Since version 3.16)","Use gdk_cursor_new_for_display() instead."]#-}
 cursorNew ::
     (MonadIO m) =>
-    CursorType ->                           -- cursor_type
-    m Cursor
-cursorNew cursor_type = liftIO $ do
-    let cursor_type' = (fromIntegral . fromEnum) cursor_type
-    result <- gdk_cursor_new cursor_type'
+    CursorType                              -- cursorType
+    -> m Cursor                             -- result
+cursorNew cursorType = liftIO $ do
+    let cursorType' = (fromIntegral . fromEnum) cursorType
+    result <- gdk_cursor_new cursorType'
     checkUnexpectedReturnNULL "gdk_cursor_new" result
     result' <- (wrapObject Cursor) result
     return result'
 
 -- method Cursor::new_for_display
 -- method type : Constructor
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor_type", argType = TInterface "Gdk" "CursorType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Cursor"
 -- throws : False
 -- Skip return : False
@@ -203,13 +243,13 @@
 
 cursorNewForDisplay ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    CursorType ->                           -- cursor_type
-    m Cursor
-cursorNewForDisplay display cursor_type = liftIO $ do
+    a                                       -- display
+    -> CursorType                           -- cursorType
+    -> m Cursor                             -- result
+cursorNewForDisplay display cursorType = liftIO $ do
     let display' = unsafeManagedPtrCastPtr display
-    let cursor_type' = (fromIntegral . fromEnum) cursor_type
-    result <- gdk_cursor_new_for_display display' cursor_type'
+    let cursorType' = (fromIntegral . fromEnum) cursorType
+    result <- gdk_cursor_new_for_display display' cursorType'
     checkUnexpectedReturnNULL "gdk_cursor_new_for_display" result
     result' <- (wrapObject Cursor) result
     touchManagedPtr display
@@ -217,9 +257,8 @@
 
 -- method Cursor::new_from_name
 -- method type : Constructor
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", 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 = "display", argType = TInterface "Gdk" "Display", 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 = "display", argType = TInterface "Gdk" "Display", 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 "Gdk" "Cursor"
 -- throws : False
 -- Skip return : False
@@ -232,9 +271,9 @@
 
 cursorNewFromName ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    T.Text ->                               -- name
-    m Cursor
+    a                                       -- display
+    -> T.Text                               -- name
+    -> m Cursor                             -- result
 cursorNewFromName display name = liftIO $ do
     let display' = unsafeManagedPtrCastPtr display
     name' <- textToCString name
@@ -247,9 +286,8 @@
 
 -- method Cursor::new_from_pixbuf
 -- method type : Constructor
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbuf", argType = TInterface "GdkPixbuf" "Pixbuf", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Cursor"
 -- throws : False
 -- Skip return : False
@@ -264,11 +302,11 @@
 
 cursorNewFromPixbuf ::
     (MonadIO m, DisplayK a, GdkPixbuf.PixbufK b) =>
-    a ->                                    -- display
-    b ->                                    -- pixbuf
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m Cursor
+    a                                       -- display
+    -> b                                    -- pixbuf
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> m Cursor                             -- result
 cursorNewFromPixbuf display pixbuf x y = liftIO $ do
     let display' = unsafeManagedPtrCastPtr display
     let pixbuf' = unsafeManagedPtrCastPtr pixbuf
@@ -281,9 +319,8 @@
 
 -- method Cursor::new_from_surface
 -- method type : Constructor
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "surface", argType = TInterface "cairo" "Surface", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Cursor"
 -- throws : False
 -- Skip return : False
@@ -298,11 +335,11 @@
 
 cursorNewFromSurface ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    Cairo.Surface ->                        -- surface
-    Double ->                               -- x
-    Double ->                               -- y
-    m Cursor
+    a                                       -- display
+    -> Cairo.Surface                        -- surface
+    -> Double                               -- x
+    -> Double                               -- y
+    -> m Cursor                             -- result
 cursorNewFromSurface display surface x y = liftIO $ do
     let display' = unsafeManagedPtrCastPtr display
     let surface' = unsafeManagedPtrGetPtr surface
@@ -317,9 +354,8 @@
 
 -- method Cursor::get_cursor_type
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "CursorType"
 -- throws : False
 -- Skip return : False
@@ -331,8 +367,8 @@
 
 cursorGetCursorType ::
     (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m CursorType
+    a                                       -- _obj
+    -> m CursorType                         -- result
 cursorGetCursorType _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_cursor_get_cursor_type _obj'
@@ -340,11 +376,14 @@
     touchManagedPtr _obj
     return result'
 
+data CursorGetCursorTypeMethodInfo
+instance (signature ~ (m CursorType), MonadIO m, CursorK a) => MethodInfo CursorGetCursorTypeMethodInfo a signature where
+    overloadedMethod _ = cursorGetCursorType
+
 -- method Cursor::get_display
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Display"
 -- throws : False
 -- Skip return : False
@@ -356,8 +395,8 @@
 
 cursorGetDisplay ::
     (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m Display
+    a                                       -- _obj
+    -> m Display                            -- result
 cursorGetDisplay _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_cursor_get_display _obj'
@@ -366,11 +405,14 @@
     touchManagedPtr _obj
     return result'
 
+data CursorGetDisplayMethodInfo
+instance (signature ~ (m Display), MonadIO m, CursorK a) => MethodInfo CursorGetDisplayMethodInfo a signature where
+    overloadedMethod _ = cursorGetDisplay
+
 -- method Cursor::get_image
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "GdkPixbuf" "Pixbuf"
 -- throws : False
 -- Skip return : False
@@ -382,8 +424,8 @@
 
 cursorGetImage ::
     (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m GdkPixbuf.Pixbuf
+    a                                       -- _obj
+    -> m GdkPixbuf.Pixbuf                   -- result
 cursorGetImage _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_cursor_get_image _obj'
@@ -392,11 +434,14 @@
     touchManagedPtr _obj
     return result'
 
+data CursorGetImageMethodInfo
+instance (signature ~ (m GdkPixbuf.Pixbuf), MonadIO m, CursorK a) => MethodInfo CursorGetImageMethodInfo a signature where
+    overloadedMethod _ = cursorGetImage
+
 -- method Cursor::get_surface
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_hot", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y_hot", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x_hot", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y_hot", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "cairo" "Surface"
 -- throws : False
 -- Skip return : False
@@ -410,29 +455,32 @@
 
 cursorGetSurface ::
     (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m (Cairo.Surface,Double,Double)
+    a                                       -- _obj
+    -> m (Cairo.Surface,Double,Double)      -- result
 cursorGetSurface _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    x_hot <- allocMem :: IO (Ptr CDouble)
-    y_hot <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_cursor_get_surface _obj' x_hot y_hot
+    xHot <- allocMem :: IO (Ptr CDouble)
+    yHot <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_cursor_get_surface _obj' xHot yHot
     checkUnexpectedReturnNULL "gdk_cursor_get_surface" result
     result' <- (wrapBoxed Cairo.Surface) result
-    x_hot' <- peek x_hot
-    let x_hot'' = realToFrac x_hot'
-    y_hot' <- peek y_hot
-    let y_hot'' = realToFrac y_hot'
+    xHot' <- peek xHot
+    let xHot'' = realToFrac xHot'
+    yHot' <- peek yHot
+    let yHot'' = realToFrac yHot'
     touchManagedPtr _obj
-    freeMem x_hot
-    freeMem y_hot
-    return (result', x_hot'', y_hot'')
+    freeMem xHot
+    freeMem yHot
+    return (result', xHot'', yHot'')
 
+data CursorGetSurfaceMethodInfo
+instance (signature ~ (m (Cairo.Surface,Double,Double)), MonadIO m, CursorK a) => MethodInfo CursorGetSurfaceMethodInfo a signature where
+    overloadedMethod _ = cursorGetSurface
+
 -- method Cursor::ref
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Cursor"
 -- throws : False
 -- Skip return : False
@@ -444,8 +492,8 @@
 {-# DEPRECATED cursorRef ["(Since version 3.0)","Use g_object_ref() instead"]#-}
 cursorRef ::
     (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m Cursor
+    a                                       -- _obj
+    -> m Cursor                             -- result
 cursorRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_cursor_ref _obj'
@@ -454,11 +502,14 @@
     touchManagedPtr _obj
     return result'
 
+data CursorRefMethodInfo
+instance (signature ~ (m Cursor), MonadIO m, CursorK a) => MethodInfo CursorRefMethodInfo a signature where
+    overloadedMethod _ = cursorRef
+
 -- method Cursor::unref
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -470,12 +521,16 @@
 {-# DEPRECATED cursorUnref ["(Since version 3.0)","Use g_object_unref() instead"]#-}
 cursorUnref ::
     (MonadIO m, CursorK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 cursorUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_cursor_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data CursorUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m, CursorK a) => MethodInfo CursorUnrefMethodInfo a signature where
+    overloadedMethod _ = cursorUnref
 
 
diff --git a/GI/Gdk/Objects/Cursor.hs-boot b/GI/Gdk/Objects/Cursor.hs-boot
--- a/GI/Gdk/Objects/Cursor.hs-boot
+++ b/GI/Gdk/Objects/Cursor.hs-boot
@@ -13,3 +13,9 @@
 instance (GObject o, IsDescendantOf Cursor o) => CursorK o
 data CursorCursorTypePropertyInfo
 data CursorDisplayPropertyInfo
+data CursorGetCursorTypeMethodInfo
+data CursorGetDisplayMethodInfo
+data CursorGetImageMethodInfo
+data CursorGetSurfaceMethodInfo
+data CursorRefMethodInfo
+data CursorUnrefMethodInfo
diff --git a/GI/Gdk/Objects/Device.hs b/GI/Gdk/Objects/Device.hs
--- a/GI/Gdk/Objects/Device.hs
+++ b/GI/Gdk/Objects/Device.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,78 +18,97 @@
 
  -- * Methods
 -- ** deviceGetAssociatedDevice
+    DeviceGetAssociatedDeviceMethodInfo     ,
     deviceGetAssociatedDevice               ,
 
 
 -- ** deviceGetAxisUse
+    DeviceGetAxisUseMethodInfo              ,
     deviceGetAxisUse                        ,
 
 
 -- ** deviceGetDeviceType
+    DeviceGetDeviceTypeMethodInfo           ,
     deviceGetDeviceType                     ,
 
 
 -- ** deviceGetDisplay
+    DeviceGetDisplayMethodInfo              ,
     deviceGetDisplay                        ,
 
 
 -- ** deviceGetHasCursor
+    DeviceGetHasCursorMethodInfo            ,
     deviceGetHasCursor                      ,
 
 
 -- ** deviceGetKey
+    DeviceGetKeyMethodInfo                  ,
     deviceGetKey                            ,
 
 
 -- ** deviceGetLastEventWindow
+    DeviceGetLastEventWindowMethodInfo      ,
     deviceGetLastEventWindow                ,
 
 
 -- ** deviceGetMode
+    DeviceGetModeMethodInfo                 ,
     deviceGetMode                           ,
 
 
 -- ** deviceGetNAxes
+    DeviceGetNAxesMethodInfo                ,
     deviceGetNAxes                          ,
 
 
 -- ** deviceGetNKeys
+    DeviceGetNKeysMethodInfo                ,
     deviceGetNKeys                          ,
 
 
 -- ** deviceGetName
+    DeviceGetNameMethodInfo                 ,
     deviceGetName                           ,
 
 
 -- ** deviceGetPosition
+    DeviceGetPositionMethodInfo             ,
     deviceGetPosition                       ,
 
 
 -- ** deviceGetPositionDouble
+    DeviceGetPositionDoubleMethodInfo       ,
     deviceGetPositionDouble                 ,
 
 
 -- ** deviceGetProductId
+    DeviceGetProductIdMethodInfo            ,
     deviceGetProductId                      ,
 
 
 -- ** deviceGetSource
+    DeviceGetSourceMethodInfo               ,
     deviceGetSource                         ,
 
 
 -- ** deviceGetVendorId
+    DeviceGetVendorIdMethodInfo             ,
     deviceGetVendorId                       ,
 
 
 -- ** deviceGetWindowAtPosition
+    DeviceGetWindowAtPositionMethodInfo     ,
     deviceGetWindowAtPosition               ,
 
 
 -- ** deviceGetWindowAtPositionDouble
+    DeviceGetWindowAtPositionDoubleMethodInfo,
     deviceGetWindowAtPositionDouble         ,
 
 
 -- ** deviceGrab
+    DeviceGrabMethodInfo                    ,
     deviceGrab                              ,
 
 
@@ -97,30 +117,37 @@
 
 
 -- ** deviceListAxes
+    DeviceListAxesMethodInfo                ,
     deviceListAxes                          ,
 
 
 -- ** deviceListSlaveDevices
+    DeviceListSlaveDevicesMethodInfo        ,
     deviceListSlaveDevices                  ,
 
 
 -- ** deviceSetAxisUse
+    DeviceSetAxisUseMethodInfo              ,
     deviceSetAxisUse                        ,
 
 
 -- ** deviceSetKey
+    DeviceSetKeyMethodInfo                  ,
     deviceSetKey                            ,
 
 
 -- ** deviceSetMode
+    DeviceSetModeMethodInfo                 ,
     deviceSetMode                           ,
 
 
 -- ** deviceUngrab
+    DeviceUngrabMethodInfo                  ,
     deviceUngrab                            ,
 
 
 -- ** deviceWarp
+    DeviceWarpMethodInfo                    ,
     deviceWarp                              ,
 
 
@@ -243,6 +270,65 @@
 noDevice :: Maybe Device
 noDevice = Nothing
 
+type family ResolveDeviceMethod (t :: Symbol) (o :: *) :: * where
+    ResolveDeviceMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveDeviceMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveDeviceMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveDeviceMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveDeviceMethod "grab" o = DeviceGrabMethodInfo
+    ResolveDeviceMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveDeviceMethod "listAxes" o = DeviceListAxesMethodInfo
+    ResolveDeviceMethod "listSlaveDevices" o = DeviceListSlaveDevicesMethodInfo
+    ResolveDeviceMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveDeviceMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveDeviceMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveDeviceMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveDeviceMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveDeviceMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveDeviceMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveDeviceMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveDeviceMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveDeviceMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveDeviceMethod "ungrab" o = DeviceUngrabMethodInfo
+    ResolveDeviceMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveDeviceMethod "warp" o = DeviceWarpMethodInfo
+    ResolveDeviceMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveDeviceMethod "getAssociatedDevice" o = DeviceGetAssociatedDeviceMethodInfo
+    ResolveDeviceMethod "getAxisUse" o = DeviceGetAxisUseMethodInfo
+    ResolveDeviceMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveDeviceMethod "getDeviceType" o = DeviceGetDeviceTypeMethodInfo
+    ResolveDeviceMethod "getDisplay" o = DeviceGetDisplayMethodInfo
+    ResolveDeviceMethod "getHasCursor" o = DeviceGetHasCursorMethodInfo
+    ResolveDeviceMethod "getKey" o = DeviceGetKeyMethodInfo
+    ResolveDeviceMethod "getLastEventWindow" o = DeviceGetLastEventWindowMethodInfo
+    ResolveDeviceMethod "getMode" o = DeviceGetModeMethodInfo
+    ResolveDeviceMethod "getNAxes" o = DeviceGetNAxesMethodInfo
+    ResolveDeviceMethod "getNKeys" o = DeviceGetNKeysMethodInfo
+    ResolveDeviceMethod "getName" o = DeviceGetNameMethodInfo
+    ResolveDeviceMethod "getPosition" o = DeviceGetPositionMethodInfo
+    ResolveDeviceMethod "getPositionDouble" o = DeviceGetPositionDoubleMethodInfo
+    ResolveDeviceMethod "getProductId" o = DeviceGetProductIdMethodInfo
+    ResolveDeviceMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveDeviceMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveDeviceMethod "getSource" o = DeviceGetSourceMethodInfo
+    ResolveDeviceMethod "getVendorId" o = DeviceGetVendorIdMethodInfo
+    ResolveDeviceMethod "getWindowAtPosition" o = DeviceGetWindowAtPositionMethodInfo
+    ResolveDeviceMethod "getWindowAtPositionDouble" o = DeviceGetWindowAtPositionDoubleMethodInfo
+    ResolveDeviceMethod "setAxisUse" o = DeviceSetAxisUseMethodInfo
+    ResolveDeviceMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveDeviceMethod "setKey" o = DeviceSetKeyMethodInfo
+    ResolveDeviceMethod "setMode" o = DeviceSetModeMethodInfo
+    ResolveDeviceMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveDeviceMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDeviceMethod t Device, MethodInfo info Device p) => IsLabelProxy t (Device -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDeviceMethod t Device, MethodInfo info Device p) => IsLabel t (Device -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- signal Device::changed
 type DeviceChangedCallback =
     IO ()
@@ -294,7 +380,7 @@
     type AttrSetTypeConstraint DeviceAssociatedDevicePropertyInfo = (~) ()
     type AttrBaseTypeConstraint DeviceAssociatedDevicePropertyInfo = DeviceK
     type AttrGetType DeviceAssociatedDevicePropertyInfo = Device
-    type AttrLabel DeviceAssociatedDevicePropertyInfo = "Device::associated-device"
+    type AttrLabel DeviceAssociatedDevicePropertyInfo = "associated-device"
     attrGet _ = getDeviceAssociatedDevice
     attrSet _ = undefined
     attrConstruct _ = undefined
@@ -315,7 +401,7 @@
     type AttrSetTypeConstraint DeviceDeviceManagerPropertyInfo = DeviceManagerK
     type AttrBaseTypeConstraint DeviceDeviceManagerPropertyInfo = DeviceK
     type AttrGetType DeviceDeviceManagerPropertyInfo = DeviceManager
-    type AttrLabel DeviceDeviceManagerPropertyInfo = "Device::device-manager"
+    type AttrLabel DeviceDeviceManagerPropertyInfo = "device-manager"
     attrGet _ = getDeviceDeviceManager
     attrSet _ = undefined
     attrConstruct _ = constructDeviceDeviceManager
@@ -336,7 +422,7 @@
     type AttrSetTypeConstraint DeviceDisplayPropertyInfo = DisplayK
     type AttrBaseTypeConstraint DeviceDisplayPropertyInfo = DeviceK
     type AttrGetType DeviceDisplayPropertyInfo = Display
-    type AttrLabel DeviceDisplayPropertyInfo = "Device::display"
+    type AttrLabel DeviceDisplayPropertyInfo = "display"
     attrGet _ = getDeviceDisplay
     attrSet _ = undefined
     attrConstruct _ = constructDeviceDisplay
@@ -357,7 +443,7 @@
     type AttrSetTypeConstraint DeviceHasCursorPropertyInfo = (~) Bool
     type AttrBaseTypeConstraint DeviceHasCursorPropertyInfo = DeviceK
     type AttrGetType DeviceHasCursorPropertyInfo = Bool
-    type AttrLabel DeviceHasCursorPropertyInfo = "Device::has-cursor"
+    type AttrLabel DeviceHasCursorPropertyInfo = "has-cursor"
     attrGet _ = getDeviceHasCursor
     attrSet _ = undefined
     attrConstruct _ = constructDeviceHasCursor
@@ -381,7 +467,7 @@
     type AttrSetTypeConstraint DeviceInputModePropertyInfo = (~) InputMode
     type AttrBaseTypeConstraint DeviceInputModePropertyInfo = DeviceK
     type AttrGetType DeviceInputModePropertyInfo = InputMode
-    type AttrLabel DeviceInputModePropertyInfo = "Device::input-mode"
+    type AttrLabel DeviceInputModePropertyInfo = "input-mode"
     attrGet _ = getDeviceInputMode
     attrSet _ = setDeviceInputMode
     attrConstruct _ = constructDeviceInputMode
@@ -402,7 +488,7 @@
     type AttrSetTypeConstraint DeviceInputSourcePropertyInfo = (~) InputSource
     type AttrBaseTypeConstraint DeviceInputSourcePropertyInfo = DeviceK
     type AttrGetType DeviceInputSourcePropertyInfo = InputSource
-    type AttrLabel DeviceInputSourcePropertyInfo = "Device::input-source"
+    type AttrLabel DeviceInputSourcePropertyInfo = "input-source"
     attrGet _ = getDeviceInputSource
     attrSet _ = undefined
     attrConstruct _ = constructDeviceInputSource
@@ -420,7 +506,7 @@
     type AttrSetTypeConstraint DeviceNAxesPropertyInfo = (~) ()
     type AttrBaseTypeConstraint DeviceNAxesPropertyInfo = DeviceK
     type AttrGetType DeviceNAxesPropertyInfo = Word32
-    type AttrLabel DeviceNAxesPropertyInfo = "Device::n-axes"
+    type AttrLabel DeviceNAxesPropertyInfo = "n-axes"
     attrGet _ = getDeviceNAxes
     attrSet _ = undefined
     attrConstruct _ = undefined
@@ -441,7 +527,7 @@
     type AttrSetTypeConstraint DeviceNamePropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint DeviceNamePropertyInfo = DeviceK
     type AttrGetType DeviceNamePropertyInfo = T.Text
-    type AttrLabel DeviceNamePropertyInfo = "Device::name"
+    type AttrLabel DeviceNamePropertyInfo = "name"
     attrGet _ = getDeviceName
     attrSet _ = undefined
     attrConstruct _ = constructDeviceName
@@ -462,7 +548,7 @@
     type AttrSetTypeConstraint DeviceProductIdPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint DeviceProductIdPropertyInfo = DeviceK
     type AttrGetType DeviceProductIdPropertyInfo = T.Text
-    type AttrLabel DeviceProductIdPropertyInfo = "Device::product-id"
+    type AttrLabel DeviceProductIdPropertyInfo = "product-id"
     attrGet _ = getDeviceProductId
     attrSet _ = undefined
     attrConstruct _ = constructDeviceProductId
@@ -483,7 +569,7 @@
     type AttrSetTypeConstraint DeviceTypePropertyInfo = (~) DeviceType
     type AttrBaseTypeConstraint DeviceTypePropertyInfo = DeviceK
     type AttrGetType DeviceTypePropertyInfo = DeviceType
-    type AttrLabel DeviceTypePropertyInfo = "Device::type"
+    type AttrLabel DeviceTypePropertyInfo = "type"
     attrGet _ = getDeviceType
     attrSet _ = undefined
     attrConstruct _ = constructDeviceType
@@ -504,13 +590,13 @@
     type AttrSetTypeConstraint DeviceVendorIdPropertyInfo = (~) T.Text
     type AttrBaseTypeConstraint DeviceVendorIdPropertyInfo = DeviceK
     type AttrGetType DeviceVendorIdPropertyInfo = T.Text
-    type AttrLabel DeviceVendorIdPropertyInfo = "Device::vendor-id"
+    type AttrLabel DeviceVendorIdPropertyInfo = "vendor-id"
     attrGet _ = getDeviceVendorId
     attrSet _ = undefined
     attrConstruct _ = constructDeviceVendorId
 
 type instance AttributeList Device = DeviceAttributeList
-type DeviceAttributeList = ('[ '("associated-device", DeviceAssociatedDevicePropertyInfo), '("device-manager", DeviceDeviceManagerPropertyInfo), '("display", DeviceDisplayPropertyInfo), '("has-cursor", DeviceHasCursorPropertyInfo), '("input-mode", DeviceInputModePropertyInfo), '("input-source", DeviceInputSourcePropertyInfo), '("n-axes", DeviceNAxesPropertyInfo), '("name", DeviceNamePropertyInfo), '("product-id", DeviceProductIdPropertyInfo), '("type", DeviceTypePropertyInfo), '("vendor-id", DeviceVendorIdPropertyInfo)] :: [(Symbol, *)])
+type DeviceAttributeList = ('[ '("associatedDevice", DeviceAssociatedDevicePropertyInfo), '("deviceManager", DeviceDeviceManagerPropertyInfo), '("display", DeviceDisplayPropertyInfo), '("hasCursor", DeviceHasCursorPropertyInfo), '("inputMode", DeviceInputModePropertyInfo), '("inputSource", DeviceInputSourcePropertyInfo), '("nAxes", DeviceNAxesPropertyInfo), '("name", DeviceNamePropertyInfo), '("productId", DeviceProductIdPropertyInfo), '("type", DeviceTypePropertyInfo), '("vendorId", DeviceVendorIdPropertyInfo)] :: [(Symbol, *)])
 
 data DeviceChangedSignalInfo
 instance SignalInfo DeviceChangedSignalInfo where
@@ -518,13 +604,12 @@
     connectSignal _ = connectDeviceChanged
 
 type instance SignalList Device = DeviceSignalList
-type DeviceSignalList = ('[ '("changed", DeviceChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type DeviceSignalList = ('[ '("changed", DeviceChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method Device::get_associated_device
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Device"
 -- throws : False
 -- Skip return : False
@@ -536,8 +621,8 @@
 
 deviceGetAssociatedDevice ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Device
+    a                                       -- _obj
+    -> m Device                             -- result
 deviceGetAssociatedDevice _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_associated_device _obj'
@@ -546,11 +631,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceGetAssociatedDeviceMethodInfo
+instance (signature ~ (m Device), MonadIO m, DeviceK a) => MethodInfo DeviceGetAssociatedDeviceMethodInfo a signature where
+    overloadedMethod _ = deviceGetAssociatedDevice
+
 -- method Device::get_axis_use
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", 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 "Gdk" "Device", 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 "Gdk" "Device", 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 "Gdk" "AxisUse"
 -- throws : False
 -- Skip return : False
@@ -563,21 +651,24 @@
 
 deviceGetAxisUse ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- index_
-    m AxisUse
-deviceGetAxisUse _obj index_ = liftIO $ do
+    a                                       -- _obj
+    -> Word32                               -- index
+    -> m AxisUse                            -- result
+deviceGetAxisUse _obj index = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_device_get_axis_use _obj' index_
+    result <- gdk_device_get_axis_use _obj' index
     let result' = (toEnum . fromIntegral) result
     touchManagedPtr _obj
     return result'
 
+data DeviceGetAxisUseMethodInfo
+instance (signature ~ (Word32 -> m AxisUse), MonadIO m, DeviceK a) => MethodInfo DeviceGetAxisUseMethodInfo a signature where
+    overloadedMethod _ = deviceGetAxisUse
+
 -- method Device::get_device_type
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "DeviceType"
 -- throws : False
 -- Skip return : False
@@ -589,8 +680,8 @@
 
 deviceGetDeviceType ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m DeviceType
+    a                                       -- _obj
+    -> m DeviceType                         -- result
 deviceGetDeviceType _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_device_type _obj'
@@ -598,11 +689,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceGetDeviceTypeMethodInfo
+instance (signature ~ (m DeviceType), MonadIO m, DeviceK a) => MethodInfo DeviceGetDeviceTypeMethodInfo a signature where
+    overloadedMethod _ = deviceGetDeviceType
+
 -- method Device::get_display
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Display"
 -- throws : False
 -- Skip return : False
@@ -614,8 +708,8 @@
 
 deviceGetDisplay ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Display
+    a                                       -- _obj
+    -> m Display                            -- result
 deviceGetDisplay _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_display _obj'
@@ -624,11 +718,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceGetDisplayMethodInfo
+instance (signature ~ (m Display), MonadIO m, DeviceK a) => MethodInfo DeviceGetDisplayMethodInfo a signature where
+    overloadedMethod _ = deviceGetDisplay
+
 -- method Device::get_has_cursor
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -640,8 +737,8 @@
 
 deviceGetHasCursor ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 deviceGetHasCursor _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_has_cursor _obj'
@@ -649,11 +746,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceGetHasCursorMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DeviceK a) => MethodInfo DeviceGetHasCursorMethodInfo a signature where
+    overloadedMethod _ = deviceGetHasCursor
+
 -- method Device::get_key
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", 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 = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", 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 = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", 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 : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -668,14 +768,14 @@
 
 deviceGetKey ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- index_
-    m (Bool,Word32,[ModifierType])
-deviceGetKey _obj index_ = liftIO $ do
+    a                                       -- _obj
+    -> Word32                               -- index
+    -> m (Bool,Word32,[ModifierType])       -- result
+deviceGetKey _obj index = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     keyval <- allocMem :: IO (Ptr Word32)
     modifiers <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_device_get_key _obj' index_ keyval modifiers
+    result <- gdk_device_get_key _obj' index keyval modifiers
     let result' = (/= 0) result
     keyval' <- peek keyval
     modifiers' <- peek modifiers
@@ -685,11 +785,14 @@
     freeMem modifiers
     return (result', keyval', modifiers'')
 
+data DeviceGetKeyMethodInfo
+instance (signature ~ (Word32 -> m (Bool,Word32,[ModifierType])), MonadIO m, DeviceK a) => MethodInfo DeviceGetKeyMethodInfo a signature where
+    overloadedMethod _ = deviceGetKey
+
 -- method Device::get_last_event_window
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -701,8 +804,8 @@
 
 deviceGetLastEventWindow ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Window
+    a                                       -- _obj
+    -> m Window                             -- result
 deviceGetLastEventWindow _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_last_event_window _obj'
@@ -711,11 +814,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceGetLastEventWindowMethodInfo
+instance (signature ~ (m Window), MonadIO m, DeviceK a) => MethodInfo DeviceGetLastEventWindowMethodInfo a signature where
+    overloadedMethod _ = deviceGetLastEventWindow
+
 -- method Device::get_mode
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "InputMode"
 -- throws : False
 -- Skip return : False
@@ -727,8 +833,8 @@
 
 deviceGetMode ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m InputMode
+    a                                       -- _obj
+    -> m InputMode                          -- result
 deviceGetMode _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_mode _obj'
@@ -736,11 +842,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceGetModeMethodInfo
+instance (signature ~ (m InputMode), MonadIO m, DeviceK a) => MethodInfo DeviceGetModeMethodInfo a signature where
+    overloadedMethod _ = deviceGetMode
+
 -- method Device::get_n_axes
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -752,19 +861,22 @@
 
 deviceGetNAxes ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 deviceGetNAxes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_n_axes _obj'
     touchManagedPtr _obj
     return result
 
+data DeviceGetNAxesMethodInfo
+instance (signature ~ (m Int32), MonadIO m, DeviceK a) => MethodInfo DeviceGetNAxesMethodInfo a signature where
+    overloadedMethod _ = deviceGetNAxes
+
 -- method Device::get_n_keys
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -776,19 +888,22 @@
 
 deviceGetNKeys ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 deviceGetNKeys _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_n_keys _obj'
     touchManagedPtr _obj
     return result
 
+data DeviceGetNKeysMethodInfo
+instance (signature ~ (m Int32), MonadIO m, DeviceK a) => MethodInfo DeviceGetNKeysMethodInfo a signature where
+    overloadedMethod _ = deviceGetNKeys
+
 -- method Device::get_name
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -800,8 +915,8 @@
 
 deviceGetName ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m T.Text
+    a                                       -- _obj
+    -> m T.Text                             -- result
 deviceGetName _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_name _obj'
@@ -810,11 +925,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceGetNameMethodInfo
+instance (signature ~ (m T.Text), MonadIO m, DeviceK a) => MethodInfo DeviceGetNameMethodInfo a signature where
+    overloadedMethod _ = deviceGetName
+
 -- method Device::get_position
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -829,8 +947,8 @@
 
 deviceGetPosition ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m (Screen,Int32,Int32)
+    a                                       -- _obj
+    -> m (Screen,Int32,Int32)               -- result
 deviceGetPosition _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     screen <- allocMem :: IO (Ptr (Ptr Screen))
@@ -847,11 +965,14 @@
     freeMem y
     return (screen'', x', y')
 
+data DeviceGetPositionMethodInfo
+instance (signature ~ (m (Screen,Int32,Int32)), MonadIO m, DeviceK a) => MethodInfo DeviceGetPositionMethodInfo a signature where
+    overloadedMethod _ = deviceGetPosition
+
 -- method Device::get_position_double
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -866,8 +987,8 @@
 
 deviceGetPositionDouble ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m (Screen,Double,Double)
+    a                                       -- _obj
+    -> m (Screen,Double,Double)             -- result
 deviceGetPositionDouble _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     screen <- allocMem :: IO (Ptr (Ptr Screen))
@@ -886,11 +1007,14 @@
     freeMem y
     return (screen'', x'', y'')
 
+data DeviceGetPositionDoubleMethodInfo
+instance (signature ~ (m (Screen,Double,Double)), MonadIO m, DeviceK a) => MethodInfo DeviceGetPositionDoubleMethodInfo a signature where
+    overloadedMethod _ = deviceGetPositionDouble
+
 -- method Device::get_product_id
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -902,8 +1026,8 @@
 
 deviceGetProductId ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m T.Text
+    a                                       -- _obj
+    -> m T.Text                             -- result
 deviceGetProductId _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_product_id _obj'
@@ -912,11 +1036,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceGetProductIdMethodInfo
+instance (signature ~ (m T.Text), MonadIO m, DeviceK a) => MethodInfo DeviceGetProductIdMethodInfo a signature where
+    overloadedMethod _ = deviceGetProductId
+
 -- method Device::get_source
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "InputSource"
 -- throws : False
 -- Skip return : False
@@ -928,8 +1055,8 @@
 
 deviceGetSource ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m InputSource
+    a                                       -- _obj
+    -> m InputSource                        -- result
 deviceGetSource _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_source _obj'
@@ -937,11 +1064,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceGetSourceMethodInfo
+instance (signature ~ (m InputSource), MonadIO m, DeviceK a) => MethodInfo DeviceGetSourceMethodInfo a signature where
+    overloadedMethod _ = deviceGetSource
+
 -- method Device::get_vendor_id
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -953,8 +1083,8 @@
 
 deviceGetVendorId ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m T.Text
+    a                                       -- _obj
+    -> m T.Text                             -- result
 deviceGetVendorId _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_get_vendor_id _obj'
@@ -963,11 +1093,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceGetVendorIdMethodInfo
+instance (signature ~ (m T.Text), MonadIO m, DeviceK a) => MethodInfo DeviceGetVendorIdMethodInfo a signature where
+    overloadedMethod _ = deviceGetVendorId
+
 -- method Device::get_window_at_position
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -981,27 +1114,30 @@
 
 deviceGetWindowAtPosition ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m (Window,Int32,Int32)
+    a                                       -- _obj
+    -> m (Window,Int32,Int32)               -- result
 deviceGetWindowAtPosition _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    win_x <- allocMem :: IO (Ptr Int32)
-    win_y <- allocMem :: IO (Ptr Int32)
-    result <- gdk_device_get_window_at_position _obj' win_x win_y
+    winX <- allocMem :: IO (Ptr Int32)
+    winY <- allocMem :: IO (Ptr Int32)
+    result <- gdk_device_get_window_at_position _obj' winX winY
     checkUnexpectedReturnNULL "gdk_device_get_window_at_position" result
     result' <- (newObject Window) result
-    win_x' <- peek win_x
-    win_y' <- peek win_y
+    winX' <- peek winX
+    winY' <- peek winY
     touchManagedPtr _obj
-    freeMem win_x
-    freeMem win_y
-    return (result', win_x', win_y')
+    freeMem winX
+    freeMem winY
+    return (result', winX', winY')
 
+data DeviceGetWindowAtPositionMethodInfo
+instance (signature ~ (m (Window,Int32,Int32)), MonadIO m, DeviceK a) => MethodInfo DeviceGetWindowAtPositionMethodInfo a signature where
+    overloadedMethod _ = deviceGetWindowAtPosition
+
 -- method Device::get_window_at_position_double
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "win_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "win_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "win_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -1015,29 +1151,32 @@
 
 deviceGetWindowAtPositionDouble ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m (Window,Double,Double)
+    a                                       -- _obj
+    -> m (Window,Double,Double)             -- result
 deviceGetWindowAtPositionDouble _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    win_x <- allocMem :: IO (Ptr CDouble)
-    win_y <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_device_get_window_at_position_double _obj' win_x win_y
+    winX <- allocMem :: IO (Ptr CDouble)
+    winY <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_device_get_window_at_position_double _obj' winX winY
     checkUnexpectedReturnNULL "gdk_device_get_window_at_position_double" result
     result' <- (newObject Window) result
-    win_x' <- peek win_x
-    let win_x'' = realToFrac win_x'
-    win_y' <- peek win_y
-    let win_y'' = realToFrac win_y'
+    winX' <- peek winX
+    let winX'' = realToFrac winX'
+    winY' <- peek winY
+    let winY'' = realToFrac winY'
     touchManagedPtr _obj
-    freeMem win_x
-    freeMem win_y
-    return (result', win_x'', win_y'')
+    freeMem winX
+    freeMem winY
+    return (result', winX'', winY'')
 
+data DeviceGetWindowAtPositionDoubleMethodInfo
+instance (signature ~ (m (Window,Double,Double)), MonadIO m, DeviceK a) => MethodInfo DeviceGetWindowAtPositionDoubleMethodInfo a signature where
+    overloadedMethod _ = deviceGetWindowAtPositionDouble
+
 -- method Device::grab
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grab_ownership", argType = TInterface "Gdk" "GrabOwnership", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "grab_ownership", argType = TInterface "Gdk" "GrabOwnership", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grab_ownership", argType = TInterface "Gdk" "GrabOwnership", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "GrabStatus"
 -- throws : False
 -- Skip return : False
@@ -1055,37 +1194,40 @@
 
 deviceGrab ::
     (MonadIO m, DeviceK a, WindowK b, CursorK c) =>
-    a ->                                    -- _obj
-    b ->                                    -- window
-    GrabOwnership ->                        -- grab_ownership
-    Bool ->                                 -- owner_events
-    [EventMask] ->                          -- event_mask
-    Maybe (c) ->                            -- cursor
-    Word32 ->                               -- time_
-    m GrabStatus
-deviceGrab _obj window grab_ownership owner_events event_mask cursor time_ = liftIO $ do
+    a                                       -- _obj
+    -> b                                    -- window
+    -> GrabOwnership                        -- grabOwnership
+    -> Bool                                 -- ownerEvents
+    -> [EventMask]                          -- eventMask
+    -> Maybe (c)                            -- cursor
+    -> Word32                               -- time
+    -> m GrabStatus                         -- result
+deviceGrab _obj window grabOwnership ownerEvents eventMask cursor time = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let window' = unsafeManagedPtrCastPtr window
-    let grab_ownership' = (fromIntegral . fromEnum) grab_ownership
-    let owner_events' = (fromIntegral . fromEnum) owner_events
-    let event_mask' = gflagsToWord event_mask
+    let grabOwnership' = (fromIntegral . fromEnum) grabOwnership
+    let ownerEvents' = (fromIntegral . fromEnum) ownerEvents
+    let eventMask' = gflagsToWord eventMask
     maybeCursor <- case cursor of
         Nothing -> return nullPtr
         Just jCursor -> do
             let jCursor' = unsafeManagedPtrCastPtr jCursor
             return jCursor'
-    result <- gdk_device_grab _obj' window' grab_ownership' owner_events' event_mask' maybeCursor time_
+    result <- gdk_device_grab _obj' window' grabOwnership' ownerEvents' eventMask' maybeCursor time
     let result' = (toEnum . fromIntegral) result
     touchManagedPtr _obj
     touchManagedPtr window
     whenJust cursor touchManagedPtr
     return result'
 
+data DeviceGrabMethodInfo
+instance (signature ~ (b -> GrabOwnership -> Bool -> [EventMask] -> Maybe (c) -> Word32 -> m GrabStatus), MonadIO m, DeviceK a, WindowK b, CursorK c) => MethodInfo DeviceGrabMethodInfo a signature where
+    overloadedMethod _ = deviceGrab
+
 -- method Device::list_axes
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TGList (TInterface "Gdk" "Atom")
 -- throws : False
 -- Skip return : False
@@ -1097,8 +1239,8 @@
 
 deviceListAxes ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m [Atom]
+    a                                       -- _obj
+    -> m [Atom]                             -- result
 deviceListAxes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_list_axes _obj'
@@ -1110,11 +1252,14 @@
     touchManagedPtr _obj
     return result''
 
+data DeviceListAxesMethodInfo
+instance (signature ~ (m [Atom]), MonadIO m, DeviceK a) => MethodInfo DeviceListAxesMethodInfo a signature where
+    overloadedMethod _ = deviceListAxes
+
 -- method Device::list_slave_devices
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TGList (TInterface "Gdk" "Device")
 -- throws : False
 -- Skip return : False
@@ -1126,8 +1271,8 @@
 
 deviceListSlaveDevices ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    m [Device]
+    a                                       -- _obj
+    -> m [Device]                           -- result
 deviceListSlaveDevices _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_list_slave_devices _obj'
@@ -1138,11 +1283,14 @@
     touchManagedPtr _obj
     return result''
 
+data DeviceListSlaveDevicesMethodInfo
+instance (signature ~ (m [Device]), MonadIO m, DeviceK a) => MethodInfo DeviceListSlaveDevicesMethodInfo a signature where
+    overloadedMethod _ = deviceListSlaveDevices
+
 -- method Device::set_axis_use
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", 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 = "use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", 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 = "use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", 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 = "use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1156,22 +1304,25 @@
 
 deviceSetAxisUse ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- index_
-    AxisUse ->                              -- use
-    m ()
-deviceSetAxisUse _obj index_ use = liftIO $ do
+    a                                       -- _obj
+    -> Word32                               -- index
+    -> AxisUse                              -- use
+    -> m ()                                 -- result
+deviceSetAxisUse _obj index use = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let use' = (fromIntegral . fromEnum) use
-    gdk_device_set_axis_use _obj' index_ use'
+    gdk_device_set_axis_use _obj' index use'
     touchManagedPtr _obj
     return ()
 
+data DeviceSetAxisUseMethodInfo
+instance (signature ~ (Word32 -> AxisUse -> m ()), MonadIO m, DeviceK a) => MethodInfo DeviceSetAxisUseMethodInfo a signature where
+    overloadedMethod _ = deviceSetAxisUse
+
 -- method Device::set_key
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", 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 = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", 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 = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", 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 = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1186,23 +1337,26 @@
 
 deviceSetKey ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- index_
-    Word32 ->                               -- keyval
-    [ModifierType] ->                       -- modifiers
-    m ()
-deviceSetKey _obj index_ keyval modifiers = liftIO $ do
+    a                                       -- _obj
+    -> Word32                               -- index
+    -> Word32                               -- keyval
+    -> [ModifierType]                       -- modifiers
+    -> m ()                                 -- result
+deviceSetKey _obj index keyval modifiers = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let modifiers' = gflagsToWord modifiers
-    gdk_device_set_key _obj' index_ keyval modifiers'
+    gdk_device_set_key _obj' index keyval modifiers'
     touchManagedPtr _obj
     return ()
 
+data DeviceSetKeyMethodInfo
+instance (signature ~ (Word32 -> Word32 -> [ModifierType] -> m ()), MonadIO m, DeviceK a) => MethodInfo DeviceSetKeyMethodInfo a signature where
+    overloadedMethod _ = deviceSetKey
+
 -- method Device::set_mode
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "InputMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface "Gdk" "InputMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "InputMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1215,9 +1369,9 @@
 
 deviceSetMode ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    InputMode ->                            -- mode
-    m Bool
+    a                                       -- _obj
+    -> InputMode                            -- mode
+    -> m Bool                               -- result
 deviceSetMode _obj mode = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let mode' = (fromIntegral . fromEnum) mode
@@ -1226,11 +1380,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceSetModeMethodInfo
+instance (signature ~ (InputMode -> m Bool), MonadIO m, DeviceK a) => MethodInfo DeviceSetModeMethodInfo a signature where
+    overloadedMethod _ = deviceSetMode
+
 -- method Device::ungrab
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1243,20 +1400,23 @@
 
 deviceUngrab ::
     (MonadIO m, DeviceK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- time_
-    m ()
-deviceUngrab _obj time_ = liftIO $ do
+    a                                       -- _obj
+    -> Word32                               -- time
+    -> m ()                                 -- result
+deviceUngrab _obj time = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_device_ungrab _obj' time_
+    gdk_device_ungrab _obj' time
     touchManagedPtr _obj
     return ()
 
+data DeviceUngrabMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m, DeviceK a) => MethodInfo DeviceUngrabMethodInfo a signature where
+    overloadedMethod _ = deviceUngrab
+
 -- method Device::warp
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1271,11 +1431,11 @@
 
 deviceWarp ::
     (MonadIO m, DeviceK a, ScreenK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- screen
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m ()
+    a                                       -- _obj
+    -> b                                    -- screen
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> m ()                                 -- result
 deviceWarp _obj screen x y = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let screen' = unsafeManagedPtrCastPtr screen
@@ -1284,11 +1444,14 @@
     touchManagedPtr screen
     return ()
 
+data DeviceWarpMethodInfo
+instance (signature ~ (b -> Int32 -> Int32 -> m ()), MonadIO m, DeviceK a, ScreenK b) => MethodInfo DeviceWarpMethodInfo a signature where
+    overloadedMethod _ = deviceWarp
+
 -- method Device::grab_info_libgtk_only
 -- method type : MemberFunction
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "grab_window", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "owner_events", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "grab_window", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "owner_events", argType = TBasicType TBoolean, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1303,24 +1466,24 @@
 {-# DEPRECATED deviceGrabInfoLibgtkOnly ["(Since version 3.16)","The symbol was never meant to be used outside","  of GTK+"]#-}
 deviceGrabInfoLibgtkOnly ::
     (MonadIO m, DisplayK a, DeviceK b) =>
-    a ->                                    -- display
-    b ->                                    -- device
-    m (Bool,Window,Bool)
+    a                                       -- display
+    -> b                                    -- device
+    -> m (Bool,Window,Bool)                 -- result
 deviceGrabInfoLibgtkOnly display device = liftIO $ do
     let display' = unsafeManagedPtrCastPtr display
     let device' = unsafeManagedPtrCastPtr device
-    grab_window <- allocMem :: IO (Ptr (Ptr Window))
-    owner_events <- allocMem :: IO (Ptr CInt)
-    result <- gdk_device_grab_info_libgtk_only display' device' grab_window owner_events
+    grabWindow <- allocMem :: IO (Ptr (Ptr Window))
+    ownerEvents <- allocMem :: IO (Ptr CInt)
+    result <- gdk_device_grab_info_libgtk_only display' device' grabWindow ownerEvents
     let result' = (/= 0) result
-    grab_window' <- peek grab_window
-    grab_window'' <- (newObject Window) grab_window'
-    owner_events' <- peek owner_events
-    let owner_events'' = (/= 0) owner_events'
+    grabWindow' <- peek grabWindow
+    grabWindow'' <- (newObject Window) grabWindow'
+    ownerEvents' <- peek ownerEvents
+    let ownerEvents'' = (/= 0) ownerEvents'
     touchManagedPtr display
     touchManagedPtr device
-    freeMem grab_window
-    freeMem owner_events
-    return (result', grab_window'', owner_events'')
+    freeMem grabWindow
+    freeMem ownerEvents
+    return (result', grabWindow'', ownerEvents'')
 
 
diff --git a/GI/Gdk/Objects/Device.hs-boot b/GI/Gdk/Objects/Device.hs-boot
--- a/GI/Gdk/Objects/Device.hs-boot
+++ b/GI/Gdk/Objects/Device.hs-boot
@@ -23,3 +23,29 @@
 data DeviceTypePropertyInfo
 data DeviceVendorIdPropertyInfo
 data DeviceChangedSignalInfo
+data DeviceGetAssociatedDeviceMethodInfo
+data DeviceGetAxisUseMethodInfo
+data DeviceGetDeviceTypeMethodInfo
+data DeviceGetDisplayMethodInfo
+data DeviceGetHasCursorMethodInfo
+data DeviceGetKeyMethodInfo
+data DeviceGetLastEventWindowMethodInfo
+data DeviceGetModeMethodInfo
+data DeviceGetNAxesMethodInfo
+data DeviceGetNKeysMethodInfo
+data DeviceGetNameMethodInfo
+data DeviceGetPositionMethodInfo
+data DeviceGetPositionDoubleMethodInfo
+data DeviceGetProductIdMethodInfo
+data DeviceGetSourceMethodInfo
+data DeviceGetVendorIdMethodInfo
+data DeviceGetWindowAtPositionMethodInfo
+data DeviceGetWindowAtPositionDoubleMethodInfo
+data DeviceGrabMethodInfo
+data DeviceListAxesMethodInfo
+data DeviceListSlaveDevicesMethodInfo
+data DeviceSetAxisUseMethodInfo
+data DeviceSetKeyMethodInfo
+data DeviceSetModeMethodInfo
+data DeviceUngrabMethodInfo
+data DeviceWarpMethodInfo
diff --git a/GI/Gdk/Objects/DeviceManager.hs b/GI/Gdk/Objects/DeviceManager.hs
--- a/GI/Gdk/Objects/DeviceManager.hs
+++ b/GI/Gdk/Objects/DeviceManager.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,14 +18,17 @@
 
  -- * Methods
 -- ** deviceManagerGetClientPointer
+    DeviceManagerGetClientPointerMethodInfo ,
     deviceManagerGetClientPointer           ,
 
 
 -- ** deviceManagerGetDisplay
+    DeviceManagerGetDisplayMethodInfo       ,
     deviceManagerGetDisplay                 ,
 
 
 -- ** deviceManagerListDevices
+    DeviceManagerListDevicesMethodInfo      ,
     deviceManagerListDevices                ,
 
 
@@ -112,6 +116,42 @@
 noDeviceManager :: Maybe DeviceManager
 noDeviceManager = Nothing
 
+type family ResolveDeviceManagerMethod (t :: Symbol) (o :: *) :: * where
+    ResolveDeviceManagerMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveDeviceManagerMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveDeviceManagerMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveDeviceManagerMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveDeviceManagerMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveDeviceManagerMethod "listDevices" o = DeviceManagerListDevicesMethodInfo
+    ResolveDeviceManagerMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveDeviceManagerMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveDeviceManagerMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveDeviceManagerMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveDeviceManagerMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveDeviceManagerMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveDeviceManagerMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveDeviceManagerMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveDeviceManagerMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveDeviceManagerMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveDeviceManagerMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveDeviceManagerMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveDeviceManagerMethod "getClientPointer" o = DeviceManagerGetClientPointerMethodInfo
+    ResolveDeviceManagerMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveDeviceManagerMethod "getDisplay" o = DeviceManagerGetDisplayMethodInfo
+    ResolveDeviceManagerMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveDeviceManagerMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveDeviceManagerMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveDeviceManagerMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveDeviceManagerMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDeviceManagerMethod t DeviceManager, MethodInfo info DeviceManager p) => IsLabelProxy t (DeviceManager -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDeviceManagerMethod t DeviceManager, MethodInfo info DeviceManager p) => IsLabel t (DeviceManager -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- signal DeviceManager::device-added
 type DeviceManagerDeviceAddedCallback =
     Device ->
@@ -254,7 +294,7 @@
     type AttrSetTypeConstraint DeviceManagerDisplayPropertyInfo = DisplayK
     type AttrBaseTypeConstraint DeviceManagerDisplayPropertyInfo = DeviceManagerK
     type AttrGetType DeviceManagerDisplayPropertyInfo = Display
-    type AttrLabel DeviceManagerDisplayPropertyInfo = "DeviceManager::display"
+    type AttrLabel DeviceManagerDisplayPropertyInfo = "display"
     attrGet _ = getDeviceManagerDisplay
     attrSet _ = undefined
     attrConstruct _ = constructDeviceManagerDisplay
@@ -278,13 +318,12 @@
     connectSignal _ = connectDeviceManagerDeviceRemoved
 
 type instance SignalList DeviceManager = DeviceManagerSignalList
-type DeviceManagerSignalList = ('[ '("device-added", DeviceManagerDeviceAddedSignalInfo), '("device-changed", DeviceManagerDeviceChangedSignalInfo), '("device-removed", DeviceManagerDeviceRemovedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type DeviceManagerSignalList = ('[ '("deviceAdded", DeviceManagerDeviceAddedSignalInfo), '("deviceChanged", DeviceManagerDeviceChangedSignalInfo), '("deviceRemoved", DeviceManagerDeviceRemovedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method DeviceManager::get_client_pointer
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Device"
 -- throws : False
 -- Skip return : False
@@ -296,8 +335,8 @@
 
 deviceManagerGetClientPointer ::
     (MonadIO m, DeviceManagerK a) =>
-    a ->                                    -- _obj
-    m Device
+    a                                       -- _obj
+    -> m Device                             -- result
 deviceManagerGetClientPointer _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_manager_get_client_pointer _obj'
@@ -306,11 +345,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceManagerGetClientPointerMethodInfo
+instance (signature ~ (m Device), MonadIO m, DeviceManagerK a) => MethodInfo DeviceManagerGetClientPointerMethodInfo a signature where
+    overloadedMethod _ = deviceManagerGetClientPointer
+
 -- method DeviceManager::get_display
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Display"
 -- throws : False
 -- Skip return : False
@@ -322,8 +364,8 @@
 
 deviceManagerGetDisplay ::
     (MonadIO m, DeviceManagerK a) =>
-    a ->                                    -- _obj
-    m Display
+    a                                       -- _obj
+    -> m Display                            -- result
 deviceManagerGetDisplay _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_device_manager_get_display _obj'
@@ -332,11 +374,14 @@
     touchManagedPtr _obj
     return result'
 
+data DeviceManagerGetDisplayMethodInfo
+instance (signature ~ (m Display), MonadIO m, DeviceManagerK a) => MethodInfo DeviceManagerGetDisplayMethodInfo a signature where
+    overloadedMethod _ = deviceManagerGetDisplay
+
 -- method DeviceManager::list_devices
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "DeviceType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "type", argType = TInterface "Gdk" "DeviceType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DeviceManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "type", argType = TInterface "Gdk" "DeviceType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TGList (TInterface "Gdk" "Device")
 -- throws : False
 -- Skip return : False
@@ -349,9 +394,9 @@
 
 deviceManagerListDevices ::
     (MonadIO m, DeviceManagerK a) =>
-    a ->                                    -- _obj
-    DeviceType ->                           -- type
-    m [Device]
+    a                                       -- _obj
+    -> DeviceType                           -- type_
+    -> m [Device]                           -- result
 deviceManagerListDevices _obj type_ = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let type_' = (fromIntegral . fromEnum) type_
@@ -362,5 +407,9 @@
     g_list_free result
     touchManagedPtr _obj
     return result''
+
+data DeviceManagerListDevicesMethodInfo
+instance (signature ~ (DeviceType -> m [Device]), MonadIO m, DeviceManagerK a) => MethodInfo DeviceManagerListDevicesMethodInfo a signature where
+    overloadedMethod _ = deviceManagerListDevices
 
 
diff --git a/GI/Gdk/Objects/DeviceManager.hs-boot b/GI/Gdk/Objects/DeviceManager.hs-boot
--- a/GI/Gdk/Objects/DeviceManager.hs-boot
+++ b/GI/Gdk/Objects/DeviceManager.hs-boot
@@ -15,3 +15,6 @@
 data DeviceManagerDeviceAddedSignalInfo
 data DeviceManagerDeviceChangedSignalInfo
 data DeviceManagerDeviceRemovedSignalInfo
+data DeviceManagerGetClientPointerMethodInfo
+data DeviceManagerGetDisplayMethodInfo
+data DeviceManagerListDevicesMethodInfo
diff --git a/GI/Gdk/Objects/Display.hs b/GI/Gdk/Objects/Display.hs
--- a/GI/Gdk/Objects/Display.hs
+++ b/GI/Gdk/Objects/Display.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,22 +18,27 @@
 
  -- * Methods
 -- ** displayBeep
+    DisplayBeepMethodInfo                   ,
     displayBeep                             ,
 
 
 -- ** displayClose
+    DisplayCloseMethodInfo                  ,
     displayClose                            ,
 
 
 -- ** displayDeviceIsGrabbed
+    DisplayDeviceIsGrabbedMethodInfo        ,
     displayDeviceIsGrabbed                  ,
 
 
 -- ** displayFlush
+    DisplayFlushMethodInfo                  ,
     displayFlush                            ,
 
 
 -- ** displayGetAppLaunchContext
+    DisplayGetAppLaunchContextMethodInfo    ,
     displayGetAppLaunchContext              ,
 
 
@@ -41,66 +47,82 @@
 
 
 -- ** displayGetDefaultCursorSize
+    DisplayGetDefaultCursorSizeMethodInfo   ,
     displayGetDefaultCursorSize             ,
 
 
 -- ** displayGetDefaultGroup
+    DisplayGetDefaultGroupMethodInfo        ,
     displayGetDefaultGroup                  ,
 
 
 -- ** displayGetDefaultScreen
+    DisplayGetDefaultScreenMethodInfo       ,
     displayGetDefaultScreen                 ,
 
 
 -- ** displayGetDeviceManager
+    DisplayGetDeviceManagerMethodInfo       ,
     displayGetDeviceManager                 ,
 
 
 -- ** displayGetEvent
+    DisplayGetEventMethodInfo               ,
     displayGetEvent                         ,
 
 
 -- ** displayGetMaximalCursorSize
+    DisplayGetMaximalCursorSizeMethodInfo   ,
     displayGetMaximalCursorSize             ,
 
 
 -- ** displayGetNScreens
+    DisplayGetNScreensMethodInfo            ,
     displayGetNScreens                      ,
 
 
 -- ** displayGetName
+    DisplayGetNameMethodInfo                ,
     displayGetName                          ,
 
 
 -- ** displayGetPointer
+    DisplayGetPointerMethodInfo             ,
     displayGetPointer                       ,
 
 
 -- ** displayGetScreen
+    DisplayGetScreenMethodInfo              ,
     displayGetScreen                        ,
 
 
 -- ** displayGetWindowAtPointer
+    DisplayGetWindowAtPointerMethodInfo     ,
     displayGetWindowAtPointer               ,
 
 
 -- ** displayHasPending
+    DisplayHasPendingMethodInfo             ,
     displayHasPending                       ,
 
 
 -- ** displayIsClosed
+    DisplayIsClosedMethodInfo               ,
     displayIsClosed                         ,
 
 
 -- ** displayKeyboardUngrab
+    DisplayKeyboardUngrabMethodInfo         ,
     displayKeyboardUngrab                   ,
 
 
 -- ** displayListDevices
+    DisplayListDevicesMethodInfo            ,
     displayListDevices                      ,
 
 
 -- ** displayNotifyStartupComplete
+    DisplayNotifyStartupCompleteMethodInfo  ,
     displayNotifyStartupComplete            ,
 
 
@@ -113,70 +135,87 @@
 
 
 -- ** displayPeekEvent
+    DisplayPeekEventMethodInfo              ,
     displayPeekEvent                        ,
 
 
 -- ** displayPointerIsGrabbed
+    DisplayPointerIsGrabbedMethodInfo       ,
     displayPointerIsGrabbed                 ,
 
 
 -- ** displayPointerUngrab
+    DisplayPointerUngrabMethodInfo          ,
     displayPointerUngrab                    ,
 
 
 -- ** displayPutEvent
+    DisplayPutEventMethodInfo               ,
     displayPutEvent                         ,
 
 
 -- ** displayRequestSelectionNotification
+    DisplayRequestSelectionNotificationMethodInfo,
     displayRequestSelectionNotification     ,
 
 
 -- ** displaySetDoubleClickDistance
+    DisplaySetDoubleClickDistanceMethodInfo ,
     displaySetDoubleClickDistance           ,
 
 
 -- ** displaySetDoubleClickTime
+    DisplaySetDoubleClickTimeMethodInfo     ,
     displaySetDoubleClickTime               ,
 
 
 -- ** displayStoreClipboard
+    DisplayStoreClipboardMethodInfo         ,
     displayStoreClipboard                   ,
 
 
 -- ** displaySupportsClipboardPersistence
+    DisplaySupportsClipboardPersistenceMethodInfo,
     displaySupportsClipboardPersistence     ,
 
 
 -- ** displaySupportsComposite
+    DisplaySupportsCompositeMethodInfo      ,
     displaySupportsComposite                ,
 
 
 -- ** displaySupportsCursorAlpha
+    DisplaySupportsCursorAlphaMethodInfo    ,
     displaySupportsCursorAlpha              ,
 
 
 -- ** displaySupportsCursorColor
+    DisplaySupportsCursorColorMethodInfo    ,
     displaySupportsCursorColor              ,
 
 
 -- ** displaySupportsInputShapes
+    DisplaySupportsInputShapesMethodInfo    ,
     displaySupportsInputShapes              ,
 
 
 -- ** displaySupportsSelectionNotification
+    DisplaySupportsSelectionNotificationMethodInfo,
     displaySupportsSelectionNotification    ,
 
 
 -- ** displaySupportsShapes
+    DisplaySupportsShapesMethodInfo         ,
     displaySupportsShapes                   ,
 
 
 -- ** displaySync
+    DisplaySyncMethodInfo                   ,
     displaySync                             ,
 
 
 -- ** displayWarpPointer
+    DisplayWarpPointerMethodInfo            ,
     displayWarpPointer                      ,
 
 
@@ -243,6 +282,77 @@
 noDisplay :: Maybe Display
 noDisplay = Nothing
 
+type family ResolveDisplayMethod (t :: Symbol) (o :: *) :: * where
+    ResolveDisplayMethod "beep" o = DisplayBeepMethodInfo
+    ResolveDisplayMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveDisplayMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveDisplayMethod "close" o = DisplayCloseMethodInfo
+    ResolveDisplayMethod "deviceIsGrabbed" o = DisplayDeviceIsGrabbedMethodInfo
+    ResolveDisplayMethod "flush" o = DisplayFlushMethodInfo
+    ResolveDisplayMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveDisplayMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveDisplayMethod "hasPending" o = DisplayHasPendingMethodInfo
+    ResolveDisplayMethod "isClosed" o = DisplayIsClosedMethodInfo
+    ResolveDisplayMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveDisplayMethod "keyboardUngrab" o = DisplayKeyboardUngrabMethodInfo
+    ResolveDisplayMethod "listDevices" o = DisplayListDevicesMethodInfo
+    ResolveDisplayMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveDisplayMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveDisplayMethod "notifyStartupComplete" o = DisplayNotifyStartupCompleteMethodInfo
+    ResolveDisplayMethod "peekEvent" o = DisplayPeekEventMethodInfo
+    ResolveDisplayMethod "pointerIsGrabbed" o = DisplayPointerIsGrabbedMethodInfo
+    ResolveDisplayMethod "pointerUngrab" o = DisplayPointerUngrabMethodInfo
+    ResolveDisplayMethod "putEvent" o = DisplayPutEventMethodInfo
+    ResolveDisplayMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveDisplayMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveDisplayMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveDisplayMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveDisplayMethod "requestSelectionNotification" o = DisplayRequestSelectionNotificationMethodInfo
+    ResolveDisplayMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveDisplayMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveDisplayMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveDisplayMethod "storeClipboard" o = DisplayStoreClipboardMethodInfo
+    ResolveDisplayMethod "supportsClipboardPersistence" o = DisplaySupportsClipboardPersistenceMethodInfo
+    ResolveDisplayMethod "supportsComposite" o = DisplaySupportsCompositeMethodInfo
+    ResolveDisplayMethod "supportsCursorAlpha" o = DisplaySupportsCursorAlphaMethodInfo
+    ResolveDisplayMethod "supportsCursorColor" o = DisplaySupportsCursorColorMethodInfo
+    ResolveDisplayMethod "supportsInputShapes" o = DisplaySupportsInputShapesMethodInfo
+    ResolveDisplayMethod "supportsSelectionNotification" o = DisplaySupportsSelectionNotificationMethodInfo
+    ResolveDisplayMethod "supportsShapes" o = DisplaySupportsShapesMethodInfo
+    ResolveDisplayMethod "sync" o = DisplaySyncMethodInfo
+    ResolveDisplayMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveDisplayMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveDisplayMethod "warpPointer" o = DisplayWarpPointerMethodInfo
+    ResolveDisplayMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveDisplayMethod "getAppLaunchContext" o = DisplayGetAppLaunchContextMethodInfo
+    ResolveDisplayMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveDisplayMethod "getDefaultCursorSize" o = DisplayGetDefaultCursorSizeMethodInfo
+    ResolveDisplayMethod "getDefaultGroup" o = DisplayGetDefaultGroupMethodInfo
+    ResolveDisplayMethod "getDefaultScreen" o = DisplayGetDefaultScreenMethodInfo
+    ResolveDisplayMethod "getDeviceManager" o = DisplayGetDeviceManagerMethodInfo
+    ResolveDisplayMethod "getEvent" o = DisplayGetEventMethodInfo
+    ResolveDisplayMethod "getMaximalCursorSize" o = DisplayGetMaximalCursorSizeMethodInfo
+    ResolveDisplayMethod "getNScreens" o = DisplayGetNScreensMethodInfo
+    ResolveDisplayMethod "getName" o = DisplayGetNameMethodInfo
+    ResolveDisplayMethod "getPointer" o = DisplayGetPointerMethodInfo
+    ResolveDisplayMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveDisplayMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveDisplayMethod "getScreen" o = DisplayGetScreenMethodInfo
+    ResolveDisplayMethod "getWindowAtPointer" o = DisplayGetWindowAtPointerMethodInfo
+    ResolveDisplayMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveDisplayMethod "setDoubleClickDistance" o = DisplaySetDoubleClickDistanceMethodInfo
+    ResolveDisplayMethod "setDoubleClickTime" o = DisplaySetDoubleClickTimeMethodInfo
+    ResolveDisplayMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveDisplayMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDisplayMethod t Display, MethodInfo info Display p) => IsLabelProxy t (Display -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDisplayMethod t Display, MethodInfo info Display p) => IsLabel t (Display -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- signal Display::closed
 type DisplayClosedCallback =
     Bool ->
@@ -270,9 +380,9 @@
     CInt ->
     Ptr () ->
     IO ()
-displayClosedCallbackWrapper _cb _ is_error _ = do
-    let is_error' = (/= 0) is_error
-    _cb  is_error'
+displayClosedCallbackWrapper _cb _ isError _ = do
+    let isError' = (/= 0) isError
+    _cb  isError'
 
 onDisplayClosed :: (GObject a, MonadIO m) => a -> DisplayClosedCallback -> m SignalHandlerId
 onDisplayClosed obj cb = liftIO $ connectDisplayClosed obj cb SignalConnectBefore
@@ -337,13 +447,12 @@
     connectSignal _ = connectDisplayOpened
 
 type instance SignalList Display = DisplaySignalList
-type DisplaySignalList = ('[ '("closed", DisplayClosedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("opened", DisplayOpenedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type DisplaySignalList = ('[ '("closed", DisplayClosedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("opened", DisplayOpenedSignalInfo)] :: [(Symbol, *)])
 
 -- method Display::beep
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -355,19 +464,22 @@
 
 displayBeep ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 displayBeep _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_display_beep _obj'
     touchManagedPtr _obj
     return ()
 
+data DisplayBeepMethodInfo
+instance (signature ~ (m ()), MonadIO m, DisplayK a) => MethodInfo DisplayBeepMethodInfo a signature where
+    overloadedMethod _ = displayBeep
+
 -- method Display::close
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -379,19 +491,22 @@
 
 displayClose ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 displayClose _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_display_close _obj'
     touchManagedPtr _obj
     return ()
 
+data DisplayCloseMethodInfo
+instance (signature ~ (m ()), MonadIO m, DisplayK a) => MethodInfo DisplayCloseMethodInfo a signature where
+    overloadedMethod _ = displayClose
+
 -- method Display::device_is_grabbed
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -404,9 +519,9 @@
 
 displayDeviceIsGrabbed ::
     (MonadIO m, DisplayK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m Bool
+    a                                       -- _obj
+    -> b                                    -- device
+    -> m Bool                               -- result
 displayDeviceIsGrabbed _obj device = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let device' = unsafeManagedPtrCastPtr device
@@ -416,11 +531,14 @@
     touchManagedPtr device
     return result'
 
+data DisplayDeviceIsGrabbedMethodInfo
+instance (signature ~ (b -> m Bool), MonadIO m, DisplayK a, DeviceK b) => MethodInfo DisplayDeviceIsGrabbedMethodInfo a signature where
+    overloadedMethod _ = displayDeviceIsGrabbed
+
 -- method Display::flush
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -432,19 +550,22 @@
 
 displayFlush ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 displayFlush _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_display_flush _obj'
     touchManagedPtr _obj
     return ()
 
+data DisplayFlushMethodInfo
+instance (signature ~ (m ()), MonadIO m, DisplayK a) => MethodInfo DisplayFlushMethodInfo a signature where
+    overloadedMethod _ = displayFlush
+
 -- method Display::get_app_launch_context
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "AppLaunchContext"
 -- throws : False
 -- Skip return : False
@@ -456,8 +577,8 @@
 
 displayGetAppLaunchContext ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m AppLaunchContext
+    a                                       -- _obj
+    -> m AppLaunchContext                   -- result
 displayGetAppLaunchContext _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_get_app_launch_context _obj'
@@ -466,11 +587,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayGetAppLaunchContextMethodInfo
+instance (signature ~ (m AppLaunchContext), MonadIO m, DisplayK a) => MethodInfo DisplayGetAppLaunchContextMethodInfo a signature where
+    overloadedMethod _ = displayGetAppLaunchContext
+
 -- method Display::get_default_cursor_size
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUInt32
 -- throws : False
 -- Skip return : False
@@ -482,19 +606,22 @@
 
 displayGetDefaultCursorSize ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Word32
+    a                                       -- _obj
+    -> m Word32                             -- result
 displayGetDefaultCursorSize _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_get_default_cursor_size _obj'
     touchManagedPtr _obj
     return result
 
+data DisplayGetDefaultCursorSizeMethodInfo
+instance (signature ~ (m Word32), MonadIO m, DisplayK a) => MethodInfo DisplayGetDefaultCursorSizeMethodInfo a signature where
+    overloadedMethod _ = displayGetDefaultCursorSize
+
 -- method Display::get_default_group
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -506,8 +633,8 @@
 
 displayGetDefaultGroup ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Window
+    a                                       -- _obj
+    -> m Window                             -- result
 displayGetDefaultGroup _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_get_default_group _obj'
@@ -516,11 +643,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayGetDefaultGroupMethodInfo
+instance (signature ~ (m Window), MonadIO m, DisplayK a) => MethodInfo DisplayGetDefaultGroupMethodInfo a signature where
+    overloadedMethod _ = displayGetDefaultGroup
+
 -- method Display::get_default_screen
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Screen"
 -- throws : False
 -- Skip return : False
@@ -532,8 +662,8 @@
 
 displayGetDefaultScreen ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Screen
+    a                                       -- _obj
+    -> m Screen                             -- result
 displayGetDefaultScreen _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_get_default_screen _obj'
@@ -542,11 +672,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayGetDefaultScreenMethodInfo
+instance (signature ~ (m Screen), MonadIO m, DisplayK a) => MethodInfo DisplayGetDefaultScreenMethodInfo a signature where
+    overloadedMethod _ = displayGetDefaultScreen
+
 -- method Display::get_device_manager
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "DeviceManager"
 -- throws : False
 -- Skip return : False
@@ -558,8 +691,8 @@
 
 displayGetDeviceManager ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m DeviceManager
+    a                                       -- _obj
+    -> m DeviceManager                      -- result
 displayGetDeviceManager _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_get_device_manager _obj'
@@ -568,11 +701,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayGetDeviceManagerMethodInfo
+instance (signature ~ (m DeviceManager), MonadIO m, DisplayK a) => MethodInfo DisplayGetDeviceManagerMethodInfo a signature where
+    overloadedMethod _ = displayGetDeviceManager
+
 -- method Display::get_event
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Event"
 -- throws : False
 -- Skip return : False
@@ -584,8 +720,8 @@
 
 displayGetEvent ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Event
+    a                                       -- _obj
+    -> m Event                              -- result
 displayGetEvent _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_get_event _obj'
@@ -594,11 +730,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayGetEventMethodInfo
+instance (signature ~ (m Event), MonadIO m, DisplayK a) => MethodInfo DisplayGetEventMethodInfo a signature where
+    overloadedMethod _ = displayGetEvent
+
 -- method Display::get_maximal_cursor_size
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "height", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "height", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -612,8 +751,8 @@
 
 displayGetMaximalCursorSize ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m (Word32,Word32)
+    a                                       -- _obj
+    -> m (Word32,Word32)                    -- result
 displayGetMaximalCursorSize _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     width <- allocMem :: IO (Ptr Word32)
@@ -626,11 +765,14 @@
     freeMem height
     return (width', height')
 
+data DisplayGetMaximalCursorSizeMethodInfo
+instance (signature ~ (m (Word32,Word32)), MonadIO m, DisplayK a) => MethodInfo DisplayGetMaximalCursorSizeMethodInfo a signature where
+    overloadedMethod _ = displayGetMaximalCursorSize
+
 -- method Display::get_n_screens
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -642,19 +784,22 @@
 {-# DEPRECATED displayGetNScreens ["(Since version 3.10)","The number of screens is always 1."]#-}
 displayGetNScreens ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 displayGetNScreens _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_get_n_screens _obj'
     touchManagedPtr _obj
     return result
 
+data DisplayGetNScreensMethodInfo
+instance (signature ~ (m Int32), MonadIO m, DisplayK a) => MethodInfo DisplayGetNScreensMethodInfo a signature where
+    overloadedMethod _ = displayGetNScreens
+
 -- method Display::get_name
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -666,8 +811,8 @@
 
 displayGetName ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m T.Text
+    a                                       -- _obj
+    -> m T.Text                             -- result
 displayGetName _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_get_name _obj'
@@ -676,11 +821,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayGetNameMethodInfo
+instance (signature ~ (m T.Text), MonadIO m, DisplayK a) => MethodInfo DisplayGetNameMethodInfo a signature where
+    overloadedMethod _ = displayGetName
+
 -- method Display::get_pointer
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -696,8 +844,8 @@
 {-# DEPRECATED displayGetPointer ["(Since version 3.0)","Use gdk_device_get_position() instead."]#-}
 displayGetPointer ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m (Screen,Int32,Int32,[ModifierType])
+    a                                       -- _obj
+    -> m (Screen,Int32,Int32,[ModifierType])-- result
 displayGetPointer _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     screen <- allocMem :: IO (Ptr (Ptr Screen))
@@ -718,11 +866,14 @@
     freeMem mask
     return (screen'', x', y', mask'')
 
+data DisplayGetPointerMethodInfo
+instance (signature ~ (m (Screen,Int32,Int32,[ModifierType])), MonadIO m, DisplayK a) => MethodInfo DisplayGetPointerMethodInfo a signature where
+    overloadedMethod _ = displayGetPointer
+
 -- method Display::get_screen
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screen_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Screen"
 -- throws : False
 -- Skip return : False
@@ -735,22 +886,25 @@
 
 displayGetScreen ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- screen_num
-    m Screen
-displayGetScreen _obj screen_num = liftIO $ do
+    a                                       -- _obj
+    -> Int32                                -- screenNum
+    -> m Screen                             -- result
+displayGetScreen _obj screenNum = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_display_get_screen _obj' screen_num
+    result <- gdk_display_get_screen _obj' screenNum
     checkUnexpectedReturnNULL "gdk_display_get_screen" result
     result' <- (newObject Screen) result
     touchManagedPtr _obj
     return result'
 
+data DisplayGetScreenMethodInfo
+instance (signature ~ (Int32 -> m Screen), MonadIO m, DisplayK a) => MethodInfo DisplayGetScreenMethodInfo a signature where
+    overloadedMethod _ = displayGetScreen
+
 -- method Display::get_window_at_pointer
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -764,27 +918,30 @@
 {-# DEPRECATED displayGetWindowAtPointer ["(Since version 3.0)","Use gdk_device_get_window_at_position() instead."]#-}
 displayGetWindowAtPointer ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m (Window,Int32,Int32)
+    a                                       -- _obj
+    -> m (Window,Int32,Int32)               -- result
 displayGetWindowAtPointer _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    win_x <- allocMem :: IO (Ptr Int32)
-    win_y <- allocMem :: IO (Ptr Int32)
-    result <- gdk_display_get_window_at_pointer _obj' win_x win_y
+    winX <- allocMem :: IO (Ptr Int32)
+    winY <- allocMem :: IO (Ptr Int32)
+    result <- gdk_display_get_window_at_pointer _obj' winX winY
     checkUnexpectedReturnNULL "gdk_display_get_window_at_pointer" result
     result' <- (newObject Window) result
-    win_x' <- peek win_x
-    win_y' <- peek win_y
+    winX' <- peek winX
+    winY' <- peek winY
     touchManagedPtr _obj
-    freeMem win_x
-    freeMem win_y
-    return (result', win_x', win_y')
+    freeMem winX
+    freeMem winY
+    return (result', winX', winY')
 
+data DisplayGetWindowAtPointerMethodInfo
+instance (signature ~ (m (Window,Int32,Int32)), MonadIO m, DisplayK a) => MethodInfo DisplayGetWindowAtPointerMethodInfo a signature where
+    overloadedMethod _ = displayGetWindowAtPointer
+
 -- method Display::has_pending
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -796,8 +953,8 @@
 
 displayHasPending ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 displayHasPending _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_has_pending _obj'
@@ -805,11 +962,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayHasPendingMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DisplayK a) => MethodInfo DisplayHasPendingMethodInfo a signature where
+    overloadedMethod _ = displayHasPending
+
 -- method Display::is_closed
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -821,8 +981,8 @@
 
 displayIsClosed ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 displayIsClosed _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_is_closed _obj'
@@ -830,11 +990,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayIsClosedMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DisplayK a) => MethodInfo DisplayIsClosedMethodInfo a signature where
+    overloadedMethod _ = displayIsClosed
+
 -- method Display::keyboard_ungrab
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -847,20 +1010,23 @@
 {-# DEPRECATED displayKeyboardUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
 displayKeyboardUngrab ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- time_
-    m ()
-displayKeyboardUngrab _obj time_ = liftIO $ do
+    a                                       -- _obj
+    -> Word32                               -- time
+    -> m ()                                 -- result
+displayKeyboardUngrab _obj time = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_display_keyboard_ungrab _obj' time_
+    gdk_display_keyboard_ungrab _obj' time
     touchManagedPtr _obj
     return ()
 
+data DisplayKeyboardUngrabMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m, DisplayK a) => MethodInfo DisplayKeyboardUngrabMethodInfo a signature where
+    overloadedMethod _ = displayKeyboardUngrab
+
 -- method Display::list_devices
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TGList (TInterface "Gdk" "Device")
 -- throws : False
 -- Skip return : False
@@ -872,8 +1038,8 @@
 {-# DEPRECATED displayListDevices ["(Since version 3.0)","Use gdk_device_manager_list_devices() instead."]#-}
 displayListDevices ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m [Device]
+    a                                       -- _obj
+    -> m [Device]                           -- result
 displayListDevices _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_list_devices _obj'
@@ -883,11 +1049,14 @@
     touchManagedPtr _obj
     return result''
 
+data DisplayListDevicesMethodInfo
+instance (signature ~ (m [Device]), MonadIO m, DisplayK a) => MethodInfo DisplayListDevicesMethodInfo a signature where
+    overloadedMethod _ = displayListDevices
+
 -- method Display::notify_startup_complete
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -900,22 +1069,25 @@
 
 displayNotifyStartupComplete ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- startup_id
-    m ()
-displayNotifyStartupComplete _obj startup_id = liftIO $ do
+    a                                       -- _obj
+    -> T.Text                               -- startupId
+    -> m ()                                 -- result
+displayNotifyStartupComplete _obj startupId = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    startup_id' <- textToCString startup_id
-    gdk_display_notify_startup_complete _obj' startup_id'
+    startupId' <- textToCString startupId
+    gdk_display_notify_startup_complete _obj' startupId'
     touchManagedPtr _obj
-    freeMem startup_id'
+    freeMem startupId'
     return ()
 
+data DisplayNotifyStartupCompleteMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m, DisplayK a) => MethodInfo DisplayNotifyStartupCompleteMethodInfo a signature where
+    overloadedMethod _ = displayNotifyStartupComplete
+
 -- method Display::peek_event
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Event"
 -- throws : False
 -- Skip return : False
@@ -927,8 +1099,8 @@
 
 displayPeekEvent ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Event
+    a                                       -- _obj
+    -> m Event                              -- result
 displayPeekEvent _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_peek_event _obj'
@@ -937,11 +1109,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayPeekEventMethodInfo
+instance (signature ~ (m Event), MonadIO m, DisplayK a) => MethodInfo DisplayPeekEventMethodInfo a signature where
+    overloadedMethod _ = displayPeekEvent
+
 -- method Display::pointer_is_grabbed
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -953,8 +1128,8 @@
 {-# DEPRECATED displayPointerIsGrabbed ["(Since version 3.0)","Use gdk_display_device_is_grabbed() instead."]#-}
 displayPointerIsGrabbed ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 displayPointerIsGrabbed _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_pointer_is_grabbed _obj'
@@ -962,11 +1137,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayPointerIsGrabbedMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DisplayK a) => MethodInfo DisplayPointerIsGrabbedMethodInfo a signature where
+    overloadedMethod _ = displayPointerIsGrabbed
+
 -- method Display::pointer_ungrab
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -979,20 +1157,23 @@
 {-# DEPRECATED displayPointerUngrab ["(Since version 3.0)","Use gdk_device_ungrab(), together with gdk_device_grab()","            instead."]#-}
 displayPointerUngrab ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- time_
-    m ()
-displayPointerUngrab _obj time_ = liftIO $ do
+    a                                       -- _obj
+    -> Word32                               -- time
+    -> m ()                                 -- result
+displayPointerUngrab _obj time = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_display_pointer_ungrab _obj' time_
+    gdk_display_pointer_ungrab _obj' time
     touchManagedPtr _obj
     return ()
 
+data DisplayPointerUngrabMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m, DisplayK a) => MethodInfo DisplayPointerUngrabMethodInfo a signature where
+    overloadedMethod _ = displayPointerUngrab
+
 -- method Display::put_event
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1005,9 +1186,9 @@
 
 displayPutEvent ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Event ->                                -- event
-    m ()
+    a                                       -- _obj
+    -> Event                                -- event
+    -> m ()                                 -- result
 displayPutEvent _obj event = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let event' = unsafeManagedPtrGetPtr event
@@ -1016,11 +1197,14 @@
     touchManagedPtr event
     return ()
 
+data DisplayPutEventMethodInfo
+instance (signature ~ (Event -> m ()), MonadIO m, DisplayK a) => MethodInfo DisplayPutEventMethodInfo a signature where
+    overloadedMethod _ = displayPutEvent
+
 -- method Display::request_selection_notification
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "selection", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1033,9 +1217,9 @@
 
 displayRequestSelectionNotification ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Atom ->                                 -- selection
-    m Bool
+    a                                       -- _obj
+    -> Atom                                 -- selection
+    -> m Bool                               -- result
 displayRequestSelectionNotification _obj selection = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let selection' = unsafeManagedPtrGetPtr selection
@@ -1045,11 +1229,14 @@
     touchManagedPtr selection
     return result'
 
+data DisplayRequestSelectionNotificationMethodInfo
+instance (signature ~ (Atom -> m Bool), MonadIO m, DisplayK a) => MethodInfo DisplayRequestSelectionNotificationMethodInfo a signature where
+    overloadedMethod _ = displayRequestSelectionNotification
+
 -- method Display::set_double_click_distance
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "distance", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "distance", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "distance", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1062,20 +1249,23 @@
 
 displaySetDoubleClickDistance ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- distance
-    m ()
+    a                                       -- _obj
+    -> Word32                               -- distance
+    -> m ()                                 -- result
 displaySetDoubleClickDistance _obj distance = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_display_set_double_click_distance _obj' distance
     touchManagedPtr _obj
     return ()
 
+data DisplaySetDoubleClickDistanceMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m, DisplayK a) => MethodInfo DisplaySetDoubleClickDistanceMethodInfo a signature where
+    overloadedMethod _ = displaySetDoubleClickDistance
+
 -- method Display::set_double_click_time
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "msec", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1088,20 +1278,23 @@
 
 displaySetDoubleClickTime ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- msec
-    m ()
+    a                                       -- _obj
+    -> Word32                               -- msec
+    -> m ()                                 -- result
 displaySetDoubleClickTime _obj msec = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_display_set_double_click_time _obj' msec
     touchManagedPtr _obj
     return ()
 
+data DisplaySetDoubleClickTimeMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m, DisplayK a) => MethodInfo DisplaySetDoubleClickTimeMethodInfo a signature where
+    overloadedMethod _ = displaySetDoubleClickTime
+
 -- method Display::store_clipboard
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "clipboard_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TCArray False (-1) 4 (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : [Arg {argName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "clipboard_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "targets", argType = TCArray False (-1) 4 (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "clipboard_window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "time_", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "targets", argType = TCArray False (-1) 4 (TInterface "Gdk" "Atom"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : [Arg {argCName = "n_targets", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1117,29 +1310,32 @@
 
 displayStoreClipboard ::
     (MonadIO m, DisplayK a, WindowK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- clipboard_window
-    Word32 ->                               -- time_
-    [Atom] ->                               -- targets
-    m ()
-displayStoreClipboard _obj clipboard_window time_ targets = liftIO $ do
-    let n_targets = fromIntegral $ length targets
+    a                                       -- _obj
+    -> b                                    -- clipboardWindow
+    -> Word32                               -- time
+    -> [Atom]                               -- targets
+    -> m ()                                 -- result
+displayStoreClipboard _obj clipboardWindow time targets = liftIO $ do
+    let nTargets = fromIntegral $ length targets
     let _obj' = unsafeManagedPtrCastPtr _obj
-    let clipboard_window' = unsafeManagedPtrCastPtr clipboard_window
+    let clipboardWindow' = unsafeManagedPtrCastPtr clipboardWindow
     let targets' = map unsafeManagedPtrGetPtr targets
     targets'' <- packPtrArray targets'
-    gdk_display_store_clipboard _obj' clipboard_window' time_ targets'' n_targets
+    gdk_display_store_clipboard _obj' clipboardWindow' time targets'' nTargets
     touchManagedPtr _obj
-    touchManagedPtr clipboard_window
+    touchManagedPtr clipboardWindow
     mapM_ touchManagedPtr targets
     freeMem targets''
     return ()
 
+data DisplayStoreClipboardMethodInfo
+instance (signature ~ (b -> Word32 -> [Atom] -> m ()), MonadIO m, DisplayK a, WindowK b) => MethodInfo DisplayStoreClipboardMethodInfo a signature where
+    overloadedMethod _ = displayStoreClipboard
+
 -- method Display::supports_clipboard_persistence
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1151,8 +1347,8 @@
 
 displaySupportsClipboardPersistence ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 displaySupportsClipboardPersistence _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_supports_clipboard_persistence _obj'
@@ -1160,11 +1356,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplaySupportsClipboardPersistenceMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DisplayK a) => MethodInfo DisplaySupportsClipboardPersistenceMethodInfo a signature where
+    overloadedMethod _ = displaySupportsClipboardPersistence
+
 -- method Display::supports_composite
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1176,8 +1375,8 @@
 {-# DEPRECATED displaySupportsComposite ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
 displaySupportsComposite ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 displaySupportsComposite _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_supports_composite _obj'
@@ -1185,11 +1384,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplaySupportsCompositeMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DisplayK a) => MethodInfo DisplaySupportsCompositeMethodInfo a signature where
+    overloadedMethod _ = displaySupportsComposite
+
 -- method Display::supports_cursor_alpha
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1201,8 +1403,8 @@
 
 displaySupportsCursorAlpha ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 displaySupportsCursorAlpha _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_supports_cursor_alpha _obj'
@@ -1210,11 +1412,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplaySupportsCursorAlphaMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DisplayK a) => MethodInfo DisplaySupportsCursorAlphaMethodInfo a signature where
+    overloadedMethod _ = displaySupportsCursorAlpha
+
 -- method Display::supports_cursor_color
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1226,8 +1431,8 @@
 
 displaySupportsCursorColor ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 displaySupportsCursorColor _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_supports_cursor_color _obj'
@@ -1235,11 +1440,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplaySupportsCursorColorMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DisplayK a) => MethodInfo DisplaySupportsCursorColorMethodInfo a signature where
+    overloadedMethod _ = displaySupportsCursorColor
+
 -- method Display::supports_input_shapes
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1251,8 +1459,8 @@
 
 displaySupportsInputShapes ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 displaySupportsInputShapes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_supports_input_shapes _obj'
@@ -1260,11 +1468,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplaySupportsInputShapesMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DisplayK a) => MethodInfo DisplaySupportsInputShapesMethodInfo a signature where
+    overloadedMethod _ = displaySupportsInputShapes
+
 -- method Display::supports_selection_notification
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1276,8 +1487,8 @@
 
 displaySupportsSelectionNotification ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 displaySupportsSelectionNotification _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_supports_selection_notification _obj'
@@ -1285,11 +1496,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplaySupportsSelectionNotificationMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DisplayK a) => MethodInfo DisplaySupportsSelectionNotificationMethodInfo a signature where
+    overloadedMethod _ = displaySupportsSelectionNotification
+
 -- method Display::supports_shapes
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1301,8 +1515,8 @@
 
 displaySupportsShapes ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 displaySupportsShapes _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_supports_shapes _obj'
@@ -1310,11 +1524,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplaySupportsShapesMethodInfo
+instance (signature ~ (m Bool), MonadIO m, DisplayK a) => MethodInfo DisplaySupportsShapesMethodInfo a signature where
+    overloadedMethod _ = displaySupportsShapes
+
 -- method Display::sync
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1326,19 +1543,22 @@
 
 displaySync ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 displaySync _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_display_sync _obj'
     touchManagedPtr _obj
     return ()
 
+data DisplaySyncMethodInfo
+instance (signature ~ (m ()), MonadIO m, DisplayK a) => MethodInfo DisplaySyncMethodInfo a signature where
+    overloadedMethod _ = displaySync
+
 -- method Display::warp_pointer
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1353,11 +1573,11 @@
 {-# DEPRECATED displayWarpPointer ["(Since version 3.0)","Use gdk_device_warp() instead."]#-}
 displayWarpPointer ::
     (MonadIO m, DisplayK a, ScreenK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- screen
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m ()
+    a                                       -- _obj
+    -> b                                    -- screen
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> m ()                                 -- result
 displayWarpPointer _obj screen x y = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let screen' = unsafeManagedPtrCastPtr screen
@@ -1366,11 +1586,14 @@
     touchManagedPtr screen
     return ()
 
+data DisplayWarpPointerMethodInfo
+instance (signature ~ (b -> Int32 -> Int32 -> m ()), MonadIO m, DisplayK a, ScreenK b) => MethodInfo DisplayWarpPointerMethodInfo a signature where
+    overloadedMethod _ = displayWarpPointer
+
 -- method Display::get_default
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "Gdk" "Display"
 -- throws : False
 -- Skip return : False
@@ -1381,7 +1604,7 @@
 
 displayGetDefault ::
     (MonadIO m) =>
-    m Display
+    m Display                               -- result
 displayGetDefault  = liftIO $ do
     result <- gdk_display_get_default
     checkUnexpectedReturnNULL "gdk_display_get_default" result
@@ -1390,9 +1613,8 @@
 
 -- method Display::open
 -- method type : MemberFunction
--- Args : [Arg {argName = "display_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "display_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "display_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Display"
 -- throws : False
 -- Skip return : False
@@ -1404,21 +1626,20 @@
 
 displayOpen ::
     (MonadIO m) =>
-    T.Text ->                               -- display_name
-    m Display
-displayOpen display_name = liftIO $ do
-    display_name' <- textToCString display_name
-    result <- gdk_display_open display_name'
+    T.Text                                  -- displayName
+    -> m Display                            -- result
+displayOpen displayName = liftIO $ do
+    displayName' <- textToCString displayName
+    result <- gdk_display_open displayName'
     checkUnexpectedReturnNULL "gdk_display_open" result
     result' <- (newObject Display) result
-    freeMem display_name'
+    freeMem displayName'
     return result'
 
 -- method Display::open_default_libgtk_only
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "Gdk" "Display"
 -- throws : False
 -- Skip return : False
@@ -1429,7 +1650,7 @@
 {-# DEPRECATED displayOpenDefaultLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside","  of GTK+"]#-}
 displayOpenDefaultLibgtkOnly ::
     (MonadIO m) =>
-    m Display
+    m Display                               -- result
 displayOpenDefaultLibgtkOnly  = liftIO $ do
     result <- gdk_display_open_default_libgtk_only
     checkUnexpectedReturnNULL "gdk_display_open_default_libgtk_only" result
diff --git a/GI/Gdk/Objects/Display.hs-boot b/GI/Gdk/Objects/Display.hs-boot
--- a/GI/Gdk/Objects/Display.hs-boot
+++ b/GI/Gdk/Objects/Display.hs-boot
@@ -13,3 +13,41 @@
 instance (GObject o, IsDescendantOf Display o) => DisplayK o
 data DisplayClosedSignalInfo
 data DisplayOpenedSignalInfo
+data DisplayBeepMethodInfo
+data DisplayCloseMethodInfo
+data DisplayDeviceIsGrabbedMethodInfo
+data DisplayFlushMethodInfo
+data DisplayGetAppLaunchContextMethodInfo
+data DisplayGetDefaultCursorSizeMethodInfo
+data DisplayGetDefaultGroupMethodInfo
+data DisplayGetDefaultScreenMethodInfo
+data DisplayGetDeviceManagerMethodInfo
+data DisplayGetEventMethodInfo
+data DisplayGetMaximalCursorSizeMethodInfo
+data DisplayGetNScreensMethodInfo
+data DisplayGetNameMethodInfo
+data DisplayGetPointerMethodInfo
+data DisplayGetScreenMethodInfo
+data DisplayGetWindowAtPointerMethodInfo
+data DisplayHasPendingMethodInfo
+data DisplayIsClosedMethodInfo
+data DisplayKeyboardUngrabMethodInfo
+data DisplayListDevicesMethodInfo
+data DisplayNotifyStartupCompleteMethodInfo
+data DisplayPeekEventMethodInfo
+data DisplayPointerIsGrabbedMethodInfo
+data DisplayPointerUngrabMethodInfo
+data DisplayPutEventMethodInfo
+data DisplayRequestSelectionNotificationMethodInfo
+data DisplaySetDoubleClickDistanceMethodInfo
+data DisplaySetDoubleClickTimeMethodInfo
+data DisplayStoreClipboardMethodInfo
+data DisplaySupportsClipboardPersistenceMethodInfo
+data DisplaySupportsCompositeMethodInfo
+data DisplaySupportsCursorAlphaMethodInfo
+data DisplaySupportsCursorColorMethodInfo
+data DisplaySupportsInputShapesMethodInfo
+data DisplaySupportsSelectionNotificationMethodInfo
+data DisplaySupportsShapesMethodInfo
+data DisplaySyncMethodInfo
+data DisplayWarpPointerMethodInfo
diff --git a/GI/Gdk/Objects/DisplayManager.hs b/GI/Gdk/Objects/DisplayManager.hs
--- a/GI/Gdk/Objects/DisplayManager.hs
+++ b/GI/Gdk/Objects/DisplayManager.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -21,18 +22,22 @@
 
 
 -- ** displayManagerGetDefaultDisplay
+    DisplayManagerGetDefaultDisplayMethodInfo,
     displayManagerGetDefaultDisplay         ,
 
 
 -- ** displayManagerListDisplays
+    DisplayManagerListDisplaysMethodInfo    ,
     displayManagerListDisplays              ,
 
 
 -- ** displayManagerOpenDisplay
+    DisplayManagerOpenDisplayMethodInfo     ,
     displayManagerOpenDisplay               ,
 
 
 -- ** displayManagerSetDefaultDisplay
+    DisplayManagerSetDefaultDisplayMethodInfo,
     displayManagerSetDefaultDisplay         ,
 
 
@@ -97,6 +102,43 @@
 noDisplayManager :: Maybe DisplayManager
 noDisplayManager = Nothing
 
+type family ResolveDisplayManagerMethod (t :: Symbol) (o :: *) :: * where
+    ResolveDisplayManagerMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveDisplayManagerMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveDisplayManagerMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveDisplayManagerMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveDisplayManagerMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveDisplayManagerMethod "listDisplays" o = DisplayManagerListDisplaysMethodInfo
+    ResolveDisplayManagerMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveDisplayManagerMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveDisplayManagerMethod "openDisplay" o = DisplayManagerOpenDisplayMethodInfo
+    ResolveDisplayManagerMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveDisplayManagerMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveDisplayManagerMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveDisplayManagerMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveDisplayManagerMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveDisplayManagerMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveDisplayManagerMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveDisplayManagerMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveDisplayManagerMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveDisplayManagerMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveDisplayManagerMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveDisplayManagerMethod "getDefaultDisplay" o = DisplayManagerGetDefaultDisplayMethodInfo
+    ResolveDisplayManagerMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveDisplayManagerMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveDisplayManagerMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveDisplayManagerMethod "setDefaultDisplay" o = DisplayManagerSetDefaultDisplayMethodInfo
+    ResolveDisplayManagerMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveDisplayManagerMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDisplayManagerMethod t DisplayManager, MethodInfo info DisplayManager p) => IsLabelProxy t (DisplayManager -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDisplayManagerMethod t DisplayManager, MethodInfo info DisplayManager p) => IsLabel t (DisplayManager -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- signal DisplayManager::display-opened
 type DisplayManagerDisplayOpenedCallback =
     Display ->
@@ -158,13 +200,13 @@
     type AttrSetTypeConstraint DisplayManagerDefaultDisplayPropertyInfo = DisplayK
     type AttrBaseTypeConstraint DisplayManagerDefaultDisplayPropertyInfo = DisplayManagerK
     type AttrGetType DisplayManagerDefaultDisplayPropertyInfo = Display
-    type AttrLabel DisplayManagerDefaultDisplayPropertyInfo = "DisplayManager::default-display"
+    type AttrLabel DisplayManagerDefaultDisplayPropertyInfo = "default-display"
     attrGet _ = getDisplayManagerDefaultDisplay
     attrSet _ = setDisplayManagerDefaultDisplay
     attrConstruct _ = constructDisplayManagerDefaultDisplay
 
 type instance AttributeList DisplayManager = DisplayManagerAttributeList
-type DisplayManagerAttributeList = ('[ '("default-display", DisplayManagerDefaultDisplayPropertyInfo)] :: [(Symbol, *)])
+type DisplayManagerAttributeList = ('[ '("defaultDisplay", DisplayManagerDefaultDisplayPropertyInfo)] :: [(Symbol, *)])
 
 data DisplayManagerDisplayOpenedSignalInfo
 instance SignalInfo DisplayManagerDisplayOpenedSignalInfo where
@@ -172,13 +214,12 @@
     connectSignal _ = connectDisplayManagerDisplayOpened
 
 type instance SignalList DisplayManager = DisplayManagerSignalList
-type DisplayManagerSignalList = ('[ '("display-opened", DisplayManagerDisplayOpenedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type DisplayManagerSignalList = ('[ '("displayOpened", DisplayManagerDisplayOpenedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method DisplayManager::get_default_display
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Display"
 -- throws : False
 -- Skip return : False
@@ -190,8 +231,8 @@
 
 displayManagerGetDefaultDisplay ::
     (MonadIO m, DisplayManagerK a) =>
-    a ->                                    -- _obj
-    m Display
+    a                                       -- _obj
+    -> m Display                            -- result
 displayManagerGetDefaultDisplay _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_manager_get_default_display _obj'
@@ -200,11 +241,14 @@
     touchManagedPtr _obj
     return result'
 
+data DisplayManagerGetDefaultDisplayMethodInfo
+instance (signature ~ (m Display), MonadIO m, DisplayManagerK a) => MethodInfo DisplayManagerGetDefaultDisplayMethodInfo a signature where
+    overloadedMethod _ = displayManagerGetDefaultDisplay
+
 -- method DisplayManager::list_displays
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TGSList (TInterface "Gdk" "Display")
 -- throws : False
 -- Skip return : False
@@ -216,8 +260,8 @@
 
 displayManagerListDisplays ::
     (MonadIO m, DisplayManagerK a) =>
-    a ->                                    -- _obj
-    m [Display]
+    a                                       -- _obj
+    -> m [Display]                          -- result
 displayManagerListDisplays _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_display_manager_list_displays _obj'
@@ -228,11 +272,14 @@
     touchManagedPtr _obj
     return result''
 
+data DisplayManagerListDisplaysMethodInfo
+instance (signature ~ (m [Display]), MonadIO m, DisplayManagerK a) => MethodInfo DisplayManagerListDisplaysMethodInfo a signature where
+    overloadedMethod _ = displayManagerListDisplays
+
 -- method DisplayManager::open_display
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", 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 "Gdk" "DisplayManager", 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 "Gdk" "DisplayManager", 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 "Gdk" "Display"
 -- throws : False
 -- Skip return : False
@@ -245,9 +292,9 @@
 
 displayManagerOpenDisplay ::
     (MonadIO m, DisplayManagerK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- name
-    m Display
+    a                                       -- _obj
+    -> T.Text                               -- name
+    -> m Display                            -- result
 displayManagerOpenDisplay _obj name = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     name' <- textToCString name
@@ -258,11 +305,14 @@
     freeMem name'
     return result'
 
+data DisplayManagerOpenDisplayMethodInfo
+instance (signature ~ (T.Text -> m Display), MonadIO m, DisplayManagerK a) => MethodInfo DisplayManagerOpenDisplayMethodInfo a signature where
+    overloadedMethod _ = displayManagerOpenDisplay
+
 -- method DisplayManager::set_default_display
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DisplayManager", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -275,9 +325,9 @@
 
 displayManagerSetDefaultDisplay ::
     (MonadIO m, DisplayManagerK a, DisplayK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- display
-    m ()
+    a                                       -- _obj
+    -> b                                    -- display
+    -> m ()                                 -- result
 displayManagerSetDefaultDisplay _obj display = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let display' = unsafeManagedPtrCastPtr display
@@ -286,11 +336,14 @@
     touchManagedPtr display
     return ()
 
+data DisplayManagerSetDefaultDisplayMethodInfo
+instance (signature ~ (b -> m ()), MonadIO m, DisplayManagerK a, DisplayK b) => MethodInfo DisplayManagerSetDefaultDisplayMethodInfo a signature where
+    overloadedMethod _ = displayManagerSetDefaultDisplay
+
 -- method DisplayManager::get
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "Gdk" "DisplayManager"
 -- throws : False
 -- Skip return : False
@@ -301,7 +354,7 @@
 
 displayManagerGet ::
     (MonadIO m) =>
-    m DisplayManager
+    m DisplayManager                        -- result
 displayManagerGet  = liftIO $ do
     result <- gdk_display_manager_get
     checkUnexpectedReturnNULL "gdk_display_manager_get" result
diff --git a/GI/Gdk/Objects/DisplayManager.hs-boot b/GI/Gdk/Objects/DisplayManager.hs-boot
--- a/GI/Gdk/Objects/DisplayManager.hs-boot
+++ b/GI/Gdk/Objects/DisplayManager.hs-boot
@@ -13,3 +13,7 @@
 instance (GObject o, IsDescendantOf DisplayManager o) => DisplayManagerK o
 data DisplayManagerDefaultDisplayPropertyInfo
 data DisplayManagerDisplayOpenedSignalInfo
+data DisplayManagerGetDefaultDisplayMethodInfo
+data DisplayManagerListDisplaysMethodInfo
+data DisplayManagerOpenDisplayMethodInfo
+data DisplayManagerSetDefaultDisplayMethodInfo
diff --git a/GI/Gdk/Objects/DragContext.hs b/GI/Gdk/Objects/DragContext.hs
--- a/GI/Gdk/Objects/DragContext.hs
+++ b/GI/Gdk/Objects/DragContext.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,38 +18,47 @@
 
  -- * Methods
 -- ** dragContextGetActions
+    DragContextGetActionsMethodInfo         ,
     dragContextGetActions                   ,
 
 
 -- ** dragContextGetDestWindow
+    DragContextGetDestWindowMethodInfo      ,
     dragContextGetDestWindow                ,
 
 
 -- ** dragContextGetDevice
+    DragContextGetDeviceMethodInfo          ,
     dragContextGetDevice                    ,
 
 
 -- ** dragContextGetProtocol
+    DragContextGetProtocolMethodInfo        ,
     dragContextGetProtocol                  ,
 
 
 -- ** dragContextGetSelectedAction
+    DragContextGetSelectedActionMethodInfo  ,
     dragContextGetSelectedAction            ,
 
 
 -- ** dragContextGetSourceWindow
+    DragContextGetSourceWindowMethodInfo    ,
     dragContextGetSourceWindow              ,
 
 
 -- ** dragContextGetSuggestedAction
+    DragContextGetSuggestedActionMethodInfo ,
     dragContextGetSuggestedAction           ,
 
 
 -- ** dragContextListTargets
+    DragContextListTargetsMethodInfo        ,
     dragContextListTargets                  ,
 
 
 -- ** dragContextSetDevice
+    DragContextSetDeviceMethodInfo          ,
     dragContextSetDevice                    ,
 
 
@@ -88,17 +98,58 @@
 noDragContext :: Maybe DragContext
 noDragContext = Nothing
 
+type family ResolveDragContextMethod (t :: Symbol) (o :: *) :: * where
+    ResolveDragContextMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveDragContextMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveDragContextMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveDragContextMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveDragContextMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveDragContextMethod "listTargets" o = DragContextListTargetsMethodInfo
+    ResolveDragContextMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveDragContextMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveDragContextMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveDragContextMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveDragContextMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveDragContextMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveDragContextMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveDragContextMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveDragContextMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveDragContextMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveDragContextMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveDragContextMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveDragContextMethod "getActions" o = DragContextGetActionsMethodInfo
+    ResolveDragContextMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveDragContextMethod "getDestWindow" o = DragContextGetDestWindowMethodInfo
+    ResolveDragContextMethod "getDevice" o = DragContextGetDeviceMethodInfo
+    ResolveDragContextMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveDragContextMethod "getProtocol" o = DragContextGetProtocolMethodInfo
+    ResolveDragContextMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveDragContextMethod "getSelectedAction" o = DragContextGetSelectedActionMethodInfo
+    ResolveDragContextMethod "getSourceWindow" o = DragContextGetSourceWindowMethodInfo
+    ResolveDragContextMethod "getSuggestedAction" o = DragContextGetSuggestedActionMethodInfo
+    ResolveDragContextMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveDragContextMethod "setDevice" o = DragContextSetDeviceMethodInfo
+    ResolveDragContextMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveDragContextMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveDragContextMethod t DragContext, MethodInfo info DragContext p) => IsLabelProxy t (DragContext -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveDragContextMethod t DragContext, MethodInfo info DragContext p) => IsLabel t (DragContext -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 type instance AttributeList DragContext = DragContextAttributeList
 type DragContextAttributeList = ('[ ] :: [(Symbol, *)])
 
 type instance SignalList DragContext = DragContextSignalList
-type DragContextSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type DragContextSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method DragContext::get_actions
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "DragAction"
 -- throws : False
 -- Skip return : False
@@ -110,8 +161,8 @@
 
 dragContextGetActions ::
     (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m [DragAction]
+    a                                       -- _obj
+    -> m [DragAction]                       -- result
 dragContextGetActions _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_drag_context_get_actions _obj'
@@ -119,11 +170,14 @@
     touchManagedPtr _obj
     return result'
 
+data DragContextGetActionsMethodInfo
+instance (signature ~ (m [DragAction]), MonadIO m, DragContextK a) => MethodInfo DragContextGetActionsMethodInfo a signature where
+    overloadedMethod _ = dragContextGetActions
+
 -- method DragContext::get_dest_window
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -135,8 +189,8 @@
 
 dragContextGetDestWindow ::
     (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m Window
+    a                                       -- _obj
+    -> m Window                             -- result
 dragContextGetDestWindow _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_drag_context_get_dest_window _obj'
@@ -145,11 +199,14 @@
     touchManagedPtr _obj
     return result'
 
+data DragContextGetDestWindowMethodInfo
+instance (signature ~ (m Window), MonadIO m, DragContextK a) => MethodInfo DragContextGetDestWindowMethodInfo a signature where
+    overloadedMethod _ = dragContextGetDestWindow
+
 -- method DragContext::get_device
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Device"
 -- throws : False
 -- Skip return : False
@@ -161,8 +218,8 @@
 
 dragContextGetDevice ::
     (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m Device
+    a                                       -- _obj
+    -> m Device                             -- result
 dragContextGetDevice _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_drag_context_get_device _obj'
@@ -171,11 +228,14 @@
     touchManagedPtr _obj
     return result'
 
+data DragContextGetDeviceMethodInfo
+instance (signature ~ (m Device), MonadIO m, DragContextK a) => MethodInfo DragContextGetDeviceMethodInfo a signature where
+    overloadedMethod _ = dragContextGetDevice
+
 -- method DragContext::get_protocol
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "DragProtocol"
 -- throws : False
 -- Skip return : False
@@ -187,8 +247,8 @@
 
 dragContextGetProtocol ::
     (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m DragProtocol
+    a                                       -- _obj
+    -> m DragProtocol                       -- result
 dragContextGetProtocol _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_drag_context_get_protocol _obj'
@@ -196,11 +256,14 @@
     touchManagedPtr _obj
     return result'
 
+data DragContextGetProtocolMethodInfo
+instance (signature ~ (m DragProtocol), MonadIO m, DragContextK a) => MethodInfo DragContextGetProtocolMethodInfo a signature where
+    overloadedMethod _ = dragContextGetProtocol
+
 -- method DragContext::get_selected_action
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "DragAction"
 -- throws : False
 -- Skip return : False
@@ -212,8 +275,8 @@
 
 dragContextGetSelectedAction ::
     (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m [DragAction]
+    a                                       -- _obj
+    -> m [DragAction]                       -- result
 dragContextGetSelectedAction _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_drag_context_get_selected_action _obj'
@@ -221,11 +284,14 @@
     touchManagedPtr _obj
     return result'
 
+data DragContextGetSelectedActionMethodInfo
+instance (signature ~ (m [DragAction]), MonadIO m, DragContextK a) => MethodInfo DragContextGetSelectedActionMethodInfo a signature where
+    overloadedMethod _ = dragContextGetSelectedAction
+
 -- method DragContext::get_source_window
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -237,8 +303,8 @@
 
 dragContextGetSourceWindow ::
     (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m Window
+    a                                       -- _obj
+    -> m Window                             -- result
 dragContextGetSourceWindow _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_drag_context_get_source_window _obj'
@@ -247,11 +313,14 @@
     touchManagedPtr _obj
     return result'
 
+data DragContextGetSourceWindowMethodInfo
+instance (signature ~ (m Window), MonadIO m, DragContextK a) => MethodInfo DragContextGetSourceWindowMethodInfo a signature where
+    overloadedMethod _ = dragContextGetSourceWindow
+
 -- method DragContext::get_suggested_action
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "DragAction"
 -- throws : False
 -- Skip return : False
@@ -263,8 +332,8 @@
 
 dragContextGetSuggestedAction ::
     (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m [DragAction]
+    a                                       -- _obj
+    -> m [DragAction]                       -- result
 dragContextGetSuggestedAction _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_drag_context_get_suggested_action _obj'
@@ -272,11 +341,14 @@
     touchManagedPtr _obj
     return result'
 
+data DragContextGetSuggestedActionMethodInfo
+instance (signature ~ (m [DragAction]), MonadIO m, DragContextK a) => MethodInfo DragContextGetSuggestedActionMethodInfo a signature where
+    overloadedMethod _ = dragContextGetSuggestedAction
+
 -- method DragContext::list_targets
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TGList (TInterface "Gdk" "Atom")
 -- throws : False
 -- Skip return : False
@@ -288,8 +360,8 @@
 
 dragContextListTargets ::
     (MonadIO m, DragContextK a) =>
-    a ->                                    -- _obj
-    m [Atom]
+    a                                       -- _obj
+    -> m [Atom]                             -- result
 dragContextListTargets _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_drag_context_list_targets _obj'
@@ -300,11 +372,14 @@
     touchManagedPtr _obj
     return result''
 
+data DragContextListTargetsMethodInfo
+instance (signature ~ (m [Atom]), MonadIO m, DragContextK a) => MethodInfo DragContextListTargetsMethodInfo a signature where
+    overloadedMethod _ = dragContextListTargets
+
 -- method DragContext::set_device
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "DragContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -317,9 +392,9 @@
 
 dragContextSetDevice ::
     (MonadIO m, DragContextK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m ()
+    a                                       -- _obj
+    -> b                                    -- device
+    -> m ()                                 -- result
 dragContextSetDevice _obj device = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let device' = unsafeManagedPtrCastPtr device
@@ -327,5 +402,9 @@
     touchManagedPtr _obj
     touchManagedPtr device
     return ()
+
+data DragContextSetDeviceMethodInfo
+instance (signature ~ (b -> m ()), MonadIO m, DragContextK a, DeviceK b) => MethodInfo DragContextSetDeviceMethodInfo a signature where
+    overloadedMethod _ = dragContextSetDevice
 
 
diff --git a/GI/Gdk/Objects/DragContext.hs-boot b/GI/Gdk/Objects/DragContext.hs-boot
--- a/GI/Gdk/Objects/DragContext.hs-boot
+++ b/GI/Gdk/Objects/DragContext.hs-boot
@@ -11,3 +11,12 @@
 instance GObject DragContext where
 class GObject o => DragContextK o
 instance (GObject o, IsDescendantOf DragContext o) => DragContextK o
+data DragContextGetActionsMethodInfo
+data DragContextGetDestWindowMethodInfo
+data DragContextGetDeviceMethodInfo
+data DragContextGetProtocolMethodInfo
+data DragContextGetSelectedActionMethodInfo
+data DragContextGetSourceWindowMethodInfo
+data DragContextGetSuggestedActionMethodInfo
+data DragContextListTargetsMethodInfo
+data DragContextSetDeviceMethodInfo
diff --git a/GI/Gdk/Objects/FrameClock.hs b/GI/Gdk/Objects/FrameClock.hs
--- a/GI/Gdk/Objects/FrameClock.hs
+++ b/GI/Gdk/Objects/FrameClock.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,38 +18,47 @@
 
  -- * Methods
 -- ** frameClockBeginUpdating
+    FrameClockBeginUpdatingMethodInfo       ,
     frameClockBeginUpdating                 ,
 
 
 -- ** frameClockEndUpdating
+    FrameClockEndUpdatingMethodInfo         ,
     frameClockEndUpdating                   ,
 
 
 -- ** frameClockGetCurrentTimings
+    FrameClockGetCurrentTimingsMethodInfo   ,
     frameClockGetCurrentTimings             ,
 
 
 -- ** frameClockGetFrameCounter
+    FrameClockGetFrameCounterMethodInfo     ,
     frameClockGetFrameCounter               ,
 
 
 -- ** frameClockGetFrameTime
+    FrameClockGetFrameTimeMethodInfo        ,
     frameClockGetFrameTime                  ,
 
 
 -- ** frameClockGetHistoryStart
+    FrameClockGetHistoryStartMethodInfo     ,
     frameClockGetHistoryStart               ,
 
 
 -- ** frameClockGetRefreshInfo
+    FrameClockGetRefreshInfoMethodInfo      ,
     frameClockGetRefreshInfo                ,
 
 
 -- ** frameClockGetTimings
+    FrameClockGetTimingsMethodInfo          ,
     frameClockGetTimings                    ,
 
 
 -- ** frameClockRequestPhase
+    FrameClockRequestPhaseMethodInfo        ,
     frameClockRequestPhase                  ,
 
 
@@ -175,6 +185,48 @@
 noFrameClock :: Maybe FrameClock
 noFrameClock = Nothing
 
+type family ResolveFrameClockMethod (t :: Symbol) (o :: *) :: * where
+    ResolveFrameClockMethod "beginUpdating" o = FrameClockBeginUpdatingMethodInfo
+    ResolveFrameClockMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveFrameClockMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveFrameClockMethod "endUpdating" o = FrameClockEndUpdatingMethodInfo
+    ResolveFrameClockMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveFrameClockMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveFrameClockMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveFrameClockMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveFrameClockMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveFrameClockMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveFrameClockMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveFrameClockMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveFrameClockMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveFrameClockMethod "requestPhase" o = FrameClockRequestPhaseMethodInfo
+    ResolveFrameClockMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveFrameClockMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveFrameClockMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveFrameClockMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveFrameClockMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveFrameClockMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveFrameClockMethod "getCurrentTimings" o = FrameClockGetCurrentTimingsMethodInfo
+    ResolveFrameClockMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveFrameClockMethod "getFrameCounter" o = FrameClockGetFrameCounterMethodInfo
+    ResolveFrameClockMethod "getFrameTime" o = FrameClockGetFrameTimeMethodInfo
+    ResolveFrameClockMethod "getHistoryStart" o = FrameClockGetHistoryStartMethodInfo
+    ResolveFrameClockMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveFrameClockMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveFrameClockMethod "getRefreshInfo" o = FrameClockGetRefreshInfoMethodInfo
+    ResolveFrameClockMethod "getTimings" o = FrameClockGetTimingsMethodInfo
+    ResolveFrameClockMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveFrameClockMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveFrameClockMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveFrameClockMethod t FrameClock, MethodInfo info FrameClock p) => IsLabelProxy t (FrameClock -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveFrameClockMethod t FrameClock, MethodInfo info FrameClock p) => IsLabel t (FrameClock -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- signal FrameClock::after-paint
 type FrameClockAfterPaintCallback =
     IO ()
@@ -480,13 +532,12 @@
     connectSignal _ = connectFrameClockUpdate
 
 type instance SignalList FrameClock = FrameClockSignalList
-type FrameClockSignalList = ('[ '("after-paint", FrameClockAfterPaintSignalInfo), '("before-paint", FrameClockBeforePaintSignalInfo), '("flush-events", FrameClockFlushEventsSignalInfo), '("layout", FrameClockLayoutSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("paint", FrameClockPaintSignalInfo), '("resume-events", FrameClockResumeEventsSignalInfo), '("update", FrameClockUpdateSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type FrameClockSignalList = ('[ '("afterPaint", FrameClockAfterPaintSignalInfo), '("beforePaint", FrameClockBeforePaintSignalInfo), '("flushEvents", FrameClockFlushEventsSignalInfo), '("layout", FrameClockLayoutSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("paint", FrameClockPaintSignalInfo), '("resumeEvents", FrameClockResumeEventsSignalInfo), '("update", FrameClockUpdateSignalInfo)] :: [(Symbol, *)])
 
 -- method FrameClock::begin_updating
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -498,19 +549,22 @@
 
 frameClockBeginUpdating ::
     (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 frameClockBeginUpdating _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_frame_clock_begin_updating _obj'
     touchManagedPtr _obj
     return ()
 
+data FrameClockBeginUpdatingMethodInfo
+instance (signature ~ (m ()), MonadIO m, FrameClockK a) => MethodInfo FrameClockBeginUpdatingMethodInfo a signature where
+    overloadedMethod _ = frameClockBeginUpdating
+
 -- method FrameClock::end_updating
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -522,19 +576,22 @@
 
 frameClockEndUpdating ::
     (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 frameClockEndUpdating _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_frame_clock_end_updating _obj'
     touchManagedPtr _obj
     return ()
 
+data FrameClockEndUpdatingMethodInfo
+instance (signature ~ (m ()), MonadIO m, FrameClockK a) => MethodInfo FrameClockEndUpdatingMethodInfo a signature where
+    overloadedMethod _ = frameClockEndUpdating
+
 -- method FrameClock::get_current_timings
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "FrameTimings"
 -- throws : False
 -- Skip return : False
@@ -546,8 +603,8 @@
 
 frameClockGetCurrentTimings ::
     (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m FrameTimings
+    a                                       -- _obj
+    -> m FrameTimings                       -- result
 frameClockGetCurrentTimings _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_frame_clock_get_current_timings _obj'
@@ -556,11 +613,14 @@
     touchManagedPtr _obj
     return result'
 
+data FrameClockGetCurrentTimingsMethodInfo
+instance (signature ~ (m FrameTimings), MonadIO m, FrameClockK a) => MethodInfo FrameClockGetCurrentTimingsMethodInfo a signature where
+    overloadedMethod _ = frameClockGetCurrentTimings
+
 -- method FrameClock::get_frame_counter
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt64
 -- throws : False
 -- Skip return : False
@@ -572,19 +632,22 @@
 
 frameClockGetFrameCounter ::
     (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m Int64
+    a                                       -- _obj
+    -> m Int64                              -- result
 frameClockGetFrameCounter _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_frame_clock_get_frame_counter _obj'
     touchManagedPtr _obj
     return result
 
+data FrameClockGetFrameCounterMethodInfo
+instance (signature ~ (m Int64), MonadIO m, FrameClockK a) => MethodInfo FrameClockGetFrameCounterMethodInfo a signature where
+    overloadedMethod _ = frameClockGetFrameCounter
+
 -- method FrameClock::get_frame_time
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt64
 -- throws : False
 -- Skip return : False
@@ -596,19 +659,22 @@
 
 frameClockGetFrameTime ::
     (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m Int64
+    a                                       -- _obj
+    -> m Int64                              -- result
 frameClockGetFrameTime _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_frame_clock_get_frame_time _obj'
     touchManagedPtr _obj
     return result
 
+data FrameClockGetFrameTimeMethodInfo
+instance (signature ~ (m Int64), MonadIO m, FrameClockK a) => MethodInfo FrameClockGetFrameTimeMethodInfo a signature where
+    overloadedMethod _ = frameClockGetFrameTime
+
 -- method FrameClock::get_history_start
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt64
 -- throws : False
 -- Skip return : False
@@ -620,19 +686,22 @@
 
 frameClockGetHistoryStart ::
     (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    m Int64
+    a                                       -- _obj
+    -> m Int64                              -- result
 frameClockGetHistoryStart _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_frame_clock_get_history_start _obj'
     touchManagedPtr _obj
     return result
 
+data FrameClockGetHistoryStartMethodInfo
+instance (signature ~ (m Int64), MonadIO m, FrameClockK a) => MethodInfo FrameClockGetHistoryStartMethodInfo a signature where
+    overloadedMethod _ = frameClockGetHistoryStart
+
 -- method FrameClock::get_refresh_info
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "refresh_interval_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "presentation_time_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "base_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "refresh_interval_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "presentation_time_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "base_time", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "refresh_interval_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "presentation_time_return", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -647,22 +716,25 @@
 
 frameClockGetRefreshInfo ::
     (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    Int64 ->                                -- base_time
-    Int64 ->                                -- refresh_interval_return
-    Int64 ->                                -- presentation_time_return
-    m ()
-frameClockGetRefreshInfo _obj base_time refresh_interval_return presentation_time_return = liftIO $ do
+    a                                       -- _obj
+    -> Int64                                -- baseTime
+    -> Int64                                -- refreshIntervalReturn
+    -> Int64                                -- presentationTimeReturn
+    -> m ()                                 -- result
+frameClockGetRefreshInfo _obj baseTime refreshIntervalReturn presentationTimeReturn = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_frame_clock_get_refresh_info _obj' base_time refresh_interval_return presentation_time_return
+    gdk_frame_clock_get_refresh_info _obj' baseTime refreshIntervalReturn presentationTimeReturn
     touchManagedPtr _obj
     return ()
 
+data FrameClockGetRefreshInfoMethodInfo
+instance (signature ~ (Int64 -> Int64 -> Int64 -> m ()), MonadIO m, FrameClockK a) => MethodInfo FrameClockGetRefreshInfoMethodInfo a signature where
+    overloadedMethod _ = frameClockGetRefreshInfo
+
 -- method FrameClock::get_timings
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "frame_counter", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "frame_counter", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "frame_counter", argType = TBasicType TInt64, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "FrameTimings"
 -- throws : False
 -- Skip return : False
@@ -675,22 +747,25 @@
 
 frameClockGetTimings ::
     (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    Int64 ->                                -- frame_counter
-    m FrameTimings
-frameClockGetTimings _obj frame_counter = liftIO $ do
+    a                                       -- _obj
+    -> Int64                                -- frameCounter
+    -> m FrameTimings                       -- result
+frameClockGetTimings _obj frameCounter = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_frame_clock_get_timings _obj' frame_counter
+    result <- gdk_frame_clock_get_timings _obj' frameCounter
     checkUnexpectedReturnNULL "gdk_frame_clock_get_timings" result
     result' <- (wrapBoxed FrameTimings) result
     touchManagedPtr _obj
     return result'
 
+data FrameClockGetTimingsMethodInfo
+instance (signature ~ (Int64 -> m FrameTimings), MonadIO m, FrameClockK a) => MethodInfo FrameClockGetTimingsMethodInfo a signature where
+    overloadedMethod _ = frameClockGetTimings
+
 -- method FrameClock::request_phase
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "phase", argType = TInterface "Gdk" "FrameClockPhase", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "phase", argType = TInterface "Gdk" "FrameClockPhase", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameClock", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "phase", argType = TInterface "Gdk" "FrameClockPhase", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -703,14 +778,18 @@
 
 frameClockRequestPhase ::
     (MonadIO m, FrameClockK a) =>
-    a ->                                    -- _obj
-    [FrameClockPhase] ->                    -- phase
-    m ()
+    a                                       -- _obj
+    -> [FrameClockPhase]                    -- phase
+    -> m ()                                 -- result
 frameClockRequestPhase _obj phase = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let phase' = gflagsToWord phase
     gdk_frame_clock_request_phase _obj' phase'
     touchManagedPtr _obj
     return ()
+
+data FrameClockRequestPhaseMethodInfo
+instance (signature ~ ([FrameClockPhase] -> m ()), MonadIO m, FrameClockK a) => MethodInfo FrameClockRequestPhaseMethodInfo a signature where
+    overloadedMethod _ = frameClockRequestPhase
 
 
diff --git a/GI/Gdk/Objects/FrameClock.hs-boot b/GI/Gdk/Objects/FrameClock.hs-boot
--- a/GI/Gdk/Objects/FrameClock.hs-boot
+++ b/GI/Gdk/Objects/FrameClock.hs-boot
@@ -18,3 +18,12 @@
 data FrameClockPaintSignalInfo
 data FrameClockResumeEventsSignalInfo
 data FrameClockUpdateSignalInfo
+data FrameClockBeginUpdatingMethodInfo
+data FrameClockEndUpdatingMethodInfo
+data FrameClockGetCurrentTimingsMethodInfo
+data FrameClockGetFrameCounterMethodInfo
+data FrameClockGetFrameTimeMethodInfo
+data FrameClockGetHistoryStartMethodInfo
+data FrameClockGetRefreshInfoMethodInfo
+data FrameClockGetTimingsMethodInfo
+data FrameClockRequestPhaseMethodInfo
diff --git a/GI/Gdk/Objects/GLContext.hs b/GI/Gdk/Objects/GLContext.hs
--- a/GI/Gdk/Objects/GLContext.hs
+++ b/GI/Gdk/Objects/GLContext.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -16,6 +17,10 @@
 
 
  -- * Methods
+-- ** Unsupported methods
+    GLContextGetRequiredVersionMethodInfo   ,
+
+
 -- ** gLContextClearCurrent
     gLContextClearCurrent                   ,
 
@@ -25,46 +30,57 @@
 
 
 -- ** gLContextGetDebugEnabled
+    GLContextGetDebugEnabledMethodInfo      ,
     gLContextGetDebugEnabled                ,
 
 
 -- ** gLContextGetDisplay
+    GLContextGetDisplayMethodInfo           ,
     gLContextGetDisplay                     ,
 
 
 -- ** gLContextGetForwardCompatible
+    GLContextGetForwardCompatibleMethodInfo ,
     gLContextGetForwardCompatible           ,
 
 
 -- ** gLContextGetSharedContext
+    GLContextGetSharedContextMethodInfo     ,
     gLContextGetSharedContext               ,
 
 
 -- ** gLContextGetVersion
+    GLContextGetVersionMethodInfo           ,
     gLContextGetVersion                     ,
 
 
 -- ** gLContextGetWindow
+    GLContextGetWindowMethodInfo            ,
     gLContextGetWindow                      ,
 
 
 -- ** gLContextMakeCurrent
+    GLContextMakeCurrentMethodInfo          ,
     gLContextMakeCurrent                    ,
 
 
 -- ** gLContextRealize
+    GLContextRealizeMethodInfo              ,
     gLContextRealize                        ,
 
 
 -- ** gLContextSetDebugEnabled
+    GLContextSetDebugEnabledMethodInfo      ,
     gLContextSetDebugEnabled                ,
 
 
 -- ** gLContextSetForwardCompatible
+    GLContextSetForwardCompatibleMethodInfo ,
     gLContextSetForwardCompatible           ,
 
 
 -- ** gLContextSetRequiredVersion
+    GLContextSetRequiredVersionMethodInfo   ,
     gLContextSetRequiredVersion             ,
 
 
@@ -125,6 +141,51 @@
 noGLContext :: Maybe GLContext
 noGLContext = Nothing
 
+type family ResolveGLContextMethod (t :: Symbol) (o :: *) :: * where
+    ResolveGLContextMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveGLContextMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveGLContextMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveGLContextMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveGLContextMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveGLContextMethod "makeCurrent" o = GLContextMakeCurrentMethodInfo
+    ResolveGLContextMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveGLContextMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveGLContextMethod "realize" o = GLContextRealizeMethodInfo
+    ResolveGLContextMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveGLContextMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveGLContextMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveGLContextMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveGLContextMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveGLContextMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveGLContextMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveGLContextMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveGLContextMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveGLContextMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveGLContextMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveGLContextMethod "getDebugEnabled" o = GLContextGetDebugEnabledMethodInfo
+    ResolveGLContextMethod "getDisplay" o = GLContextGetDisplayMethodInfo
+    ResolveGLContextMethod "getForwardCompatible" o = GLContextGetForwardCompatibleMethodInfo
+    ResolveGLContextMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveGLContextMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveGLContextMethod "getRequiredVersion" o = GLContextGetRequiredVersionMethodInfo
+    ResolveGLContextMethod "getSharedContext" o = GLContextGetSharedContextMethodInfo
+    ResolveGLContextMethod "getVersion" o = GLContextGetVersionMethodInfo
+    ResolveGLContextMethod "getWindow" o = GLContextGetWindowMethodInfo
+    ResolveGLContextMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveGLContextMethod "setDebugEnabled" o = GLContextSetDebugEnabledMethodInfo
+    ResolveGLContextMethod "setForwardCompatible" o = GLContextSetForwardCompatibleMethodInfo
+    ResolveGLContextMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveGLContextMethod "setRequiredVersion" o = GLContextSetRequiredVersionMethodInfo
+    ResolveGLContextMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveGLContextMethod t GLContext, MethodInfo info GLContext p) => IsLabelProxy t (GLContext -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveGLContextMethod t GLContext, MethodInfo info GLContext p) => IsLabel t (GLContext -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- VVV Prop "display"
    -- Type: TInterface "Gdk" "Display"
    -- Flags: [PropertyReadable,PropertyWritable,PropertyConstructOnly]
@@ -141,7 +202,7 @@
     type AttrSetTypeConstraint GLContextDisplayPropertyInfo = DisplayK
     type AttrBaseTypeConstraint GLContextDisplayPropertyInfo = GLContextK
     type AttrGetType GLContextDisplayPropertyInfo = Display
-    type AttrLabel GLContextDisplayPropertyInfo = "GLContext::display"
+    type AttrLabel GLContextDisplayPropertyInfo = "display"
     attrGet _ = getGLContextDisplay
     attrSet _ = undefined
     attrConstruct _ = constructGLContextDisplay
@@ -162,7 +223,7 @@
     type AttrSetTypeConstraint GLContextSharedContextPropertyInfo = GLContextK
     type AttrBaseTypeConstraint GLContextSharedContextPropertyInfo = GLContextK
     type AttrGetType GLContextSharedContextPropertyInfo = GLContext
-    type AttrLabel GLContextSharedContextPropertyInfo = "GLContext::shared-context"
+    type AttrLabel GLContextSharedContextPropertyInfo = "shared-context"
     attrGet _ = getGLContextSharedContext
     attrSet _ = undefined
     attrConstruct _ = constructGLContextSharedContext
@@ -183,22 +244,21 @@
     type AttrSetTypeConstraint GLContextWindowPropertyInfo = WindowK
     type AttrBaseTypeConstraint GLContextWindowPropertyInfo = GLContextK
     type AttrGetType GLContextWindowPropertyInfo = Window
-    type AttrLabel GLContextWindowPropertyInfo = "GLContext::window"
+    type AttrLabel GLContextWindowPropertyInfo = "window"
     attrGet _ = getGLContextWindow
     attrSet _ = undefined
     attrConstruct _ = constructGLContextWindow
 
 type instance AttributeList GLContext = GLContextAttributeList
-type GLContextAttributeList = ('[ '("display", GLContextDisplayPropertyInfo), '("shared-context", GLContextSharedContextPropertyInfo), '("window", GLContextWindowPropertyInfo)] :: [(Symbol, *)])
+type GLContextAttributeList = ('[ '("display", GLContextDisplayPropertyInfo), '("sharedContext", GLContextSharedContextPropertyInfo), '("window", GLContextWindowPropertyInfo)] :: [(Symbol, *)])
 
 type instance SignalList GLContext = GLContextSignalList
-type GLContextSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type GLContextSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method GLContext::get_debug_enabled
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -210,8 +270,8 @@
 
 gLContextGetDebugEnabled ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 gLContextGetDebugEnabled _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_gl_context_get_debug_enabled _obj'
@@ -219,11 +279,14 @@
     touchManagedPtr _obj
     return result'
 
+data GLContextGetDebugEnabledMethodInfo
+instance (signature ~ (m Bool), MonadIO m, GLContextK a) => MethodInfo GLContextGetDebugEnabledMethodInfo a signature where
+    overloadedMethod _ = gLContextGetDebugEnabled
+
 -- method GLContext::get_display
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Display"
 -- throws : False
 -- Skip return : False
@@ -235,8 +298,8 @@
 
 gLContextGetDisplay ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m Display
+    a                                       -- _obj
+    -> m Display                            -- result
 gLContextGetDisplay _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_gl_context_get_display _obj'
@@ -245,11 +308,14 @@
     touchManagedPtr _obj
     return result'
 
+data GLContextGetDisplayMethodInfo
+instance (signature ~ (m Display), MonadIO m, GLContextK a) => MethodInfo GLContextGetDisplayMethodInfo a signature where
+    overloadedMethod _ = gLContextGetDisplay
+
 -- method GLContext::get_forward_compatible
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -261,8 +327,8 @@
 
 gLContextGetForwardCompatible ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 gLContextGetForwardCompatible _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_gl_context_get_forward_compatible _obj'
@@ -270,13 +336,21 @@
     touchManagedPtr _obj
     return result'
 
+data GLContextGetForwardCompatibleMethodInfo
+instance (signature ~ (m Bool), MonadIO m, GLContextK a) => MethodInfo GLContextGetForwardCompatibleMethodInfo a signature where
+    overloadedMethod _ = gLContextGetForwardCompatible
+
 -- XXX Could not generate method GLContext::get_required_version
 -- Error was : Bad introspection data: "argument \"major\" is not of nullable type (TBasicType TInt32), but it is marked as such."
+-- XXX: Dummy instance, since code generation failed.
+-- Please file a bug at http://github.com/haskell-gi/haskell-gi.
+data GLContextGetRequiredVersionMethodInfo
+instance (p ~ (), o ~ MethodResolutionFailed "getRequiredVersion" GLContext) => MethodInfo GLContextGetRequiredVersionMethodInfo o p where
+    overloadedMethod _ = undefined
 -- method GLContext::get_shared_context
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "GLContext"
 -- throws : False
 -- Skip return : False
@@ -288,8 +362,8 @@
 
 gLContextGetSharedContext ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m GLContext
+    a                                       -- _obj
+    -> m GLContext                          -- result
 gLContextGetSharedContext _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_gl_context_get_shared_context _obj'
@@ -298,11 +372,14 @@
     touchManagedPtr _obj
     return result'
 
+data GLContextGetSharedContextMethodInfo
+instance (signature ~ (m GLContext), MonadIO m, GLContextK a) => MethodInfo GLContextGetSharedContextMethodInfo a signature where
+    overloadedMethod _ = gLContextGetSharedContext
+
 -- method GLContext::get_version
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "major", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "minor", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -316,8 +393,8 @@
 
 gLContextGetVersion ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m (Int32,Int32)
+    a                                       -- _obj
+    -> m (Int32,Int32)                      -- result
 gLContextGetVersion _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     major <- allocMem :: IO (Ptr Int32)
@@ -330,11 +407,14 @@
     freeMem minor
     return (major', minor')
 
+data GLContextGetVersionMethodInfo
+instance (signature ~ (m (Int32,Int32)), MonadIO m, GLContextK a) => MethodInfo GLContextGetVersionMethodInfo a signature where
+    overloadedMethod _ = gLContextGetVersion
+
 -- method GLContext::get_window
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -346,8 +426,8 @@
 
 gLContextGetWindow ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m Window
+    a                                       -- _obj
+    -> m Window                             -- result
 gLContextGetWindow _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_gl_context_get_window _obj'
@@ -356,11 +436,14 @@
     touchManagedPtr _obj
     return result'
 
+data GLContextGetWindowMethodInfo
+instance (signature ~ (m Window), MonadIO m, GLContextK a) => MethodInfo GLContextGetWindowMethodInfo a signature where
+    overloadedMethod _ = gLContextGetWindow
+
 -- method GLContext::make_current
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -372,19 +455,22 @@
 
 gLContextMakeCurrent ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 gLContextMakeCurrent _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_gl_context_make_current _obj'
     touchManagedPtr _obj
     return ()
 
+data GLContextMakeCurrentMethodInfo
+instance (signature ~ (m ()), MonadIO m, GLContextK a) => MethodInfo GLContextMakeCurrentMethodInfo a signature where
+    overloadedMethod _ = gLContextMakeCurrent
+
 -- method GLContext::realize
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : True
 -- Skip return : False
@@ -397,8 +483,8 @@
 
 gLContextRealize ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    m ()
+    a                                       -- _obj
+    -> m ()                                 -- result
 gLContextRealize _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     onException (do
@@ -409,11 +495,14 @@
         return ()
      )
 
+data GLContextRealizeMethodInfo
+instance (signature ~ (m ()), MonadIO m, GLContextK a) => MethodInfo GLContextRealizeMethodInfo a signature where
+    overloadedMethod _ = gLContextRealize
+
 -- method GLContext::set_debug_enabled
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "enabled", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -426,9 +515,9 @@
 
 gLContextSetDebugEnabled ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- enabled
-    m ()
+    a                                       -- _obj
+    -> Bool                                 -- enabled
+    -> m ()                                 -- result
 gLContextSetDebugEnabled _obj enabled = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let enabled' = (fromIntegral . fromEnum) enabled
@@ -436,11 +525,14 @@
     touchManagedPtr _obj
     return ()
 
+data GLContextSetDebugEnabledMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, GLContextK a) => MethodInfo GLContextSetDebugEnabledMethodInfo a signature where
+    overloadedMethod _ = gLContextSetDebugEnabled
+
 -- method GLContext::set_forward_compatible
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compatible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "compatible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "compatible", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -453,9 +545,9 @@
 
 gLContextSetForwardCompatible ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- compatible
-    m ()
+    a                                       -- _obj
+    -> Bool                                 -- compatible
+    -> m ()                                 -- result
 gLContextSetForwardCompatible _obj compatible = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let compatible' = (fromIntegral . fromEnum) compatible
@@ -463,11 +555,14 @@
     touchManagedPtr _obj
     return ()
 
+data GLContextSetForwardCompatibleMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, GLContextK a) => MethodInfo GLContextSetForwardCompatibleMethodInfo a signature where
+    overloadedMethod _ = gLContextSetForwardCompatible
+
 -- method GLContext::set_required_version
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "GLContext", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "major", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "minor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -481,21 +576,24 @@
 
 gLContextSetRequiredVersion ::
     (MonadIO m, GLContextK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- major
-    Int32 ->                                -- minor
-    m ()
+    a                                       -- _obj
+    -> Int32                                -- major
+    -> Int32                                -- minor
+    -> m ()                                 -- result
 gLContextSetRequiredVersion _obj major minor = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     gdk_gl_context_set_required_version _obj' major minor
     touchManagedPtr _obj
     return ()
 
+data GLContextSetRequiredVersionMethodInfo
+instance (signature ~ (Int32 -> Int32 -> m ()), MonadIO m, GLContextK a) => MethodInfo GLContextSetRequiredVersionMethodInfo a signature where
+    overloadedMethod _ = gLContextSetRequiredVersion
+
 -- method GLContext::clear_current
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -506,7 +604,7 @@
 
 gLContextClearCurrent ::
     (MonadIO m) =>
-    m ()
+    m ()                                    -- result
 gLContextClearCurrent  = liftIO $ do
     gdk_gl_context_clear_current
     return ()
@@ -515,7 +613,6 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "Gdk" "GLContext"
 -- throws : False
 -- Skip return : False
@@ -526,7 +623,7 @@
 
 gLContextGetCurrent ::
     (MonadIO m) =>
-    m GLContext
+    m GLContext                             -- result
 gLContextGetCurrent  = liftIO $ do
     result <- gdk_gl_context_get_current
     checkUnexpectedReturnNULL "gdk_gl_context_get_current" result
diff --git a/GI/Gdk/Objects/GLContext.hs-boot b/GI/Gdk/Objects/GLContext.hs-boot
--- a/GI/Gdk/Objects/GLContext.hs-boot
+++ b/GI/Gdk/Objects/GLContext.hs-boot
@@ -14,3 +14,15 @@
 data GLContextDisplayPropertyInfo
 data GLContextSharedContextPropertyInfo
 data GLContextWindowPropertyInfo
+data GLContextGetDebugEnabledMethodInfo
+data GLContextGetDisplayMethodInfo
+data GLContextGetForwardCompatibleMethodInfo
+data GLContextGetRequiredVersionMethodInfo
+data GLContextGetSharedContextMethodInfo
+data GLContextGetVersionMethodInfo
+data GLContextGetWindowMethodInfo
+data GLContextMakeCurrentMethodInfo
+data GLContextRealizeMethodInfo
+data GLContextSetDebugEnabledMethodInfo
+data GLContextSetForwardCompatibleMethodInfo
+data GLContextSetRequiredVersionMethodInfo
diff --git a/GI/Gdk/Objects/Keymap.hs b/GI/Gdk/Objects/Keymap.hs
--- a/GI/Gdk/Objects/Keymap.hs
+++ b/GI/Gdk/Objects/Keymap.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,10 +18,12 @@
 
  -- * Methods
 -- ** keymapAddVirtualModifiers
+    KeymapAddVirtualModifiersMethodInfo     ,
     keymapAddVirtualModifiers               ,
 
 
 -- ** keymapGetCapsLockState
+    KeymapGetCapsLockStateMethodInfo        ,
     keymapGetCapsLockState                  ,
 
 
@@ -29,14 +32,17 @@
 
 
 -- ** keymapGetDirection
+    KeymapGetDirectionMethodInfo            ,
     keymapGetDirection                      ,
 
 
 -- ** keymapGetEntriesForKeycode
+    KeymapGetEntriesForKeycodeMethodInfo    ,
     keymapGetEntriesForKeycode              ,
 
 
 -- ** keymapGetEntriesForKeyval
+    KeymapGetEntriesForKeyvalMethodInfo     ,
     keymapGetEntriesForKeyval               ,
 
 
@@ -45,34 +51,42 @@
 
 
 -- ** keymapGetModifierMask
+    KeymapGetModifierMaskMethodInfo         ,
     keymapGetModifierMask                   ,
 
 
 -- ** keymapGetModifierState
+    KeymapGetModifierStateMethodInfo        ,
     keymapGetModifierState                  ,
 
 
 -- ** keymapGetNumLockState
+    KeymapGetNumLockStateMethodInfo         ,
     keymapGetNumLockState                   ,
 
 
 -- ** keymapGetScrollLockState
+    KeymapGetScrollLockStateMethodInfo      ,
     keymapGetScrollLockState                ,
 
 
 -- ** keymapHaveBidiLayouts
+    KeymapHaveBidiLayoutsMethodInfo         ,
     keymapHaveBidiLayouts                   ,
 
 
 -- ** keymapLookupKey
+    KeymapLookupKeyMethodInfo               ,
     keymapLookupKey                         ,
 
 
 -- ** keymapMapVirtualModifiers
+    KeymapMapVirtualModifiersMethodInfo     ,
     keymapMapVirtualModifiers               ,
 
 
 -- ** keymapTranslateKeyboardState
+    KeymapTranslateKeyboardStateMethodInfo  ,
     keymapTranslateKeyboardState            ,
 
 
@@ -152,6 +166,52 @@
 noKeymap :: Maybe Keymap
 noKeymap = Nothing
 
+type family ResolveKeymapMethod (t :: Symbol) (o :: *) :: * where
+    ResolveKeymapMethod "addVirtualModifiers" o = KeymapAddVirtualModifiersMethodInfo
+    ResolveKeymapMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveKeymapMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveKeymapMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveKeymapMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveKeymapMethod "haveBidiLayouts" o = KeymapHaveBidiLayoutsMethodInfo
+    ResolveKeymapMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveKeymapMethod "lookupKey" o = KeymapLookupKeyMethodInfo
+    ResolveKeymapMethod "mapVirtualModifiers" o = KeymapMapVirtualModifiersMethodInfo
+    ResolveKeymapMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveKeymapMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveKeymapMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveKeymapMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveKeymapMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveKeymapMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveKeymapMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveKeymapMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveKeymapMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveKeymapMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveKeymapMethod "translateKeyboardState" o = KeymapTranslateKeyboardStateMethodInfo
+    ResolveKeymapMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveKeymapMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveKeymapMethod "getCapsLockState" o = KeymapGetCapsLockStateMethodInfo
+    ResolveKeymapMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveKeymapMethod "getDirection" o = KeymapGetDirectionMethodInfo
+    ResolveKeymapMethod "getEntriesForKeycode" o = KeymapGetEntriesForKeycodeMethodInfo
+    ResolveKeymapMethod "getEntriesForKeyval" o = KeymapGetEntriesForKeyvalMethodInfo
+    ResolveKeymapMethod "getModifierMask" o = KeymapGetModifierMaskMethodInfo
+    ResolveKeymapMethod "getModifierState" o = KeymapGetModifierStateMethodInfo
+    ResolveKeymapMethod "getNumLockState" o = KeymapGetNumLockStateMethodInfo
+    ResolveKeymapMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveKeymapMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveKeymapMethod "getScrollLockState" o = KeymapGetScrollLockStateMethodInfo
+    ResolveKeymapMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveKeymapMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveKeymapMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveKeymapMethod t Keymap, MethodInfo info Keymap p) => IsLabelProxy t (Keymap -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveKeymapMethod t Keymap, MethodInfo info Keymap p) => IsLabel t (Keymap -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- signal Keymap::direction-changed
 type KeymapDirectionChangedCallback =
     IO ()
@@ -285,13 +345,12 @@
     connectSignal _ = connectKeymapStateChanged
 
 type instance SignalList Keymap = KeymapSignalList
-type KeymapSignalList = ('[ '("direction-changed", KeymapDirectionChangedSignalInfo), '("keys-changed", KeymapKeysChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("state-changed", KeymapStateChangedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type KeymapSignalList = ('[ '("directionChanged", KeymapDirectionChangedSignalInfo), '("keysChanged", KeymapKeysChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("stateChanged", KeymapStateChangedSignalInfo)] :: [(Symbol, *)])
 
 -- method Keymap::add_virtual_modifiers
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -304,9 +363,9 @@
 
 keymapAddVirtualModifiers ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    [ModifierType] ->                       -- state
-    m ([ModifierType])
+    a                                       -- _obj
+    -> [ModifierType]                       -- state
+    -> m ([ModifierType])                   -- result
 keymapAddVirtualModifiers _obj state = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let state' = gflagsToWord state
@@ -319,11 +378,14 @@
     freeMem state''
     return state''''
 
+data KeymapAddVirtualModifiersMethodInfo
+instance (signature ~ ([ModifierType] -> m ([ModifierType])), MonadIO m, KeymapK a) => MethodInfo KeymapAddVirtualModifiersMethodInfo a signature where
+    overloadedMethod _ = keymapAddVirtualModifiers
+
 -- method Keymap::get_caps_lock_state
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -335,8 +397,8 @@
 
 keymapGetCapsLockState ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 keymapGetCapsLockState _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_keymap_get_caps_lock_state _obj'
@@ -344,11 +406,14 @@
     touchManagedPtr _obj
     return result'
 
+data KeymapGetCapsLockStateMethodInfo
+instance (signature ~ (m Bool), MonadIO m, KeymapK a) => MethodInfo KeymapGetCapsLockStateMethodInfo a signature where
+    overloadedMethod _ = keymapGetCapsLockState
+
 -- method Keymap::get_direction
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Pango" "Direction"
 -- throws : False
 -- Skip return : False
@@ -360,8 +425,8 @@
 
 keymapGetDirection ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Pango.Direction
+    a                                       -- _obj
+    -> m Pango.Direction                    -- result
 keymapGetDirection _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_keymap_get_direction _obj'
@@ -369,11 +434,14 @@
     touchManagedPtr _obj
     return result'
 
+data KeymapGetDirectionMethodInfo
+instance (signature ~ (m Pango.Direction), MonadIO m, KeymapK a) => MethodInfo KeymapGetDirectionMethodInfo a signature where
+    overloadedMethod _ = keymapGetDirection
+
 -- method Keymap::get_entries_for_keycode
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keys", argType = TCArray False (-1) 4 (TInterface "Gdk" "KeymapKey"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "keyvals", argType = TCArray False (-1) 4 (TBasicType TUInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keys", argType = TCArray False (-1) 4 (TInterface "Gdk" "KeymapKey"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "keyvals", argType = TCArray False (-1) 4 (TBasicType TUInt32), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "n_entries", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -389,35 +457,38 @@
 
 keymapGetEntriesForKeycode ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- hardware_keycode
-    m (Bool,[KeymapKey],[Word32])
-keymapGetEntriesForKeycode _obj hardware_keycode = liftIO $ do
+    a                                       -- _obj
+    -> Word32                               -- hardwareKeycode
+    -> m (Bool,[KeymapKey],[Word32])        -- result
+keymapGetEntriesForKeycode _obj hardwareKeycode = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     keys <- allocMem :: IO (Ptr (Ptr KeymapKey))
     keyvals <- allocMem :: IO (Ptr (Ptr Word32))
-    n_entries <- allocMem :: IO (Ptr Int32)
-    result <- gdk_keymap_get_entries_for_keycode _obj' hardware_keycode keys keyvals n_entries
-    n_entries' <- peek n_entries
+    nEntries <- allocMem :: IO (Ptr Int32)
+    result <- gdk_keymap_get_entries_for_keycode _obj' hardwareKeycode keys keyvals nEntries
+    nEntries' <- peek nEntries
     let result' = (/= 0) result
     keys' <- peek keys
-    keys'' <- (unpackBlockArrayWithLength 12 n_entries') keys'
+    keys'' <- (unpackBlockArrayWithLength 12 nEntries') keys'
     keys''' <- mapM (wrapPtr KeymapKey) keys''
     freeMem keys'
     keyvals' <- peek keyvals
-    keyvals'' <- (unpackStorableArrayWithLength n_entries') keyvals'
+    keyvals'' <- (unpackStorableArrayWithLength nEntries') keyvals'
     freeMem keyvals'
     touchManagedPtr _obj
     freeMem keys
     freeMem keyvals
-    freeMem n_entries
+    freeMem nEntries
     return (result', keys''', keyvals'')
 
+data KeymapGetEntriesForKeycodeMethodInfo
+instance (signature ~ (Word32 -> m (Bool,[KeymapKey],[Word32])), MonadIO m, KeymapK a) => MethodInfo KeymapGetEntriesForKeycodeMethodInfo a signature where
+    overloadedMethod _ = keymapGetEntriesForKeycode
+
 -- method Keymap::get_entries_for_keyval
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keys", argType = TCArray False (-1) 3 (TInterface "Gdk" "KeymapKey"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "n_keys", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : [Arg {argName = "n_keys", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyval", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keys", argType = TCArray False (-1) 3 (TInterface "Gdk" "KeymapKey"), direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "n_keys", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : [Arg {argCName = "n_keys", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -432,30 +503,33 @@
 
 keymapGetEntriesForKeyval ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- keyval
-    m (Bool,[KeymapKey])
+    a                                       -- _obj
+    -> Word32                               -- keyval
+    -> m (Bool,[KeymapKey])                 -- result
 keymapGetEntriesForKeyval _obj keyval = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     keys <- allocMem :: IO (Ptr (Ptr KeymapKey))
-    n_keys <- allocMem :: IO (Ptr Int32)
-    result <- gdk_keymap_get_entries_for_keyval _obj' keyval keys n_keys
-    n_keys' <- peek n_keys
+    nKeys <- allocMem :: IO (Ptr Int32)
+    result <- gdk_keymap_get_entries_for_keyval _obj' keyval keys nKeys
+    nKeys' <- peek nKeys
     let result' = (/= 0) result
     keys' <- peek keys
-    keys'' <- (unpackBlockArrayWithLength 12 n_keys') keys'
+    keys'' <- (unpackBlockArrayWithLength 12 nKeys') keys'
     keys''' <- mapM (wrapPtr KeymapKey) keys''
     freeMem keys'
     touchManagedPtr _obj
     freeMem keys
-    freeMem n_keys
+    freeMem nKeys
     return (result', keys''')
 
+data KeymapGetEntriesForKeyvalMethodInfo
+instance (signature ~ (Word32 -> m (Bool,[KeymapKey])), MonadIO m, KeymapK a) => MethodInfo KeymapGetEntriesForKeyvalMethodInfo a signature where
+    overloadedMethod _ = keymapGetEntriesForKeyval
+
 -- method Keymap::get_modifier_mask
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "intent", argType = TInterface "Gdk" "ModifierIntent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "intent", argType = TInterface "Gdk" "ModifierIntent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "intent", argType = TInterface "Gdk" "ModifierIntent", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "ModifierType"
 -- throws : False
 -- Skip return : False
@@ -468,9 +542,9 @@
 
 keymapGetModifierMask ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    ModifierIntent ->                       -- intent
-    m [ModifierType]
+    a                                       -- _obj
+    -> ModifierIntent                       -- intent
+    -> m [ModifierType]                     -- result
 keymapGetModifierMask _obj intent = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let intent' = (fromIntegral . fromEnum) intent
@@ -479,11 +553,14 @@
     touchManagedPtr _obj
     return result'
 
+data KeymapGetModifierMaskMethodInfo
+instance (signature ~ (ModifierIntent -> m [ModifierType]), MonadIO m, KeymapK a) => MethodInfo KeymapGetModifierMaskMethodInfo a signature where
+    overloadedMethod _ = keymapGetModifierMask
+
 -- method Keymap::get_modifier_state
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUInt32
 -- throws : False
 -- Skip return : False
@@ -495,19 +572,22 @@
 
 keymapGetModifierState ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Word32
+    a                                       -- _obj
+    -> m Word32                             -- result
 keymapGetModifierState _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_keymap_get_modifier_state _obj'
     touchManagedPtr _obj
     return result
 
+data KeymapGetModifierStateMethodInfo
+instance (signature ~ (m Word32), MonadIO m, KeymapK a) => MethodInfo KeymapGetModifierStateMethodInfo a signature where
+    overloadedMethod _ = keymapGetModifierState
+
 -- method Keymap::get_num_lock_state
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -519,8 +599,8 @@
 
 keymapGetNumLockState ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 keymapGetNumLockState _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_keymap_get_num_lock_state _obj'
@@ -528,11 +608,14 @@
     touchManagedPtr _obj
     return result'
 
+data KeymapGetNumLockStateMethodInfo
+instance (signature ~ (m Bool), MonadIO m, KeymapK a) => MethodInfo KeymapGetNumLockStateMethodInfo a signature where
+    overloadedMethod _ = keymapGetNumLockState
+
 -- method Keymap::get_scroll_lock_state
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -544,8 +627,8 @@
 
 keymapGetScrollLockState ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 keymapGetScrollLockState _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_keymap_get_scroll_lock_state _obj'
@@ -553,11 +636,14 @@
     touchManagedPtr _obj
     return result'
 
+data KeymapGetScrollLockStateMethodInfo
+instance (signature ~ (m Bool), MonadIO m, KeymapK a) => MethodInfo KeymapGetScrollLockStateMethodInfo a signature where
+    overloadedMethod _ = keymapGetScrollLockState
+
 -- method Keymap::have_bidi_layouts
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -569,8 +655,8 @@
 
 keymapHaveBidiLayouts ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 keymapHaveBidiLayouts _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_keymap_have_bidi_layouts _obj'
@@ -578,11 +664,14 @@
     touchManagedPtr _obj
     return result'
 
+data KeymapHaveBidiLayoutsMethodInfo
+instance (signature ~ (m Bool), MonadIO m, KeymapK a) => MethodInfo KeymapHaveBidiLayoutsMethodInfo a signature where
+    overloadedMethod _ = keymapHaveBidiLayouts
+
 -- method Keymap::lookup_key
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TInterface "Gdk" "KeymapKey", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "key", argType = TInterface "Gdk" "KeymapKey", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "key", argType = TInterface "Gdk" "KeymapKey", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUInt32
 -- throws : False
 -- Skip return : False
@@ -595,9 +684,9 @@
 
 keymapLookupKey ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    KeymapKey ->                            -- key
-    m Word32
+    a                                       -- _obj
+    -> KeymapKey                            -- key
+    -> m Word32                             -- result
 keymapLookupKey _obj key = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let key' = unsafeManagedPtrGetPtr key
@@ -606,11 +695,14 @@
     touchManagedPtr key
     return result
 
+data KeymapLookupKeyMethodInfo
+instance (signature ~ (KeymapKey -> m Word32), MonadIO m, KeymapK a) => MethodInfo KeymapLookupKeyMethodInfo a signature where
+    overloadedMethod _ = keymapLookupKey
+
 -- method Keymap::map_virtual_modifiers
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionInout, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -623,9 +715,9 @@
 
 keymapMapVirtualModifiers ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    [ModifierType] ->                       -- state
-    m (Bool,[ModifierType])
+    a                                       -- _obj
+    -> [ModifierType]                       -- state
+    -> m (Bool,[ModifierType])              -- result
 keymapMapVirtualModifiers _obj state = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let state' = gflagsToWord state
@@ -639,11 +731,14 @@
     freeMem state''
     return (result', state'''')
 
+data KeymapMapVirtualModifiersMethodInfo
+instance (signature ~ ([ModifierType] -> m (Bool,[ModifierType])), MonadIO m, KeymapK a) => MethodInfo KeymapMapVirtualModifiersMethodInfo a signature where
+    overloadedMethod _ = keymapMapVirtualModifiers
+
 -- method Keymap::translate_keyboard_state
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "effective_group", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "level", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "consumed_modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "group", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "effective_group", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "level", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "consumed_modifiers", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Keymap", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hardware_keycode", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "group", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -662,37 +757,40 @@
 
 keymapTranslateKeyboardState ::
     (MonadIO m, KeymapK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- hardware_keycode
-    [ModifierType] ->                       -- state
-    Int32 ->                                -- group
-    m (Bool,Word32,Int32,Int32,[ModifierType])
-keymapTranslateKeyboardState _obj hardware_keycode state group = liftIO $ do
+    a                                       -- _obj
+    -> Word32                               -- hardwareKeycode
+    -> [ModifierType]                       -- state
+    -> Int32                                -- group
+    -> m (Bool,Word32,Int32,Int32,[ModifierType])-- result
+keymapTranslateKeyboardState _obj hardwareKeycode state group = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let state' = gflagsToWord state
     keyval <- allocMem :: IO (Ptr Word32)
-    effective_group <- allocMem :: IO (Ptr Int32)
+    effectiveGroup <- allocMem :: IO (Ptr Int32)
     level <- allocMem :: IO (Ptr Int32)
-    consumed_modifiers <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_keymap_translate_keyboard_state _obj' hardware_keycode state' group keyval effective_group level consumed_modifiers
+    consumedModifiers <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_keymap_translate_keyboard_state _obj' hardwareKeycode state' group keyval effectiveGroup level consumedModifiers
     let result' = (/= 0) result
     keyval' <- peek keyval
-    effective_group' <- peek effective_group
+    effectiveGroup' <- peek effectiveGroup
     level' <- peek level
-    consumed_modifiers' <- peek consumed_modifiers
-    let consumed_modifiers'' = wordToGFlags consumed_modifiers'
+    consumedModifiers' <- peek consumedModifiers
+    let consumedModifiers'' = wordToGFlags consumedModifiers'
     touchManagedPtr _obj
     freeMem keyval
-    freeMem effective_group
+    freeMem effectiveGroup
     freeMem level
-    freeMem consumed_modifiers
-    return (result', keyval', effective_group', level', consumed_modifiers'')
+    freeMem consumedModifiers
+    return (result', keyval', effectiveGroup', level', consumedModifiers'')
 
+data KeymapTranslateKeyboardStateMethodInfo
+instance (signature ~ (Word32 -> [ModifierType] -> Int32 -> m (Bool,Word32,Int32,Int32,[ModifierType])), MonadIO m, KeymapK a) => MethodInfo KeymapTranslateKeyboardStateMethodInfo a signature where
+    overloadedMethod _ = keymapTranslateKeyboardState
+
 -- method Keymap::get_default
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "Gdk" "Keymap"
 -- throws : False
 -- Skip return : False
@@ -703,7 +801,7 @@
 
 keymapGetDefault ::
     (MonadIO m) =>
-    m Keymap
+    m Keymap                                -- result
 keymapGetDefault  = liftIO $ do
     result <- gdk_keymap_get_default
     checkUnexpectedReturnNULL "gdk_keymap_get_default" result
@@ -712,9 +810,8 @@
 
 -- method Keymap::get_for_display
 -- method type : MemberFunction
--- Args : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "display", argType = TInterface "Gdk" "Display", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Keymap"
 -- throws : False
 -- Skip return : False
@@ -726,8 +823,8 @@
 
 keymapGetForDisplay ::
     (MonadIO m, DisplayK a) =>
-    a ->                                    -- display
-    m Keymap
+    a                                       -- display
+    -> m Keymap                             -- result
 keymapGetForDisplay display = liftIO $ do
     let display' = unsafeManagedPtrCastPtr display
     result <- gdk_keymap_get_for_display display'
diff --git a/GI/Gdk/Objects/Keymap.hs-boot b/GI/Gdk/Objects/Keymap.hs-boot
--- a/GI/Gdk/Objects/Keymap.hs-boot
+++ b/GI/Gdk/Objects/Keymap.hs-boot
@@ -14,3 +14,16 @@
 data KeymapDirectionChangedSignalInfo
 data KeymapKeysChangedSignalInfo
 data KeymapStateChangedSignalInfo
+data KeymapAddVirtualModifiersMethodInfo
+data KeymapGetCapsLockStateMethodInfo
+data KeymapGetDirectionMethodInfo
+data KeymapGetEntriesForKeycodeMethodInfo
+data KeymapGetEntriesForKeyvalMethodInfo
+data KeymapGetModifierMaskMethodInfo
+data KeymapGetModifierStateMethodInfo
+data KeymapGetNumLockStateMethodInfo
+data KeymapGetScrollLockStateMethodInfo
+data KeymapHaveBidiLayoutsMethodInfo
+data KeymapLookupKeyMethodInfo
+data KeymapMapVirtualModifiersMethodInfo
+data KeymapTranslateKeyboardStateMethodInfo
diff --git a/GI/Gdk/Objects/Screen.hs b/GI/Gdk/Objects/Screen.hs
--- a/GI/Gdk/Objects/Screen.hs
+++ b/GI/Gdk/Objects/Screen.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,6 +18,7 @@
 
  -- * Methods
 -- ** screenGetActiveWindow
+    ScreenGetActiveWindowMethodInfo         ,
     screenGetActiveWindow                   ,
 
 
@@ -25,98 +27,122 @@
 
 
 -- ** screenGetDisplay
+    ScreenGetDisplayMethodInfo              ,
     screenGetDisplay                        ,
 
 
 -- ** screenGetFontOptions
+    ScreenGetFontOptionsMethodInfo          ,
     screenGetFontOptions                    ,
 
 
 -- ** screenGetHeight
+    ScreenGetHeightMethodInfo               ,
     screenGetHeight                         ,
 
 
 -- ** screenGetHeightMm
+    ScreenGetHeightMmMethodInfo             ,
     screenGetHeightMm                       ,
 
 
 -- ** screenGetMonitorAtPoint
+    ScreenGetMonitorAtPointMethodInfo       ,
     screenGetMonitorAtPoint                 ,
 
 
 -- ** screenGetMonitorAtWindow
+    ScreenGetMonitorAtWindowMethodInfo      ,
     screenGetMonitorAtWindow                ,
 
 
 -- ** screenGetMonitorGeometry
+    ScreenGetMonitorGeometryMethodInfo      ,
     screenGetMonitorGeometry                ,
 
 
 -- ** screenGetMonitorHeightMm
+    ScreenGetMonitorHeightMmMethodInfo      ,
     screenGetMonitorHeightMm                ,
 
 
 -- ** screenGetMonitorPlugName
+    ScreenGetMonitorPlugNameMethodInfo      ,
     screenGetMonitorPlugName                ,
 
 
 -- ** screenGetMonitorScaleFactor
+    ScreenGetMonitorScaleFactorMethodInfo   ,
     screenGetMonitorScaleFactor             ,
 
 
 -- ** screenGetMonitorWidthMm
+    ScreenGetMonitorWidthMmMethodInfo       ,
     screenGetMonitorWidthMm                 ,
 
 
 -- ** screenGetMonitorWorkarea
+    ScreenGetMonitorWorkareaMethodInfo      ,
     screenGetMonitorWorkarea                ,
 
 
 -- ** screenGetNMonitors
+    ScreenGetNMonitorsMethodInfo            ,
     screenGetNMonitors                      ,
 
 
 -- ** screenGetNumber
+    ScreenGetNumberMethodInfo               ,
     screenGetNumber                         ,
 
 
 -- ** screenGetPrimaryMonitor
+    ScreenGetPrimaryMonitorMethodInfo       ,
     screenGetPrimaryMonitor                 ,
 
 
 -- ** screenGetResolution
+    ScreenGetResolutionMethodInfo           ,
     screenGetResolution                     ,
 
 
 -- ** screenGetRgbaVisual
+    ScreenGetRgbaVisualMethodInfo           ,
     screenGetRgbaVisual                     ,
 
 
 -- ** screenGetRootWindow
+    ScreenGetRootWindowMethodInfo           ,
     screenGetRootWindow                     ,
 
 
 -- ** screenGetSetting
+    ScreenGetSettingMethodInfo              ,
     screenGetSetting                        ,
 
 
 -- ** screenGetSystemVisual
+    ScreenGetSystemVisualMethodInfo         ,
     screenGetSystemVisual                   ,
 
 
 -- ** screenGetToplevelWindows
+    ScreenGetToplevelWindowsMethodInfo      ,
     screenGetToplevelWindows                ,
 
 
 -- ** screenGetWidth
+    ScreenGetWidthMethodInfo                ,
     screenGetWidth                          ,
 
 
 -- ** screenGetWidthMm
+    ScreenGetWidthMmMethodInfo              ,
     screenGetWidthMm                        ,
 
 
 -- ** screenGetWindowStack
+    ScreenGetWindowStackMethodInfo          ,
     screenGetWindowStack                    ,
 
 
@@ -129,22 +155,27 @@
 
 
 -- ** screenIsComposited
+    ScreenIsCompositedMethodInfo            ,
     screenIsComposited                      ,
 
 
 -- ** screenListVisuals
+    ScreenListVisualsMethodInfo             ,
     screenListVisuals                       ,
 
 
 -- ** screenMakeDisplayName
+    ScreenMakeDisplayNameMethodInfo         ,
     screenMakeDisplayName                   ,
 
 
 -- ** screenSetFontOptions
+    ScreenSetFontOptionsMethodInfo          ,
     screenSetFontOptions                    ,
 
 
 -- ** screenSetResolution
+    ScreenSetResolutionMethodInfo           ,
     screenSetResolution                     ,
 
 
@@ -249,6 +280,69 @@
 noScreen :: Maybe Screen
 noScreen = Nothing
 
+type family ResolveScreenMethod (t :: Symbol) (o :: *) :: * where
+    ResolveScreenMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveScreenMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveScreenMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveScreenMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveScreenMethod "isComposited" o = ScreenIsCompositedMethodInfo
+    ResolveScreenMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveScreenMethod "listVisuals" o = ScreenListVisualsMethodInfo
+    ResolveScreenMethod "makeDisplayName" o = ScreenMakeDisplayNameMethodInfo
+    ResolveScreenMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveScreenMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveScreenMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveScreenMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveScreenMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveScreenMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveScreenMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveScreenMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveScreenMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveScreenMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveScreenMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveScreenMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveScreenMethod "getActiveWindow" o = ScreenGetActiveWindowMethodInfo
+    ResolveScreenMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveScreenMethod "getDisplay" o = ScreenGetDisplayMethodInfo
+    ResolveScreenMethod "getFontOptions" o = ScreenGetFontOptionsMethodInfo
+    ResolveScreenMethod "getHeight" o = ScreenGetHeightMethodInfo
+    ResolveScreenMethod "getHeightMm" o = ScreenGetHeightMmMethodInfo
+    ResolveScreenMethod "getMonitorAtPoint" o = ScreenGetMonitorAtPointMethodInfo
+    ResolveScreenMethod "getMonitorAtWindow" o = ScreenGetMonitorAtWindowMethodInfo
+    ResolveScreenMethod "getMonitorGeometry" o = ScreenGetMonitorGeometryMethodInfo
+    ResolveScreenMethod "getMonitorHeightMm" o = ScreenGetMonitorHeightMmMethodInfo
+    ResolveScreenMethod "getMonitorPlugName" o = ScreenGetMonitorPlugNameMethodInfo
+    ResolveScreenMethod "getMonitorScaleFactor" o = ScreenGetMonitorScaleFactorMethodInfo
+    ResolveScreenMethod "getMonitorWidthMm" o = ScreenGetMonitorWidthMmMethodInfo
+    ResolveScreenMethod "getMonitorWorkarea" o = ScreenGetMonitorWorkareaMethodInfo
+    ResolveScreenMethod "getNMonitors" o = ScreenGetNMonitorsMethodInfo
+    ResolveScreenMethod "getNumber" o = ScreenGetNumberMethodInfo
+    ResolveScreenMethod "getPrimaryMonitor" o = ScreenGetPrimaryMonitorMethodInfo
+    ResolveScreenMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveScreenMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveScreenMethod "getResolution" o = ScreenGetResolutionMethodInfo
+    ResolveScreenMethod "getRgbaVisual" o = ScreenGetRgbaVisualMethodInfo
+    ResolveScreenMethod "getRootWindow" o = ScreenGetRootWindowMethodInfo
+    ResolveScreenMethod "getSetting" o = ScreenGetSettingMethodInfo
+    ResolveScreenMethod "getSystemVisual" o = ScreenGetSystemVisualMethodInfo
+    ResolveScreenMethod "getToplevelWindows" o = ScreenGetToplevelWindowsMethodInfo
+    ResolveScreenMethod "getWidth" o = ScreenGetWidthMethodInfo
+    ResolveScreenMethod "getWidthMm" o = ScreenGetWidthMmMethodInfo
+    ResolveScreenMethod "getWindowStack" o = ScreenGetWindowStackMethodInfo
+    ResolveScreenMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveScreenMethod "setFontOptions" o = ScreenSetFontOptionsMethodInfo
+    ResolveScreenMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveScreenMethod "setResolution" o = ScreenSetResolutionMethodInfo
+    ResolveScreenMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveScreenMethod t Screen, MethodInfo info Screen p) => IsLabelProxy t (Screen -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveScreenMethod t Screen, MethodInfo info Screen p) => IsLabel t (Screen -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 -- signal Screen::composited-changed
 type ScreenCompositedChangedCallback =
     IO ()
@@ -382,7 +476,7 @@
     type AttrSetTypeConstraint ScreenFontOptionsPropertyInfo = (~) (Ptr ())
     type AttrBaseTypeConstraint ScreenFontOptionsPropertyInfo = ScreenK
     type AttrGetType ScreenFontOptionsPropertyInfo = (Ptr ())
-    type AttrLabel ScreenFontOptionsPropertyInfo = "Screen::font-options"
+    type AttrLabel ScreenFontOptionsPropertyInfo = "font-options"
     attrGet _ = getScreenFontOptions
     attrSet _ = setScreenFontOptions
     attrConstruct _ = constructScreenFontOptions
@@ -406,13 +500,13 @@
     type AttrSetTypeConstraint ScreenResolutionPropertyInfo = (~) Double
     type AttrBaseTypeConstraint ScreenResolutionPropertyInfo = ScreenK
     type AttrGetType ScreenResolutionPropertyInfo = Double
-    type AttrLabel ScreenResolutionPropertyInfo = "Screen::resolution"
+    type AttrLabel ScreenResolutionPropertyInfo = "resolution"
     attrGet _ = getScreenResolution
     attrSet _ = setScreenResolution
     attrConstruct _ = constructScreenResolution
 
 type instance AttributeList Screen = ScreenAttributeList
-type ScreenAttributeList = ('[ '("font-options", ScreenFontOptionsPropertyInfo), '("resolution", ScreenResolutionPropertyInfo)] :: [(Symbol, *)])
+type ScreenAttributeList = ('[ '("fontOptions", ScreenFontOptionsPropertyInfo), '("resolution", ScreenResolutionPropertyInfo)] :: [(Symbol, *)])
 
 data ScreenCompositedChangedSignalInfo
 instance SignalInfo ScreenCompositedChangedSignalInfo where
@@ -430,13 +524,12 @@
     connectSignal _ = connectScreenSizeChanged
 
 type instance SignalList Screen = ScreenSignalList
-type ScreenSignalList = ('[ '("composited-changed", ScreenCompositedChangedSignalInfo), '("monitors-changed", ScreenMonitorsChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("size-changed", ScreenSizeChangedSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type ScreenSignalList = ('[ '("compositedChanged", ScreenCompositedChangedSignalInfo), '("monitorsChanged", ScreenMonitorsChangedSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("sizeChanged", ScreenSizeChangedSignalInfo)] :: [(Symbol, *)])
 
 -- method Screen::get_active_window
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -448,8 +541,8 @@
 
 screenGetActiveWindow ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Window
+    a                                       -- _obj
+    -> m Window                             -- result
 screenGetActiveWindow _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_active_window _obj'
@@ -458,11 +551,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScreenGetActiveWindowMethodInfo
+instance (signature ~ (m Window), MonadIO m, ScreenK a) => MethodInfo ScreenGetActiveWindowMethodInfo a signature where
+    overloadedMethod _ = screenGetActiveWindow
+
 -- method Screen::get_display
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Display"
 -- throws : False
 -- Skip return : False
@@ -474,8 +570,8 @@
 
 screenGetDisplay ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Display
+    a                                       -- _obj
+    -> m Display                            -- result
 screenGetDisplay _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_display _obj'
@@ -484,11 +580,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScreenGetDisplayMethodInfo
+instance (signature ~ (m Display), MonadIO m, ScreenK a) => MethodInfo ScreenGetDisplayMethodInfo a signature where
+    overloadedMethod _ = screenGetDisplay
+
 -- method Screen::get_font_options
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "cairo" "FontOptions"
 -- throws : False
 -- Skip return : False
@@ -500,8 +599,8 @@
 
 screenGetFontOptions ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Cairo.FontOptions
+    a                                       -- _obj
+    -> m Cairo.FontOptions                  -- result
 screenGetFontOptions _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_font_options _obj'
@@ -511,11 +610,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScreenGetFontOptionsMethodInfo
+instance (signature ~ (m Cairo.FontOptions), MonadIO m, ScreenK a) => MethodInfo ScreenGetFontOptionsMethodInfo a signature where
+    overloadedMethod _ = screenGetFontOptions
+
 -- method Screen::get_height
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -527,19 +629,22 @@
 
 screenGetHeight ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 screenGetHeight _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_height _obj'
     touchManagedPtr _obj
     return result
 
+data ScreenGetHeightMethodInfo
+instance (signature ~ (m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetHeightMethodInfo a signature where
+    overloadedMethod _ = screenGetHeight
+
 -- method Screen::get_height_mm
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -551,19 +656,22 @@
 
 screenGetHeightMm ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 screenGetHeightMm _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_height_mm _obj'
     touchManagedPtr _obj
     return result
 
+data ScreenGetHeightMmMethodInfo
+instance (signature ~ (m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetHeightMmMethodInfo a signature where
+    overloadedMethod _ = screenGetHeightMm
+
 -- method Screen::get_monitor_at_point
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -577,21 +685,24 @@
 
 screenGetMonitorAtPoint ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m Int32
+    a                                       -- _obj
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> m Int32                              -- result
 screenGetMonitorAtPoint _obj x y = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_monitor_at_point _obj' x y
     touchManagedPtr _obj
     return result
 
+data ScreenGetMonitorAtPointMethodInfo
+instance (signature ~ (Int32 -> Int32 -> m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetMonitorAtPointMethodInfo a signature where
+    overloadedMethod _ = screenGetMonitorAtPoint
+
 -- method Screen::get_monitor_at_window
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "window", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -604,9 +715,9 @@
 
 screenGetMonitorAtWindow ::
     (MonadIO m, ScreenK a, WindowK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- window
-    m Int32
+    a                                       -- _obj
+    -> b                                    -- window
+    -> m Int32                              -- result
 screenGetMonitorAtWindow _obj window = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let window' = unsafeManagedPtrCastPtr window
@@ -615,11 +726,14 @@
     touchManagedPtr window
     return result
 
+data ScreenGetMonitorAtWindowMethodInfo
+instance (signature ~ (b -> m Int32), MonadIO m, ScreenK a, WindowK b) => MethodInfo ScreenGetMonitorAtWindowMethodInfo a signature where
+    overloadedMethod _ = screenGetMonitorAtWindow
+
 -- method Screen::get_monitor_geometry
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -633,22 +747,25 @@
 
 screenGetMonitorGeometry ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m (Rectangle)
-screenGetMonitorGeometry _obj monitor_num = liftIO $ do
+    a                                       -- _obj
+    -> Int32                                -- monitorNum
+    -> m (Rectangle)                        -- result
+screenGetMonitorGeometry _obj monitorNum = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     dest <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
-    gdk_screen_get_monitor_geometry _obj' monitor_num dest
+    gdk_screen_get_monitor_geometry _obj' monitorNum dest
     dest' <- (wrapBoxed Rectangle) dest
     touchManagedPtr _obj
     return dest'
 
+data ScreenGetMonitorGeometryMethodInfo
+instance (signature ~ (Int32 -> m (Rectangle)), MonadIO m, ScreenK a) => MethodInfo ScreenGetMonitorGeometryMethodInfo a signature where
+    overloadedMethod _ = screenGetMonitorGeometry
+
 -- method Screen::get_monitor_height_mm
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -661,20 +778,23 @@
 
 screenGetMonitorHeightMm ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m Int32
-screenGetMonitorHeightMm _obj monitor_num = liftIO $ do
+    a                                       -- _obj
+    -> Int32                                -- monitorNum
+    -> m Int32                              -- result
+screenGetMonitorHeightMm _obj monitorNum = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_monitor_height_mm _obj' monitor_num
+    result <- gdk_screen_get_monitor_height_mm _obj' monitorNum
     touchManagedPtr _obj
     return result
 
+data ScreenGetMonitorHeightMmMethodInfo
+instance (signature ~ (Int32 -> m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetMonitorHeightMmMethodInfo a signature where
+    overloadedMethod _ = screenGetMonitorHeightMm
+
 -- method Screen::get_monitor_plug_name
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -687,23 +807,26 @@
 
 screenGetMonitorPlugName ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m T.Text
-screenGetMonitorPlugName _obj monitor_num = liftIO $ do
+    a                                       -- _obj
+    -> Int32                                -- monitorNum
+    -> m T.Text                             -- result
+screenGetMonitorPlugName _obj monitorNum = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_monitor_plug_name _obj' monitor_num
+    result <- gdk_screen_get_monitor_plug_name _obj' monitorNum
     checkUnexpectedReturnNULL "gdk_screen_get_monitor_plug_name" result
     result' <- cstringToText result
     freeMem result
     touchManagedPtr _obj
     return result'
 
+data ScreenGetMonitorPlugNameMethodInfo
+instance (signature ~ (Int32 -> m T.Text), MonadIO m, ScreenK a) => MethodInfo ScreenGetMonitorPlugNameMethodInfo a signature where
+    overloadedMethod _ = screenGetMonitorPlugName
+
 -- method Screen::get_monitor_scale_factor
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -716,20 +839,23 @@
 
 screenGetMonitorScaleFactor ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m Int32
-screenGetMonitorScaleFactor _obj monitor_num = liftIO $ do
+    a                                       -- _obj
+    -> Int32                                -- monitorNum
+    -> m Int32                              -- result
+screenGetMonitorScaleFactor _obj monitorNum = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_monitor_scale_factor _obj' monitor_num
+    result <- gdk_screen_get_monitor_scale_factor _obj' monitorNum
     touchManagedPtr _obj
     return result
 
+data ScreenGetMonitorScaleFactorMethodInfo
+instance (signature ~ (Int32 -> m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetMonitorScaleFactorMethodInfo a signature where
+    overloadedMethod _ = screenGetMonitorScaleFactor
+
 -- method Screen::get_monitor_width_mm
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -742,20 +868,23 @@
 
 screenGetMonitorWidthMm ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m Int32
-screenGetMonitorWidthMm _obj monitor_num = liftIO $ do
+    a                                       -- _obj
+    -> Int32                                -- monitorNum
+    -> m Int32                              -- result
+screenGetMonitorWidthMm _obj monitorNum = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_screen_get_monitor_width_mm _obj' monitor_num
+    result <- gdk_screen_get_monitor_width_mm _obj' monitorNum
     touchManagedPtr _obj
     return result
 
+data ScreenGetMonitorWidthMmMethodInfo
+instance (signature ~ (Int32 -> m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetMonitorWidthMmMethodInfo a signature where
+    overloadedMethod _ = screenGetMonitorWidthMm
+
 -- method Screen::get_monitor_workarea
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor_num", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -769,22 +898,25 @@
 
 screenGetMonitorWorkarea ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor_num
-    m (Rectangle)
-screenGetMonitorWorkarea _obj monitor_num = liftIO $ do
+    a                                       -- _obj
+    -> Int32                                -- monitorNum
+    -> m (Rectangle)                        -- result
+screenGetMonitorWorkarea _obj monitorNum = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     dest <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
-    gdk_screen_get_monitor_workarea _obj' monitor_num dest
+    gdk_screen_get_monitor_workarea _obj' monitorNum dest
     dest' <- (wrapBoxed Rectangle) dest
     touchManagedPtr _obj
     return dest'
 
+data ScreenGetMonitorWorkareaMethodInfo
+instance (signature ~ (Int32 -> m (Rectangle)), MonadIO m, ScreenK a) => MethodInfo ScreenGetMonitorWorkareaMethodInfo a signature where
+    overloadedMethod _ = screenGetMonitorWorkarea
+
 -- method Screen::get_n_monitors
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -796,19 +928,22 @@
 
 screenGetNMonitors ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 screenGetNMonitors _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_n_monitors _obj'
     touchManagedPtr _obj
     return result
 
+data ScreenGetNMonitorsMethodInfo
+instance (signature ~ (m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetNMonitorsMethodInfo a signature where
+    overloadedMethod _ = screenGetNMonitors
+
 -- method Screen::get_number
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -820,19 +955,22 @@
 
 screenGetNumber ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 screenGetNumber _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_number _obj'
     touchManagedPtr _obj
     return result
 
+data ScreenGetNumberMethodInfo
+instance (signature ~ (m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetNumberMethodInfo a signature where
+    overloadedMethod _ = screenGetNumber
+
 -- method Screen::get_primary_monitor
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -844,19 +982,22 @@
 
 screenGetPrimaryMonitor ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 screenGetPrimaryMonitor _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_primary_monitor _obj'
     touchManagedPtr _obj
     return result
 
+data ScreenGetPrimaryMonitorMethodInfo
+instance (signature ~ (m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetPrimaryMonitorMethodInfo a signature where
+    overloadedMethod _ = screenGetPrimaryMonitor
+
 -- method Screen::get_resolution
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TDouble
 -- throws : False
 -- Skip return : False
@@ -868,8 +1009,8 @@
 
 screenGetResolution ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Double
+    a                                       -- _obj
+    -> m Double                             -- result
 screenGetResolution _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_resolution _obj'
@@ -877,11 +1018,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScreenGetResolutionMethodInfo
+instance (signature ~ (m Double), MonadIO m, ScreenK a) => MethodInfo ScreenGetResolutionMethodInfo a signature where
+    overloadedMethod _ = screenGetResolution
+
 -- method Screen::get_rgba_visual
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Visual"
 -- throws : False
 -- Skip return : False
@@ -893,8 +1037,8 @@
 
 screenGetRgbaVisual ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Visual
+    a                                       -- _obj
+    -> m Visual                             -- result
 screenGetRgbaVisual _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_rgba_visual _obj'
@@ -903,11 +1047,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScreenGetRgbaVisualMethodInfo
+instance (signature ~ (m Visual), MonadIO m, ScreenK a) => MethodInfo ScreenGetRgbaVisualMethodInfo a signature where
+    overloadedMethod _ = screenGetRgbaVisual
+
 -- method Screen::get_root_window
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -919,8 +1066,8 @@
 
 screenGetRootWindow ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Window
+    a                                       -- _obj
+    -> m Window                             -- result
 screenGetRootWindow _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_root_window _obj'
@@ -929,11 +1076,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScreenGetRootWindowMethodInfo
+instance (signature ~ (m Window), MonadIO m, ScreenK a) => MethodInfo ScreenGetRootWindowMethodInfo a signature where
+    overloadedMethod _ = screenGetRootWindow
+
 -- method Screen::get_setting
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", 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 = "value", argType = TInterface "GObject" "Value", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", 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 = "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 "Gdk" "Screen", 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 = "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
@@ -947,10 +1097,10 @@
 
 screenGetSetting ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- name
-    GValue ->                               -- value
-    m Bool
+    a                                       -- _obj
+    -> T.Text                               -- name
+    -> GValue                               -- value
+    -> m Bool                               -- result
 screenGetSetting _obj name value = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     name' <- textToCString name
@@ -962,11 +1112,14 @@
     freeMem name'
     return result'
 
+data ScreenGetSettingMethodInfo
+instance (signature ~ (T.Text -> GValue -> m Bool), MonadIO m, ScreenK a) => MethodInfo ScreenGetSettingMethodInfo a signature where
+    overloadedMethod _ = screenGetSetting
+
 -- method Screen::get_system_visual
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Visual"
 -- throws : False
 -- Skip return : False
@@ -978,8 +1131,8 @@
 
 screenGetSystemVisual ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Visual
+    a                                       -- _obj
+    -> m Visual                             -- result
 screenGetSystemVisual _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_system_visual _obj'
@@ -988,11 +1141,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScreenGetSystemVisualMethodInfo
+instance (signature ~ (m Visual), MonadIO m, ScreenK a) => MethodInfo ScreenGetSystemVisualMethodInfo a signature where
+    overloadedMethod _ = screenGetSystemVisual
+
 -- method Screen::get_toplevel_windows
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TGList (TInterface "Gdk" "Window")
 -- throws : False
 -- Skip return : False
@@ -1004,8 +1160,8 @@
 
 screenGetToplevelWindows ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m [Window]
+    a                                       -- _obj
+    -> m [Window]                           -- result
 screenGetToplevelWindows _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_toplevel_windows _obj'
@@ -1016,11 +1172,14 @@
     touchManagedPtr _obj
     return result''
 
+data ScreenGetToplevelWindowsMethodInfo
+instance (signature ~ (m [Window]), MonadIO m, ScreenK a) => MethodInfo ScreenGetToplevelWindowsMethodInfo a signature where
+    overloadedMethod _ = screenGetToplevelWindows
+
 -- method Screen::get_width
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -1032,19 +1191,22 @@
 
 screenGetWidth ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 screenGetWidth _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_width _obj'
     touchManagedPtr _obj
     return result
 
+data ScreenGetWidthMethodInfo
+instance (signature ~ (m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetWidthMethodInfo a signature where
+    overloadedMethod _ = screenGetWidth
+
 -- method Screen::get_width_mm
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -1056,19 +1218,22 @@
 
 screenGetWidthMm ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 screenGetWidthMm _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_width_mm _obj'
     touchManagedPtr _obj
     return result
 
+data ScreenGetWidthMmMethodInfo
+instance (signature ~ (m Int32), MonadIO m, ScreenK a) => MethodInfo ScreenGetWidthMmMethodInfo a signature where
+    overloadedMethod _ = screenGetWidthMm
+
 -- method Screen::get_window_stack
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TGList (TInterface "Gdk" "Window")
 -- throws : False
 -- Skip return : False
@@ -1080,8 +1245,8 @@
 
 screenGetWindowStack ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m [Window]
+    a                                       -- _obj
+    -> m [Window]                           -- result
 screenGetWindowStack _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_get_window_stack _obj'
@@ -1092,11 +1257,14 @@
     touchManagedPtr _obj
     return result''
 
+data ScreenGetWindowStackMethodInfo
+instance (signature ~ (m [Window]), MonadIO m, ScreenK a) => MethodInfo ScreenGetWindowStackMethodInfo a signature where
+    overloadedMethod _ = screenGetWindowStack
+
 -- method Screen::is_composited
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1108,8 +1276,8 @@
 
 screenIsComposited ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m Bool
+    a                                       -- _obj
+    -> m Bool                               -- result
 screenIsComposited _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_is_composited _obj'
@@ -1117,11 +1285,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScreenIsCompositedMethodInfo
+instance (signature ~ (m Bool), MonadIO m, ScreenK a) => MethodInfo ScreenIsCompositedMethodInfo a signature where
+    overloadedMethod _ = screenIsComposited
+
 -- method Screen::list_visuals
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TGList (TInterface "Gdk" "Visual")
 -- throws : False
 -- Skip return : False
@@ -1133,8 +1304,8 @@
 
 screenListVisuals ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m [Visual]
+    a                                       -- _obj
+    -> m [Visual]                           -- result
 screenListVisuals _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_list_visuals _obj'
@@ -1145,11 +1316,14 @@
     touchManagedPtr _obj
     return result''
 
+data ScreenListVisualsMethodInfo
+instance (signature ~ (m [Visual]), MonadIO m, ScreenK a) => MethodInfo ScreenListVisualsMethodInfo a signature where
+    overloadedMethod _ = screenListVisuals
+
 -- method Screen::make_display_name
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -1161,8 +1335,8 @@
 
 screenMakeDisplayName ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    m T.Text
+    a                                       -- _obj
+    -> m T.Text                             -- result
 screenMakeDisplayName _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_screen_make_display_name _obj'
@@ -1172,11 +1346,14 @@
     touchManagedPtr _obj
     return result'
 
+data ScreenMakeDisplayNameMethodInfo
+instance (signature ~ (m T.Text), MonadIO m, ScreenK a) => MethodInfo ScreenMakeDisplayNameMethodInfo a signature where
+    overloadedMethod _ = screenMakeDisplayName
+
 -- method Screen::set_font_options
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "options", argType = TInterface "cairo" "FontOptions", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "options", argType = TInterface "cairo" "FontOptions", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "options", argType = TInterface "cairo" "FontOptions", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1189,9 +1366,9 @@
 
 screenSetFontOptions ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Maybe (Cairo.FontOptions) ->            -- options
-    m ()
+    a                                       -- _obj
+    -> Maybe (Cairo.FontOptions)            -- options
+    -> m ()                                 -- result
 screenSetFontOptions _obj options = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     maybeOptions <- case options of
@@ -1204,11 +1381,14 @@
     whenJust options touchManagedPtr
     return ()
 
+data ScreenSetFontOptionsMethodInfo
+instance (signature ~ (Maybe (Cairo.FontOptions) -> m ()), MonadIO m, ScreenK a) => MethodInfo ScreenSetFontOptionsMethodInfo a signature where
+    overloadedMethod _ = screenSetFontOptions
+
 -- method Screen::set_resolution
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dpi", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dpi", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dpi", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1221,9 +1401,9 @@
 
 screenSetResolution ::
     (MonadIO m, ScreenK a) =>
-    a ->                                    -- _obj
-    Double ->                               -- dpi
-    m ()
+    a                                       -- _obj
+    -> Double                               -- dpi
+    -> m ()                                 -- result
 screenSetResolution _obj dpi = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     let dpi' = realToFrac dpi
@@ -1231,11 +1411,14 @@
     touchManagedPtr _obj
     return ()
 
+data ScreenSetResolutionMethodInfo
+instance (signature ~ (Double -> m ()), MonadIO m, ScreenK a) => MethodInfo ScreenSetResolutionMethodInfo a signature where
+    overloadedMethod _ = screenSetResolution
+
 -- method Screen::get_default
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "Gdk" "Screen"
 -- throws : False
 -- Skip return : False
@@ -1246,7 +1429,7 @@
 
 screenGetDefault ::
     (MonadIO m) =>
-    m Screen
+    m Screen                                -- result
 screenGetDefault  = liftIO $ do
     result <- gdk_screen_get_default
     checkUnexpectedReturnNULL "gdk_screen_get_default" result
@@ -1257,7 +1440,6 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -1268,7 +1450,7 @@
 
 screenHeight ::
     (MonadIO m) =>
-    m Int32
+    m Int32                                 -- result
 screenHeight  = liftIO $ do
     result <- gdk_screen_height
     return result
@@ -1277,7 +1459,6 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -1288,7 +1469,7 @@
 
 screenHeightMm ::
     (MonadIO m) =>
-    m Int32
+    m Int32                                 -- result
 screenHeightMm  = liftIO $ do
     result <- gdk_screen_height_mm
     return result
@@ -1297,7 +1478,6 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -1308,7 +1488,7 @@
 
 screenWidth ::
     (MonadIO m) =>
-    m Int32
+    m Int32                                 -- result
 screenWidth  = liftIO $ do
     result <- gdk_screen_width
     return result
@@ -1317,7 +1497,6 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -1328,7 +1507,7 @@
 
 screenWidthMm ::
     (MonadIO m) =>
-    m Int32
+    m Int32                                 -- result
 screenWidthMm  = liftIO $ do
     result <- gdk_screen_width_mm
     return result
diff --git a/GI/Gdk/Objects/Screen.hs-boot b/GI/Gdk/Objects/Screen.hs-boot
--- a/GI/Gdk/Objects/Screen.hs-boot
+++ b/GI/Gdk/Objects/Screen.hs-boot
@@ -16,3 +16,33 @@
 data ScreenCompositedChangedSignalInfo
 data ScreenMonitorsChangedSignalInfo
 data ScreenSizeChangedSignalInfo
+data ScreenGetActiveWindowMethodInfo
+data ScreenGetDisplayMethodInfo
+data ScreenGetFontOptionsMethodInfo
+data ScreenGetHeightMethodInfo
+data ScreenGetHeightMmMethodInfo
+data ScreenGetMonitorAtPointMethodInfo
+data ScreenGetMonitorAtWindowMethodInfo
+data ScreenGetMonitorGeometryMethodInfo
+data ScreenGetMonitorHeightMmMethodInfo
+data ScreenGetMonitorPlugNameMethodInfo
+data ScreenGetMonitorScaleFactorMethodInfo
+data ScreenGetMonitorWidthMmMethodInfo
+data ScreenGetMonitorWorkareaMethodInfo
+data ScreenGetNMonitorsMethodInfo
+data ScreenGetNumberMethodInfo
+data ScreenGetPrimaryMonitorMethodInfo
+data ScreenGetResolutionMethodInfo
+data ScreenGetRgbaVisualMethodInfo
+data ScreenGetRootWindowMethodInfo
+data ScreenGetSettingMethodInfo
+data ScreenGetSystemVisualMethodInfo
+data ScreenGetToplevelWindowsMethodInfo
+data ScreenGetWidthMethodInfo
+data ScreenGetWidthMmMethodInfo
+data ScreenGetWindowStackMethodInfo
+data ScreenIsCompositedMethodInfo
+data ScreenListVisualsMethodInfo
+data ScreenMakeDisplayNameMethodInfo
+data ScreenSetFontOptionsMethodInfo
+data ScreenSetResolutionMethodInfo
diff --git a/GI/Gdk/Objects/Visual.hs b/GI/Gdk/Objects/Visual.hs
--- a/GI/Gdk/Objects/Visual.hs
+++ b/GI/Gdk/Objects/Visual.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -41,34 +42,42 @@
 
 
 -- ** visualGetBitsPerRgb
+    VisualGetBitsPerRgbMethodInfo           ,
     visualGetBitsPerRgb                     ,
 
 
 -- ** visualGetBluePixelDetails
+    VisualGetBluePixelDetailsMethodInfo     ,
     visualGetBluePixelDetails               ,
 
 
 -- ** visualGetByteOrder
+    VisualGetByteOrderMethodInfo            ,
     visualGetByteOrder                      ,
 
 
 -- ** visualGetColormapSize
+    VisualGetColormapSizeMethodInfo         ,
     visualGetColormapSize                   ,
 
 
 -- ** visualGetDepth
+    VisualGetDepthMethodInfo                ,
     visualGetDepth                          ,
 
 
 -- ** visualGetGreenPixelDetails
+    VisualGetGreenPixelDetailsMethodInfo    ,
     visualGetGreenPixelDetails              ,
 
 
 -- ** visualGetRedPixelDetails
+    VisualGetRedPixelDetailsMethodInfo      ,
     visualGetRedPixelDetails                ,
 
 
 -- ** visualGetScreen
+    VisualGetScreenMethodInfo               ,
     visualGetScreen                         ,
 
 
@@ -77,6 +86,7 @@
 
 
 -- ** visualGetVisualType
+    VisualGetVisualTypeMethodInfo           ,
     visualGetVisualType                     ,
 
 
@@ -116,17 +126,58 @@
 noVisual :: Maybe Visual
 noVisual = Nothing
 
+type family ResolveVisualMethod (t :: Symbol) (o :: *) :: * where
+    ResolveVisualMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveVisualMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveVisualMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveVisualMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveVisualMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveVisualMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveVisualMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveVisualMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveVisualMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveVisualMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveVisualMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveVisualMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveVisualMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveVisualMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveVisualMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveVisualMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveVisualMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveVisualMethod "getBitsPerRgb" o = VisualGetBitsPerRgbMethodInfo
+    ResolveVisualMethod "getBluePixelDetails" o = VisualGetBluePixelDetailsMethodInfo
+    ResolveVisualMethod "getByteOrder" o = VisualGetByteOrderMethodInfo
+    ResolveVisualMethod "getColormapSize" o = VisualGetColormapSizeMethodInfo
+    ResolveVisualMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveVisualMethod "getDepth" o = VisualGetDepthMethodInfo
+    ResolveVisualMethod "getGreenPixelDetails" o = VisualGetGreenPixelDetailsMethodInfo
+    ResolveVisualMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveVisualMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveVisualMethod "getRedPixelDetails" o = VisualGetRedPixelDetailsMethodInfo
+    ResolveVisualMethod "getScreen" o = VisualGetScreenMethodInfo
+    ResolveVisualMethod "getVisualType" o = VisualGetVisualTypeMethodInfo
+    ResolveVisualMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveVisualMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveVisualMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveVisualMethod t Visual, MethodInfo info Visual p) => IsLabelProxy t (Visual -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveVisualMethod t Visual, MethodInfo info Visual p) => IsLabel t (Visual -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
 type instance AttributeList Visual = VisualAttributeList
 type VisualAttributeList = ('[ ] :: [(Symbol, *)])
 
 type instance SignalList Visual = VisualSignalList
-type VisualSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
+type VisualSignalList = ('[ '("notify", GObject.ObjectNotifySignalInfo)] :: [(Symbol, *)])
 
 -- method Visual::get_bits_per_rgb
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -138,19 +189,22 @@
 
 visualGetBitsPerRgb ::
     (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 visualGetBitsPerRgb _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_visual_get_bits_per_rgb _obj'
     touchManagedPtr _obj
     return result
 
+data VisualGetBitsPerRgbMethodInfo
+instance (signature ~ (m Int32), MonadIO m, VisualK a) => MethodInfo VisualGetBitsPerRgbMethodInfo a signature where
+    overloadedMethod _ = visualGetBitsPerRgb
+
 -- method Visual::get_blue_pixel_details
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -165,8 +219,8 @@
 
 visualGetBluePixelDetails ::
     (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m (Word32,Int32,Int32)
+    a                                       -- _obj
+    -> m (Word32,Int32,Int32)               -- result
 visualGetBluePixelDetails _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     mask <- allocMem :: IO (Ptr Word32)
@@ -182,11 +236,14 @@
     freeMem precision
     return (mask', shift', precision')
 
+data VisualGetBluePixelDetailsMethodInfo
+instance (signature ~ (m (Word32,Int32,Int32)), MonadIO m, VisualK a) => MethodInfo VisualGetBluePixelDetailsMethodInfo a signature where
+    overloadedMethod _ = visualGetBluePixelDetails
+
 -- method Visual::get_byte_order
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "ByteOrder"
 -- throws : False
 -- Skip return : False
@@ -198,8 +255,8 @@
 
 visualGetByteOrder ::
     (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m ByteOrder
+    a                                       -- _obj
+    -> m ByteOrder                          -- result
 visualGetByteOrder _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_visual_get_byte_order _obj'
@@ -207,11 +264,14 @@
     touchManagedPtr _obj
     return result'
 
+data VisualGetByteOrderMethodInfo
+instance (signature ~ (m ByteOrder), MonadIO m, VisualK a) => MethodInfo VisualGetByteOrderMethodInfo a signature where
+    overloadedMethod _ = visualGetByteOrder
+
 -- method Visual::get_colormap_size
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -223,19 +283,22 @@
 
 visualGetColormapSize ::
     (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 visualGetColormapSize _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_visual_get_colormap_size _obj'
     touchManagedPtr _obj
     return result
 
+data VisualGetColormapSizeMethodInfo
+instance (signature ~ (m Int32), MonadIO m, VisualK a) => MethodInfo VisualGetColormapSizeMethodInfo a signature where
+    overloadedMethod _ = visualGetColormapSize
+
 -- method Visual::get_depth
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -247,19 +310,22 @@
 
 visualGetDepth ::
     (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m Int32
+    a                                       -- _obj
+    -> m Int32                              -- result
 visualGetDepth _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_visual_get_depth _obj'
     touchManagedPtr _obj
     return result
 
+data VisualGetDepthMethodInfo
+instance (signature ~ (m Int32), MonadIO m, VisualK a) => MethodInfo VisualGetDepthMethodInfo a signature where
+    overloadedMethod _ = visualGetDepth
+
 -- method Visual::get_green_pixel_details
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -274,8 +340,8 @@
 
 visualGetGreenPixelDetails ::
     (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m (Word32,Int32,Int32)
+    a                                       -- _obj
+    -> m (Word32,Int32,Int32)               -- result
 visualGetGreenPixelDetails _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     mask <- allocMem :: IO (Ptr Word32)
@@ -291,11 +357,14 @@
     freeMem precision
     return (mask', shift', precision')
 
+data VisualGetGreenPixelDetailsMethodInfo
+instance (signature ~ (m (Word32,Int32,Int32)), MonadIO m, VisualK a) => MethodInfo VisualGetGreenPixelDetailsMethodInfo a signature where
+    overloadedMethod _ = visualGetGreenPixelDetails
+
 -- method Visual::get_red_pixel_details
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mask", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "shift", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "precision", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -310,8 +379,8 @@
 
 visualGetRedPixelDetails ::
     (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m (Word32,Int32,Int32)
+    a                                       -- _obj
+    -> m (Word32,Int32,Int32)               -- result
 visualGetRedPixelDetails _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     mask <- allocMem :: IO (Ptr Word32)
@@ -327,11 +396,14 @@
     freeMem precision
     return (mask', shift', precision')
 
+data VisualGetRedPixelDetailsMethodInfo
+instance (signature ~ (m (Word32,Int32,Int32)), MonadIO m, VisualK a) => MethodInfo VisualGetRedPixelDetailsMethodInfo a signature where
+    overloadedMethod _ = visualGetRedPixelDetails
+
 -- method Visual::get_screen
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Screen"
 -- throws : False
 -- Skip return : False
@@ -343,8 +415,8 @@
 
 visualGetScreen ::
     (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m Screen
+    a                                       -- _obj
+    -> m Screen                             -- result
 visualGetScreen _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_visual_get_screen _obj'
@@ -353,11 +425,14 @@
     touchManagedPtr _obj
     return result'
 
+data VisualGetScreenMethodInfo
+instance (signature ~ (m Screen), MonadIO m, VisualK a) => MethodInfo VisualGetScreenMethodInfo a signature where
+    overloadedMethod _ = visualGetScreen
+
 -- method Visual::get_visual_type
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Visual", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "VisualType"
 -- throws : False
 -- Skip return : False
@@ -369,8 +444,8 @@
 
 visualGetVisualType ::
     (MonadIO m, VisualK a) =>
-    a ->                                    -- _obj
-    m VisualType
+    a                                       -- _obj
+    -> m VisualType                         -- result
 visualGetVisualType _obj = liftIO $ do
     let _obj' = unsafeManagedPtrCastPtr _obj
     result <- gdk_visual_get_visual_type _obj'
@@ -378,11 +453,14 @@
     touchManagedPtr _obj
     return result'
 
+data VisualGetVisualTypeMethodInfo
+instance (signature ~ (m VisualType), MonadIO m, VisualK a) => MethodInfo VisualGetVisualTypeMethodInfo a signature where
+    overloadedMethod _ = visualGetVisualType
+
 -- method Visual::get_best
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "Gdk" "Visual"
 -- throws : False
 -- Skip return : False
@@ -393,7 +471,7 @@
 
 visualGetBest ::
     (MonadIO m) =>
-    m Visual
+    m Visual                                -- result
 visualGetBest  = liftIO $ do
     result <- gdk_visual_get_best
     checkUnexpectedReturnNULL "gdk_visual_get_best" result
@@ -404,7 +482,6 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TBasicType TInt32
 -- throws : False
 -- Skip return : False
@@ -415,7 +492,7 @@
 
 visualGetBestDepth ::
     (MonadIO m) =>
-    m Int32
+    m Int32                                 -- result
 visualGetBestDepth  = liftIO $ do
     result <- gdk_visual_get_best_depth
     return result
@@ -424,7 +501,6 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "Gdk" "VisualType"
 -- throws : False
 -- Skip return : False
@@ -435,7 +511,7 @@
 
 visualGetBestType ::
     (MonadIO m) =>
-    m VisualType
+    m VisualType                            -- result
 visualGetBestType  = liftIO $ do
     result <- gdk_visual_get_best_type
     let result' = (toEnum . fromIntegral) result
@@ -443,9 +519,8 @@
 
 -- method Visual::get_best_with_both
 -- method type : MemberFunction
--- Args : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Visual"
 -- throws : False
 -- Skip return : False
@@ -458,21 +533,20 @@
 
 visualGetBestWithBoth ::
     (MonadIO m) =>
-    Int32 ->                                -- depth
-    VisualType ->                           -- visual_type
-    m Visual
-visualGetBestWithBoth depth visual_type = liftIO $ do
-    let visual_type' = (fromIntegral . fromEnum) visual_type
-    result <- gdk_visual_get_best_with_both depth visual_type'
+    Int32                                   -- depth
+    -> VisualType                           -- visualType
+    -> m Visual                             -- result
+visualGetBestWithBoth depth visualType = liftIO $ do
+    let visualType' = (fromIntegral . fromEnum) visualType
+    result <- gdk_visual_get_best_with_both depth visualType'
     checkUnexpectedReturnNULL "gdk_visual_get_best_with_both" result
     result' <- (newObject Visual) result
     return result'
 
 -- method Visual::get_best_with_depth
 -- method type : MemberFunction
--- Args : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "depth", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Visual"
 -- throws : False
 -- Skip return : False
@@ -484,8 +558,8 @@
 
 visualGetBestWithDepth ::
     (MonadIO m) =>
-    Int32 ->                                -- depth
-    m Visual
+    Int32                                   -- depth
+    -> m Visual                             -- result
 visualGetBestWithDepth depth = liftIO $ do
     result <- gdk_visual_get_best_with_depth depth
     checkUnexpectedReturnNULL "gdk_visual_get_best_with_depth" result
@@ -494,9 +568,8 @@
 
 -- method Visual::get_best_with_type
 -- method type : MemberFunction
--- Args : [Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "visual_type", argType = TInterface "Gdk" "VisualType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Visual"
 -- throws : False
 -- Skip return : False
@@ -508,11 +581,11 @@
 
 visualGetBestWithType ::
     (MonadIO m) =>
-    VisualType ->                           -- visual_type
-    m Visual
-visualGetBestWithType visual_type = liftIO $ do
-    let visual_type' = (fromIntegral . fromEnum) visual_type
-    result <- gdk_visual_get_best_with_type visual_type'
+    VisualType                              -- visualType
+    -> m Visual                             -- result
+visualGetBestWithType visualType = liftIO $ do
+    let visualType' = (fromIntegral . fromEnum) visualType
+    result <- gdk_visual_get_best_with_type visualType'
     checkUnexpectedReturnNULL "gdk_visual_get_best_with_type" result
     result' <- (newObject Visual) result
     return result'
@@ -521,7 +594,6 @@
 -- method type : MemberFunction
 -- Args : []
 -- Lengths : []
--- hInArgs : []
 -- returnType : TInterface "Gdk" "Visual"
 -- throws : False
 -- Skip return : False
@@ -532,7 +604,7 @@
 
 visualGetSystem ::
     (MonadIO m) =>
-    m Visual
+    m Visual                                -- result
 visualGetSystem  = liftIO $ do
     result <- gdk_visual_get_system
     checkUnexpectedReturnNULL "gdk_visual_get_system" result
diff --git a/GI/Gdk/Objects/Visual.hs-boot b/GI/Gdk/Objects/Visual.hs-boot
--- a/GI/Gdk/Objects/Visual.hs-boot
+++ b/GI/Gdk/Objects/Visual.hs-boot
@@ -11,3 +11,12 @@
 instance GObject Visual where
 class GObject o => VisualK o
 instance (GObject o, IsDescendantOf Visual o) => VisualK o
+data VisualGetBitsPerRgbMethodInfo
+data VisualGetBluePixelDetailsMethodInfo
+data VisualGetByteOrderMethodInfo
+data VisualGetColormapSizeMethodInfo
+data VisualGetDepthMethodInfo
+data VisualGetGreenPixelDetailsMethodInfo
+data VisualGetRedPixelDetailsMethodInfo
+data VisualGetScreenMethodInfo
+data VisualGetVisualTypeMethodInfo
diff --git a/GI/Gdk/Objects/Window.hs b/GI/Gdk/Objects/Window.hs
--- a/GI/Gdk/Objects/Window.hs
+++ b/GI/Gdk/Objects/Window.hs
@@ -1,5367 +1,6151 @@
 
-{- |
-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.Gdk.Objects.Window
-    ( 
-
--- * Exported types
-    Window(..)                              ,
-    WindowK                                 ,
-    toWindow                                ,
-    noWindow                                ,
-
-
- -- * Methods
--- ** windowAtPointer
-    windowAtPointer                         ,
-
-
--- ** windowBeep
-    windowBeep                              ,
-
-
--- ** windowBeginMoveDrag
-    windowBeginMoveDrag                     ,
-
-
--- ** windowBeginMoveDragForDevice
-    windowBeginMoveDragForDevice            ,
-
-
--- ** windowBeginPaintRect
-    windowBeginPaintRect                    ,
-
-
--- ** windowBeginPaintRegion
-    windowBeginPaintRegion                  ,
-
-
--- ** windowBeginResizeDrag
-    windowBeginResizeDrag                   ,
-
-
--- ** windowBeginResizeDragForDevice
-    windowBeginResizeDragForDevice          ,
-
-
--- ** windowConfigureFinished
-    windowConfigureFinished                 ,
-
-
--- ** windowConstrainSize
-    windowConstrainSize                     ,
-
-
--- ** windowCoordsFromParent
-    windowCoordsFromParent                  ,
-
-
--- ** windowCoordsToParent
-    windowCoordsToParent                    ,
-
-
--- ** windowCreateGlContext
-    windowCreateGlContext                   ,
-
-
--- ** windowCreateSimilarImageSurface
-    windowCreateSimilarImageSurface         ,
-
-
--- ** windowCreateSimilarSurface
-    windowCreateSimilarSurface              ,
-
-
--- ** windowDeiconify
-    windowDeiconify                         ,
-
-
--- ** windowDestroy
-    windowDestroy                           ,
-
-
--- ** windowDestroyNotify
-    windowDestroyNotify                     ,
-
-
--- ** windowEnableSynchronizedConfigure
-    windowEnableSynchronizedConfigure       ,
-
-
--- ** windowEndPaint
-    windowEndPaint                          ,
-
-
--- ** windowEnsureNative
-    windowEnsureNative                      ,
-
-
--- ** windowFlush
-    windowFlush                             ,
-
-
--- ** windowFocus
-    windowFocus                             ,
-
-
--- ** windowFreezeToplevelUpdatesLibgtkOnly
-    windowFreezeToplevelUpdatesLibgtkOnly   ,
-
-
--- ** windowFreezeUpdates
-    windowFreezeUpdates                     ,
-
-
--- ** windowFullscreen
-    windowFullscreen                        ,
-
-
--- ** windowFullscreenOnMonitor
-    windowFullscreenOnMonitor               ,
-
-
--- ** windowGeometryChanged
-    windowGeometryChanged                   ,
-
-
--- ** windowGetAcceptFocus
-    windowGetAcceptFocus                    ,
-
-
--- ** windowGetBackgroundPattern
-    windowGetBackgroundPattern              ,
-
-
--- ** windowGetChildren
-    windowGetChildren                       ,
-
-
--- ** windowGetChildrenWithUserData
-    windowGetChildrenWithUserData           ,
-
-
--- ** windowGetClipRegion
-    windowGetClipRegion                     ,
-
-
--- ** windowGetComposited
-    windowGetComposited                     ,
-
-
--- ** windowGetCursor
-    windowGetCursor                         ,
-
-
--- ** windowGetDecorations
-    windowGetDecorations                    ,
-
-
--- ** windowGetDeviceCursor
-    windowGetDeviceCursor                   ,
-
-
--- ** windowGetDeviceEvents
-    windowGetDeviceEvents                   ,
-
-
--- ** windowGetDevicePosition
-    windowGetDevicePosition                 ,
-
-
--- ** windowGetDevicePositionDouble
-    windowGetDevicePositionDouble           ,
-
-
--- ** windowGetDisplay
-    windowGetDisplay                        ,
-
-
--- ** windowGetDragProtocol
-    windowGetDragProtocol                   ,
-
-
--- ** windowGetEffectiveParent
-    windowGetEffectiveParent                ,
-
-
--- ** windowGetEffectiveToplevel
-    windowGetEffectiveToplevel              ,
-
-
--- ** windowGetEventCompression
-    windowGetEventCompression               ,
-
-
--- ** windowGetEvents
-    windowGetEvents                         ,
-
-
--- ** windowGetFocusOnMap
-    windowGetFocusOnMap                     ,
-
-
--- ** windowGetFrameClock
-    windowGetFrameClock                     ,
-
-
--- ** windowGetFrameExtents
-    windowGetFrameExtents                   ,
-
-
--- ** windowGetFullscreenMode
-    windowGetFullscreenMode                 ,
-
-
--- ** windowGetGeometry
-    windowGetGeometry                       ,
-
-
--- ** windowGetGroup
-    windowGetGroup                          ,
-
-
--- ** windowGetHeight
-    windowGetHeight                         ,
-
-
--- ** windowGetModalHint
-    windowGetModalHint                      ,
-
-
--- ** windowGetOrigin
-    windowGetOrigin                         ,
-
-
--- ** windowGetParent
-    windowGetParent                         ,
-
-
--- ** windowGetPassThrough
-    windowGetPassThrough                    ,
-
-
--- ** windowGetPointer
-    windowGetPointer                        ,
-
-
--- ** windowGetPosition
-    windowGetPosition                       ,
-
-
--- ** windowGetRootCoords
-    windowGetRootCoords                     ,
-
-
--- ** windowGetRootOrigin
-    windowGetRootOrigin                     ,
-
-
--- ** windowGetScaleFactor
-    windowGetScaleFactor                    ,
-
-
--- ** windowGetScreen
-    windowGetScreen                         ,
-
-
--- ** windowGetSourceEvents
-    windowGetSourceEvents                   ,
-
-
--- ** windowGetState
-    windowGetState                          ,
-
-
--- ** windowGetSupportMultidevice
-    windowGetSupportMultidevice             ,
-
-
--- ** windowGetToplevel
-    windowGetToplevel                       ,
-
-
--- ** windowGetTypeHint
-    windowGetTypeHint                       ,
-
-
--- ** windowGetUpdateArea
-    windowGetUpdateArea                     ,
-
-
--- ** windowGetUserData
-    windowGetUserData                       ,
-
-
--- ** windowGetVisibleRegion
-    windowGetVisibleRegion                  ,
-
-
--- ** windowGetVisual
-    windowGetVisual                         ,
-
-
--- ** windowGetWidth
-    windowGetWidth                          ,
-
-
--- ** windowGetWindowType
-    windowGetWindowType                     ,
-
-
--- ** windowHasNative
-    windowHasNative                         ,
-
-
--- ** windowHide
-    windowHide                              ,
-
-
--- ** windowIconify
-    windowIconify                           ,
-
-
--- ** windowInputShapeCombineRegion
-    windowInputShapeCombineRegion           ,
-
-
--- ** windowInvalidateMaybeRecurse
-    windowInvalidateMaybeRecurse            ,
-
-
--- ** windowInvalidateRect
-    windowInvalidateRect                    ,
-
-
--- ** windowInvalidateRegion
-    windowInvalidateRegion                  ,
-
-
--- ** windowIsDestroyed
-    windowIsDestroyed                       ,
-
-
--- ** windowIsInputOnly
-    windowIsInputOnly                       ,
-
-
--- ** windowIsShaped
-    windowIsShaped                          ,
-
-
--- ** windowIsViewable
-    windowIsViewable                        ,
-
-
--- ** windowIsVisible
-    windowIsVisible                         ,
-
-
--- ** windowLower
-    windowLower                             ,
-
-
--- ** windowMarkPaintFromClip
-    windowMarkPaintFromClip                 ,
-
-
--- ** windowMaximize
-    windowMaximize                          ,
-
-
--- ** windowMergeChildInputShapes
-    windowMergeChildInputShapes             ,
-
-
--- ** windowMergeChildShapes
-    windowMergeChildShapes                  ,
-
-
--- ** windowMove
-    windowMove                              ,
-
-
--- ** windowMoveRegion
-    windowMoveRegion                        ,
-
-
--- ** windowMoveResize
-    windowMoveResize                        ,
-
-
--- ** windowNew
-    windowNew                               ,
-
-
--- ** windowPeekChildren
-    windowPeekChildren                      ,
-
-
--- ** windowProcessAllUpdates
-    windowProcessAllUpdates                 ,
-
-
--- ** windowProcessUpdates
-    windowProcessUpdates                    ,
-
-
--- ** windowRaise
-    windowRaise                             ,
-
-
--- ** windowRegisterDnd
-    windowRegisterDnd                       ,
-
-
--- ** windowReparent
-    windowReparent                          ,
-
-
--- ** windowResize
-    windowResize                            ,
-
-
--- ** windowRestack
-    windowRestack                           ,
-
-
--- ** windowScroll
-    windowScroll                            ,
-
-
--- ** windowSetAcceptFocus
-    windowSetAcceptFocus                    ,
-
-
--- ** windowSetBackground
-    windowSetBackground                     ,
-
-
--- ** windowSetBackgroundPattern
-    windowSetBackgroundPattern              ,
-
-
--- ** windowSetBackgroundRgba
-    windowSetBackgroundRgba                 ,
-
-
--- ** windowSetChildInputShapes
-    windowSetChildInputShapes               ,
-
-
--- ** windowSetChildShapes
-    windowSetChildShapes                    ,
-
-
--- ** windowSetComposited
-    windowSetComposited                     ,
-
-
--- ** windowSetCursor
-    windowSetCursor                         ,
-
-
--- ** windowSetDebugUpdates
-    windowSetDebugUpdates                   ,
-
-
--- ** windowSetDecorations
-    windowSetDecorations                    ,
-
-
--- ** windowSetDeviceCursor
-    windowSetDeviceCursor                   ,
-
-
--- ** windowSetDeviceEvents
-    windowSetDeviceEvents                   ,
-
-
--- ** windowSetEventCompression
-    windowSetEventCompression               ,
-
-
--- ** windowSetEvents
-    windowSetEvents                         ,
-
-
--- ** windowSetFocusOnMap
-    windowSetFocusOnMap                     ,
-
-
--- ** windowSetFullscreenMode
-    windowSetFullscreenMode                 ,
-
-
--- ** windowSetFunctions
-    windowSetFunctions                      ,
-
-
--- ** windowSetGeometryHints
-    windowSetGeometryHints                  ,
-
-
--- ** windowSetGroup
-    windowSetGroup                          ,
-
-
--- ** windowSetIconList
-    windowSetIconList                       ,
-
-
--- ** windowSetIconName
-    windowSetIconName                       ,
-
-
--- ** windowSetKeepAbove
-    windowSetKeepAbove                      ,
-
-
--- ** windowSetKeepBelow
-    windowSetKeepBelow                      ,
-
-
--- ** windowSetModalHint
-    windowSetModalHint                      ,
-
-
--- ** windowSetOpacity
-    windowSetOpacity                        ,
-
-
--- ** windowSetOpaqueRegion
-    windowSetOpaqueRegion                   ,
-
-
--- ** windowSetOverrideRedirect
-    windowSetOverrideRedirect               ,
-
-
--- ** windowSetPassThrough
-    windowSetPassThrough                    ,
-
-
--- ** windowSetRole
-    windowSetRole                           ,
-
-
--- ** windowSetShadowWidth
-    windowSetShadowWidth                    ,
-
-
--- ** windowSetSkipPagerHint
-    windowSetSkipPagerHint                  ,
-
-
--- ** windowSetSkipTaskbarHint
-    windowSetSkipTaskbarHint                ,
-
-
--- ** windowSetSourceEvents
-    windowSetSourceEvents                   ,
-
-
--- ** windowSetStartupId
-    windowSetStartupId                      ,
-
-
--- ** windowSetStaticGravities
-    windowSetStaticGravities                ,
-
-
--- ** windowSetSupportMultidevice
-    windowSetSupportMultidevice             ,
-
-
--- ** windowSetTitle
-    windowSetTitle                          ,
-
-
--- ** windowSetTransientFor
-    windowSetTransientFor                   ,
-
-
--- ** windowSetTypeHint
-    windowSetTypeHint                       ,
-
-
--- ** windowSetUrgencyHint
-    windowSetUrgencyHint                    ,
-
-
--- ** windowSetUserData
-    windowSetUserData                       ,
-
-
--- ** windowShapeCombineRegion
-    windowShapeCombineRegion                ,
-
-
--- ** windowShow
-    windowShow                              ,
-
-
--- ** windowShowUnraised
-    windowShowUnraised                      ,
-
-
--- ** windowShowWindowMenu
-    windowShowWindowMenu                    ,
-
-
--- ** windowStick
-    windowStick                             ,
-
-
--- ** windowThawToplevelUpdatesLibgtkOnly
-    windowThawToplevelUpdatesLibgtkOnly     ,
-
-
--- ** windowThawUpdates
-    windowThawUpdates                       ,
-
-
--- ** windowUnfullscreen
-    windowUnfullscreen                      ,
-
-
--- ** windowUnmaximize
-    windowUnmaximize                        ,
-
-
--- ** windowUnstick
-    windowUnstick                           ,
-
-
--- ** windowWithdraw
-    windowWithdraw                          ,
-
-
-
-
- -- * Properties
--- ** Cursor
-    WindowCursorPropertyInfo                ,
-    constructWindowCursor                   ,
-    getWindowCursor                         ,
-    setWindowCursor                         ,
-
-
-
-
- -- * Signals
--- ** CreateSurface
-    WindowCreateSurfaceCallback             ,
-    WindowCreateSurfaceCallbackC            ,
-    WindowCreateSurfaceSignalInfo           ,
-    afterWindowCreateSurface                ,
-    mkWindowCreateSurfaceCallback           ,
-    noWindowCreateSurfaceCallback           ,
-    onWindowCreateSurface                   ,
-    windowCreateSurfaceCallbackWrapper      ,
-    windowCreateSurfaceClosure              ,
-
-
--- ** FromEmbedder
-    WindowFromEmbedderCallback              ,
-    WindowFromEmbedderCallbackC             ,
-    WindowFromEmbedderSignalInfo            ,
-    afterWindowFromEmbedder                 ,
-    mkWindowFromEmbedderCallback            ,
-    noWindowFromEmbedderCallback            ,
-    onWindowFromEmbedder                    ,
-    windowFromEmbedderCallbackWrapper       ,
-    windowFromEmbedderClosure               ,
-
-
--- ** PickEmbeddedChild
-    WindowPickEmbeddedChildCallback         ,
-    WindowPickEmbeddedChildCallbackC        ,
-    WindowPickEmbeddedChildSignalInfo       ,
-    afterWindowPickEmbeddedChild            ,
-    mkWindowPickEmbeddedChildCallback       ,
-    noWindowPickEmbeddedChildCallback       ,
-    onWindowPickEmbeddedChild               ,
-    windowPickEmbeddedChildCallbackWrapper  ,
-    windowPickEmbeddedChildClosure          ,
-
-
--- ** ToEmbedder
-    WindowToEmbedderCallback                ,
-    WindowToEmbedderCallbackC               ,
-    WindowToEmbedderSignalInfo              ,
-    afterWindowToEmbedder                   ,
-    mkWindowToEmbedderCallback              ,
-    noWindowToEmbedderCallback              ,
-    onWindowToEmbedder                      ,
-    windowToEmbedderCallbackWrapper         ,
-    windowToEmbedderClosure                 ,
-
-
-
-
-    ) 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.Gdk.Types
-import GI.Gdk.Callbacks
-import qualified GI.GObject as GObject
-import qualified GI.GdkPixbuf as GdkPixbuf
-import qualified GI.Cairo as Cairo
-
-newtype Window = Window (ForeignPtr Window)
-foreign import ccall "gdk_window_get_type"
-    c_gdk_window_get_type :: IO GType
-
-type instance ParentTypes Window = WindowParentTypes
-type WindowParentTypes = '[GObject.Object]
-
-instance GObject Window where
-    gobjectIsInitiallyUnowned _ = False
-    gobjectType _ = c_gdk_window_get_type
-    
-
-class GObject o => WindowK o
-instance (GObject o, IsDescendantOf Window o) => WindowK o
-
-toWindow :: WindowK o => o -> IO Window
-toWindow = unsafeCastTo Window
-
-noWindow :: Maybe Window
-noWindow = Nothing
-
--- signal Window::create-surface
-type WindowCreateSurfaceCallback =
-    Int32 ->
-    Int32 ->
-    IO Cairo.Surface
-
-noWindowCreateSurfaceCallback :: Maybe WindowCreateSurfaceCallback
-noWindowCreateSurfaceCallback = Nothing
-
-type WindowCreateSurfaceCallbackC =
-    Ptr () ->                               -- object
-    Int32 ->
-    Int32 ->
-    Ptr () ->                               -- user_data
-    IO (Ptr Cairo.Surface)
-
-foreign import ccall "wrapper"
-    mkWindowCreateSurfaceCallback :: WindowCreateSurfaceCallbackC -> IO (FunPtr WindowCreateSurfaceCallbackC)
-
-windowCreateSurfaceClosure :: WindowCreateSurfaceCallback -> IO Closure
-windowCreateSurfaceClosure cb = newCClosure =<< mkWindowCreateSurfaceCallback wrapped
-    where wrapped = windowCreateSurfaceCallbackWrapper cb
-
-windowCreateSurfaceCallbackWrapper ::
-    WindowCreateSurfaceCallback ->
-    Ptr () ->
-    Int32 ->
-    Int32 ->
-    Ptr () ->
-    IO (Ptr Cairo.Surface)
-windowCreateSurfaceCallbackWrapper _cb _ width height _ = do
-    result <- _cb  width height
-    result' <- copyBoxed result
-    return result'
-
-onWindowCreateSurface :: (GObject a, MonadIO m) => a -> WindowCreateSurfaceCallback -> m SignalHandlerId
-onWindowCreateSurface obj cb = liftIO $ connectWindowCreateSurface obj cb SignalConnectBefore
-afterWindowCreateSurface :: (GObject a, MonadIO m) => a -> WindowCreateSurfaceCallback -> m SignalHandlerId
-afterWindowCreateSurface obj cb = connectWindowCreateSurface obj cb SignalConnectAfter
-
-connectWindowCreateSurface :: (GObject a, MonadIO m) =>
-                              a -> WindowCreateSurfaceCallback -> SignalConnectMode -> m SignalHandlerId
-connectWindowCreateSurface obj cb after = liftIO $ do
-    cb' <- mkWindowCreateSurfaceCallback (windowCreateSurfaceCallbackWrapper cb)
-    connectSignalFunPtr obj "create-surface" cb' after
-
--- signal Window::from-embedder
-type WindowFromEmbedderCallback =
-    Double ->
-    Double ->
-    IO (Double,Double)
-
-noWindowFromEmbedderCallback :: Maybe WindowFromEmbedderCallback
-noWindowFromEmbedderCallback = Nothing
-
-type WindowFromEmbedderCallbackC =
-    Ptr () ->                               -- object
-    CDouble ->
-    CDouble ->
-    Ptr CDouble ->
-    Ptr CDouble ->
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkWindowFromEmbedderCallback :: WindowFromEmbedderCallbackC -> IO (FunPtr WindowFromEmbedderCallbackC)
-
-windowFromEmbedderClosure :: WindowFromEmbedderCallback -> IO Closure
-windowFromEmbedderClosure cb = newCClosure =<< mkWindowFromEmbedderCallback wrapped
-    where wrapped = windowFromEmbedderCallbackWrapper cb
-
-windowFromEmbedderCallbackWrapper ::
-    WindowFromEmbedderCallback ->
-    Ptr () ->
-    CDouble ->
-    CDouble ->
-    Ptr CDouble ->
-    Ptr CDouble ->
-    Ptr () ->
-    IO ()
-windowFromEmbedderCallbackWrapper _cb _ embedder_x embedder_y offscreen_x offscreen_y _ = do
-    let embedder_x' = realToFrac embedder_x
-    let embedder_y' = realToFrac embedder_y
-    (outoffscreen_x, outoffscreen_y) <- _cb  embedder_x' embedder_y'
-    let outoffscreen_x' = realToFrac outoffscreen_x
-    poke offscreen_x outoffscreen_x'
-    let outoffscreen_y' = realToFrac outoffscreen_y
-    poke offscreen_y outoffscreen_y'
-
-onWindowFromEmbedder :: (GObject a, MonadIO m) => a -> WindowFromEmbedderCallback -> m SignalHandlerId
-onWindowFromEmbedder obj cb = liftIO $ connectWindowFromEmbedder obj cb SignalConnectBefore
-afterWindowFromEmbedder :: (GObject a, MonadIO m) => a -> WindowFromEmbedderCallback -> m SignalHandlerId
-afterWindowFromEmbedder obj cb = connectWindowFromEmbedder obj cb SignalConnectAfter
-
-connectWindowFromEmbedder :: (GObject a, MonadIO m) =>
-                             a -> WindowFromEmbedderCallback -> SignalConnectMode -> m SignalHandlerId
-connectWindowFromEmbedder obj cb after = liftIO $ do
-    cb' <- mkWindowFromEmbedderCallback (windowFromEmbedderCallbackWrapper cb)
-    connectSignalFunPtr obj "from-embedder" cb' after
-
--- signal Window::pick-embedded-child
-type WindowPickEmbeddedChildCallback =
-    Double ->
-    Double ->
-    IO Window
-
-noWindowPickEmbeddedChildCallback :: Maybe WindowPickEmbeddedChildCallback
-noWindowPickEmbeddedChildCallback = Nothing
-
-type WindowPickEmbeddedChildCallbackC =
-    Ptr () ->                               -- object
-    CDouble ->
-    CDouble ->
-    Ptr () ->                               -- user_data
-    IO (Ptr Window)
-
-foreign import ccall "wrapper"
-    mkWindowPickEmbeddedChildCallback :: WindowPickEmbeddedChildCallbackC -> IO (FunPtr WindowPickEmbeddedChildCallbackC)
-
-windowPickEmbeddedChildClosure :: WindowPickEmbeddedChildCallback -> IO Closure
-windowPickEmbeddedChildClosure cb = newCClosure =<< mkWindowPickEmbeddedChildCallback wrapped
-    where wrapped = windowPickEmbeddedChildCallbackWrapper cb
-
-windowPickEmbeddedChildCallbackWrapper ::
-    WindowPickEmbeddedChildCallback ->
-    Ptr () ->
-    CDouble ->
-    CDouble ->
-    Ptr () ->
-    IO (Ptr Window)
-windowPickEmbeddedChildCallbackWrapper _cb _ x y _ = do
-    let x' = realToFrac x
-    let y' = realToFrac y
-    result <- _cb  x' y'
-    let result' = unsafeManagedPtrCastPtr result
-    return result'
-
-onWindowPickEmbeddedChild :: (GObject a, MonadIO m) => a -> WindowPickEmbeddedChildCallback -> m SignalHandlerId
-onWindowPickEmbeddedChild obj cb = liftIO $ connectWindowPickEmbeddedChild obj cb SignalConnectBefore
-afterWindowPickEmbeddedChild :: (GObject a, MonadIO m) => a -> WindowPickEmbeddedChildCallback -> m SignalHandlerId
-afterWindowPickEmbeddedChild obj cb = connectWindowPickEmbeddedChild obj cb SignalConnectAfter
-
-connectWindowPickEmbeddedChild :: (GObject a, MonadIO m) =>
-                                  a -> WindowPickEmbeddedChildCallback -> SignalConnectMode -> m SignalHandlerId
-connectWindowPickEmbeddedChild obj cb after = liftIO $ do
-    cb' <- mkWindowPickEmbeddedChildCallback (windowPickEmbeddedChildCallbackWrapper cb)
-    connectSignalFunPtr obj "pick-embedded-child" cb' after
-
--- signal Window::to-embedder
-type WindowToEmbedderCallback =
-    Double ->
-    Double ->
-    IO (Double,Double)
-
-noWindowToEmbedderCallback :: Maybe WindowToEmbedderCallback
-noWindowToEmbedderCallback = Nothing
-
-type WindowToEmbedderCallbackC =
-    Ptr () ->                               -- object
-    CDouble ->
-    CDouble ->
-    Ptr CDouble ->
-    Ptr CDouble ->
-    Ptr () ->                               -- user_data
-    IO ()
-
-foreign import ccall "wrapper"
-    mkWindowToEmbedderCallback :: WindowToEmbedderCallbackC -> IO (FunPtr WindowToEmbedderCallbackC)
-
-windowToEmbedderClosure :: WindowToEmbedderCallback -> IO Closure
-windowToEmbedderClosure cb = newCClosure =<< mkWindowToEmbedderCallback wrapped
-    where wrapped = windowToEmbedderCallbackWrapper cb
-
-windowToEmbedderCallbackWrapper ::
-    WindowToEmbedderCallback ->
-    Ptr () ->
-    CDouble ->
-    CDouble ->
-    Ptr CDouble ->
-    Ptr CDouble ->
-    Ptr () ->
-    IO ()
-windowToEmbedderCallbackWrapper _cb _ offscreen_x offscreen_y embedder_x embedder_y _ = do
-    let offscreen_x' = realToFrac offscreen_x
-    let offscreen_y' = realToFrac offscreen_y
-    (outembedder_x, outembedder_y) <- _cb  offscreen_x' offscreen_y'
-    let outembedder_x' = realToFrac outembedder_x
-    poke embedder_x outembedder_x'
-    let outembedder_y' = realToFrac outembedder_y
-    poke embedder_y outembedder_y'
-
-onWindowToEmbedder :: (GObject a, MonadIO m) => a -> WindowToEmbedderCallback -> m SignalHandlerId
-onWindowToEmbedder obj cb = liftIO $ connectWindowToEmbedder obj cb SignalConnectBefore
-afterWindowToEmbedder :: (GObject a, MonadIO m) => a -> WindowToEmbedderCallback -> m SignalHandlerId
-afterWindowToEmbedder obj cb = connectWindowToEmbedder obj cb SignalConnectAfter
-
-connectWindowToEmbedder :: (GObject a, MonadIO m) =>
-                           a -> WindowToEmbedderCallback -> SignalConnectMode -> m SignalHandlerId
-connectWindowToEmbedder obj cb after = liftIO $ do
-    cb' <- mkWindowToEmbedderCallback (windowToEmbedderCallbackWrapper cb)
-    connectSignalFunPtr obj "to-embedder" cb' after
-
--- VVV Prop "cursor"
-   -- Type: TInterface "Gdk" "Cursor"
-   -- Flags: [PropertyReadable,PropertyWritable]
-
-getWindowCursor :: (MonadIO m, WindowK o) => o -> m Cursor
-getWindowCursor obj = liftIO $ getObjectPropertyObject obj "cursor" Cursor
-
-setWindowCursor :: (MonadIO m, WindowK o, CursorK a) => o -> a -> m ()
-setWindowCursor obj val = liftIO $ setObjectPropertyObject obj "cursor" val
-
-constructWindowCursor :: (CursorK a) => a -> IO ([Char], GValue)
-constructWindowCursor val = constructObjectPropertyObject "cursor" val
-
-data WindowCursorPropertyInfo
-instance AttrInfo WindowCursorPropertyInfo where
-    type AttrAllowedOps WindowCursorPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
-    type AttrSetTypeConstraint WindowCursorPropertyInfo = CursorK
-    type AttrBaseTypeConstraint WindowCursorPropertyInfo = WindowK
-    type AttrGetType WindowCursorPropertyInfo = Cursor
-    type AttrLabel WindowCursorPropertyInfo = "Window::cursor"
-    attrGet _ = getWindowCursor
-    attrSet _ = setWindowCursor
-    attrConstruct _ = constructWindowCursor
-
-type instance AttributeList Window = WindowAttributeList
-type WindowAttributeList = ('[ '("cursor", WindowCursorPropertyInfo)] :: [(Symbol, *)])
-
-data WindowCreateSurfaceSignalInfo
-instance SignalInfo WindowCreateSurfaceSignalInfo where
-    type HaskellCallbackType WindowCreateSurfaceSignalInfo = WindowCreateSurfaceCallback
-    connectSignal _ = connectWindowCreateSurface
-
-data WindowFromEmbedderSignalInfo
-instance SignalInfo WindowFromEmbedderSignalInfo where
-    type HaskellCallbackType WindowFromEmbedderSignalInfo = WindowFromEmbedderCallback
-    connectSignal _ = connectWindowFromEmbedder
-
-data WindowPickEmbeddedChildSignalInfo
-instance SignalInfo WindowPickEmbeddedChildSignalInfo where
-    type HaskellCallbackType WindowPickEmbeddedChildSignalInfo = WindowPickEmbeddedChildCallback
-    connectSignal _ = connectWindowPickEmbeddedChild
-
-data WindowToEmbedderSignalInfo
-instance SignalInfo WindowToEmbedderSignalInfo where
-    type HaskellCallbackType WindowToEmbedderSignalInfo = WindowToEmbedderCallback
-    connectSignal _ = connectWindowToEmbedder
-
-type instance SignalList Window = WindowSignalList
-type WindowSignalList = ('[ '("create-surface", WindowCreateSurfaceSignalInfo), '("from-embedder", WindowFromEmbedderSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("pick-embedded-child", WindowPickEmbeddedChildSignalInfo), '("to-embedder", WindowToEmbedderSignalInfo), '("notify::[property]", GObjectNotifySignalInfo)] :: [(Symbol, *)])
-
--- method Window::new
--- method type : Constructor
--- Args : [Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes", argType = TInterface "Gdk" "WindowAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes_mask", argType = TInterface "Gdk" "WindowAttributesType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes", argType = TInterface "Gdk" "WindowAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "attributes_mask", argType = TInterface "Gdk" "WindowAttributesType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_new" gdk_window_new :: 
-    Ptr Window ->                           -- parent : TInterface "Gdk" "Window"
-    Ptr WindowAttr ->                       -- attributes : TInterface "Gdk" "WindowAttr"
-    CUInt ->                                -- attributes_mask : TInterface "Gdk" "WindowAttributesType"
-    IO (Ptr Window)
-
-
-windowNew ::
-    (MonadIO m, WindowK a) =>
-    Maybe (a) ->                            -- parent
-    WindowAttr ->                           -- attributes
-    [WindowAttributesType] ->               -- attributes_mask
-    m Window
-windowNew parent attributes attributes_mask = liftIO $ do
-    maybeParent <- case parent of
-        Nothing -> return nullPtr
-        Just jParent -> do
-            let jParent' = unsafeManagedPtrCastPtr jParent
-            return jParent'
-    let attributes' = unsafeManagedPtrGetPtr attributes
-    let attributes_mask' = gflagsToWord attributes_mask
-    result <- gdk_window_new maybeParent attributes' attributes_mask'
-    checkUnexpectedReturnNULL "gdk_window_new" result
-    result' <- (wrapObject Window) result
-    whenJust parent touchManagedPtr
-    touchManagedPtr attributes
-    return result'
-
--- method Window::beep
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_beep" gdk_window_beep :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowBeep ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowBeep _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_beep _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::begin_move_drag
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", 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 "gdk_window_begin_move_drag" gdk_window_begin_move_drag :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- button : TBasicType TInt32
-    Int32 ->                                -- root_x : TBasicType TInt32
-    Int32 ->                                -- root_y : TBasicType TInt32
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-windowBeginMoveDrag ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- button
-    Int32 ->                                -- root_x
-    Int32 ->                                -- root_y
-    Word32 ->                               -- timestamp
-    m ()
-windowBeginMoveDrag _obj button root_x root_y timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_begin_move_drag _obj' button root_x root_y timestamp
-    touchManagedPtr _obj
-    return ()
-
--- method Window::begin_move_drag_for_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", 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 "gdk_window_begin_move_drag_for_device" gdk_window_begin_move_drag_for_device :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Int32 ->                                -- button : TBasicType TInt32
-    Int32 ->                                -- root_x : TBasicType TInt32
-    Int32 ->                                -- root_y : TBasicType TInt32
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-windowBeginMoveDragForDevice ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    Int32 ->                                -- button
-    Int32 ->                                -- root_x
-    Int32 ->                                -- root_y
-    Word32 ->                               -- timestamp
-    m ()
-windowBeginMoveDragForDevice _obj device button root_x root_y timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    gdk_window_begin_move_drag_for_device _obj' device' button root_x root_y timestamp
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return ()
-
--- method Window::begin_paint_rect
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rectangle", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_begin_paint_rect" gdk_window_begin_paint_rect :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Rectangle ->                        -- rectangle : TInterface "Gdk" "Rectangle"
-    IO ()
-
-
-windowBeginPaintRect ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Rectangle ->                            -- rectangle
-    m ()
-windowBeginPaintRect _obj rectangle = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let rectangle' = unsafeManagedPtrGetPtr rectangle
-    gdk_window_begin_paint_rect _obj' rectangle'
-    touchManagedPtr _obj
-    touchManagedPtr rectangle
-    return ()
-
--- method Window::begin_paint_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_begin_paint_region" gdk_window_begin_paint_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    IO ()
-
-
-windowBeginPaintRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Region ->                         -- region
-    m ()
-windowBeginPaintRegion _obj region = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let region' = unsafeManagedPtrGetPtr region
-    gdk_window_begin_paint_region _obj' region'
-    touchManagedPtr _obj
-    touchManagedPtr region
-    return ()
-
--- method Window::begin_resize_drag
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", 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 "gdk_window_begin_resize_drag" gdk_window_begin_resize_drag :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- edge : TInterface "Gdk" "WindowEdge"
-    Int32 ->                                -- button : TBasicType TInt32
-    Int32 ->                                -- root_x : TBasicType TInt32
-    Int32 ->                                -- root_y : TBasicType TInt32
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-windowBeginResizeDrag ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    WindowEdge ->                           -- edge
-    Int32 ->                                -- button
-    Int32 ->                                -- root_x
-    Int32 ->                                -- root_y
-    Word32 ->                               -- timestamp
-    m ()
-windowBeginResizeDrag _obj edge button root_x root_y timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let edge' = (fromIntegral . fromEnum) edge
-    gdk_window_begin_resize_drag _obj' edge' button root_x root_y timestamp
-    touchManagedPtr _obj
-    return ()
-
--- method Window::begin_resize_drag_for_device
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", 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 "gdk_window_begin_resize_drag_for_device" gdk_window_begin_resize_drag_for_device :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- edge : TInterface "Gdk" "WindowEdge"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Int32 ->                                -- button : TBasicType TInt32
-    Int32 ->                                -- root_x : TBasicType TInt32
-    Int32 ->                                -- root_y : TBasicType TInt32
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-windowBeginResizeDragForDevice ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    WindowEdge ->                           -- edge
-    b ->                                    -- device
-    Int32 ->                                -- button
-    Int32 ->                                -- root_x
-    Int32 ->                                -- root_y
-    Word32 ->                               -- timestamp
-    m ()
-windowBeginResizeDragForDevice _obj edge device button root_x root_y timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let edge' = (fromIntegral . fromEnum) edge
-    let device' = unsafeManagedPtrCastPtr device
-    gdk_window_begin_resize_drag_for_device _obj' edge' device' button root_x root_y timestamp
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return ()
-
--- method Window::configure_finished
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_configure_finished" gdk_window_configure_finished :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-{-# DEPRECATED windowConfigureFinished ["(Since version 3.8)","this function is no longer needed"]#-}
-windowConfigureFinished ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowConfigureFinished _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_configure_finished _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::coords_from_parent
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_coords_from_parent" gdk_window_coords_from_parent :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CDouble ->                              -- parent_x : TBasicType TDouble
-    CDouble ->                              -- parent_y : TBasicType TDouble
-    Ptr CDouble ->                          -- x : TBasicType TDouble
-    Ptr CDouble ->                          -- y : TBasicType TDouble
-    IO ()
-
-
-windowCoordsFromParent ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Double ->                               -- parent_x
-    Double ->                               -- parent_y
-    m (Double,Double)
-windowCoordsFromParent _obj parent_x parent_y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let parent_x' = realToFrac parent_x
-    let parent_y' = realToFrac parent_y
-    x <- allocMem :: IO (Ptr CDouble)
-    y <- allocMem :: IO (Ptr CDouble)
-    gdk_window_coords_from_parent _obj' parent_x' parent_y' x y
-    x' <- peek x
-    let x'' = realToFrac x'
-    y' <- peek y
-    let y'' = realToFrac y'
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    return (x'', y'')
-
--- method Window::coords_to_parent
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "parent_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_coords_to_parent" gdk_window_coords_to_parent :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CDouble ->                              -- x : TBasicType TDouble
-    CDouble ->                              -- y : TBasicType TDouble
-    Ptr CDouble ->                          -- parent_x : TBasicType TDouble
-    Ptr CDouble ->                          -- parent_y : TBasicType TDouble
-    IO ()
-
-
-windowCoordsToParent ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Double ->                               -- x
-    Double ->                               -- y
-    m (Double,Double)
-windowCoordsToParent _obj x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let x' = realToFrac x
-    let y' = realToFrac y
-    parent_x <- allocMem :: IO (Ptr CDouble)
-    parent_y <- allocMem :: IO (Ptr CDouble)
-    gdk_window_coords_to_parent _obj' x' y' parent_x parent_y
-    parent_x' <- peek parent_x
-    let parent_x'' = realToFrac parent_x'
-    parent_y' <- peek parent_y
-    let parent_y'' = realToFrac parent_y'
-    touchManagedPtr _obj
-    freeMem parent_x
-    freeMem parent_y
-    return (parent_x'', parent_y'')
-
--- method Window::create_gl_context
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "GLContext"
--- throws : True
--- Skip return : False
-
-foreign import ccall "gdk_window_create_gl_context" gdk_window_create_gl_context :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr (Ptr GError) ->                     -- error
-    IO (Ptr GLContext)
-
-
-windowCreateGlContext ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m GLContext
-windowCreateGlContext _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    onException (do
-        result <- propagateGError $ gdk_window_create_gl_context _obj'
-        checkUnexpectedReturnNULL "gdk_window_create_gl_context" result
-        result' <- (wrapObject GLContext) result
-        touchManagedPtr _obj
-        return result'
-     ) (do
-        return ()
-     )
-
--- method Window::create_similar_image_surface
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Surface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_create_similar_image_surface" gdk_window_create_similar_image_surface :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- format : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    Int32 ->                                -- scale : TBasicType TInt32
-    IO (Ptr Cairo.Surface)
-
-
-windowCreateSimilarImageSurface ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- format
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    Int32 ->                                -- scale
-    m Cairo.Surface
-windowCreateSimilarImageSurface _obj format width height scale = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_create_similar_image_surface _obj' format width height scale
-    checkUnexpectedReturnNULL "gdk_window_create_similar_image_surface" result
-    result' <- (wrapBoxed Cairo.Surface) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::create_similar_surface
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content", argType = TInterface "cairo" "Content", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "content", argType = TInterface "cairo" "Content", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Surface"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_create_similar_surface" gdk_window_create_similar_surface :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- content : TInterface "cairo" "Content"
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO (Ptr Cairo.Surface)
-
-
-windowCreateSimilarSurface ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Content ->                        -- content
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m Cairo.Surface
-windowCreateSimilarSurface _obj content width height = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let content' = (fromIntegral . fromEnum) content
-    result <- gdk_window_create_similar_surface _obj' content' width height
-    checkUnexpectedReturnNULL "gdk_window_create_similar_surface" result
-    result' <- (wrapBoxed Cairo.Surface) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::deiconify
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_deiconify" gdk_window_deiconify :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowDeiconify ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowDeiconify _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_deiconify _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::destroy
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_destroy" gdk_window_destroy :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowDestroy ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowDestroy _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_destroy _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::destroy_notify
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_destroy_notify" gdk_window_destroy_notify :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowDestroyNotify ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowDestroyNotify _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_destroy_notify _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::enable_synchronized_configure
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_enable_synchronized_configure" gdk_window_enable_synchronized_configure :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-{-# DEPRECATED windowEnableSynchronizedConfigure ["(Since version 3.8)","this function is no longer needed"]#-}
-windowEnableSynchronizedConfigure ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowEnableSynchronizedConfigure _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_enable_synchronized_configure _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::end_paint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_end_paint" gdk_window_end_paint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowEndPaint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowEndPaint _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_end_paint _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::ensure_native
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_ensure_native" gdk_window_ensure_native :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowEnsureNative ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowEnsureNative _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_ensure_native _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::flush
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_flush" gdk_window_flush :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-{-# DEPRECATED windowFlush ["(Since version 3.14)"]#-}
-windowFlush ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowFlush _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_flush _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::focus
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", argType = TBasicType TUInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "timestamp", 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 "gdk_window_focus" gdk_window_focus :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Word32 ->                               -- timestamp : TBasicType TUInt32
-    IO ()
-
-
-windowFocus ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Word32 ->                               -- timestamp
-    m ()
-windowFocus _obj timestamp = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_focus _obj' timestamp
-    touchManagedPtr _obj
-    return ()
-
--- method Window::freeze_toplevel_updates_libgtk_only
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_freeze_toplevel_updates_libgtk_only" gdk_window_freeze_toplevel_updates_libgtk_only :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-{-# DEPRECATED windowFreezeToplevelUpdatesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside of GTK+"]#-}
-windowFreezeToplevelUpdatesLibgtkOnly ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowFreezeToplevelUpdatesLibgtkOnly _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_freeze_toplevel_updates_libgtk_only _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::freeze_updates
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_freeze_updates" gdk_window_freeze_updates :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowFreezeUpdates ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowFreezeUpdates _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_freeze_updates _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::fullscreen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_fullscreen" gdk_window_fullscreen :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowFullscreen ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowFullscreen _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_fullscreen _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::fullscreen_on_monitor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "monitor", 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 "gdk_window_fullscreen_on_monitor" gdk_window_fullscreen_on_monitor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- monitor : TBasicType TInt32
-    IO ()
-
-
-windowFullscreenOnMonitor ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- monitor
-    m ()
-windowFullscreenOnMonitor _obj monitor = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_fullscreen_on_monitor _obj' monitor
-    touchManagedPtr _obj
-    return ()
-
--- method Window::geometry_changed
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_geometry_changed" gdk_window_geometry_changed :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowGeometryChanged ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowGeometryChanged _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_geometry_changed _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::get_accept_focus
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_accept_focus" gdk_window_get_accept_focus :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetAcceptFocus ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetAcceptFocus _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_accept_focus _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_background_pattern
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Pattern"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_background_pattern" gdk_window_get_background_pattern :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Pattern)
-
-
-windowGetBackgroundPattern ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Cairo.Pattern
-windowGetBackgroundPattern _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_background_pattern _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_background_pattern" result
-    result' <- (newBoxed Cairo.Pattern) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_children
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Window")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_children" gdk_window_get_children :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr (GList (Ptr Window)))
-
-
-windowGetChildren ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m [Window]
-windowGetChildren _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_children _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_children" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Window) result'
-    g_list_free result
-    touchManagedPtr _obj
-    return result''
-
--- method Window::get_children_with_user_data
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Window")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_children_with_user_data" gdk_window_get_children_with_user_data :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    IO (Ptr (GList (Ptr Window)))
-
-
-windowGetChildrenWithUserData ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Ptr () ->                               -- user_data
-    m [Window]
-windowGetChildrenWithUserData _obj user_data = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_children_with_user_data _obj' user_data
-    checkUnexpectedReturnNULL "gdk_window_get_children_with_user_data" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Window) result'
-    g_list_free result
-    touchManagedPtr _obj
-    return result''
-
--- method Window::get_clip_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Region"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_clip_region" gdk_window_get_clip_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Region)
-
-
-windowGetClipRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Cairo.Region
-windowGetClipRegion _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_clip_region _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_clip_region" result
-    result' <- (wrapBoxed Cairo.Region) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_composited
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_composited" gdk_window_get_composited :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-{-# DEPRECATED windowGetComposited ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
-windowGetComposited ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetComposited _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_composited _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_cursor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Cursor"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_cursor" gdk_window_get_cursor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Cursor)
-
-
-windowGetCursor ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Cursor
-windowGetCursor _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_cursor _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_cursor" result
-    result' <- (newObject Cursor) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_decorations
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "decorations", argType = TInterface "Gdk" "WMDecoration", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_decorations" gdk_window_get_decorations :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr CUInt ->                            -- decorations : TInterface "Gdk" "WMDecoration"
-    IO CInt
-
-
-windowGetDecorations ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Bool,[WMDecoration])
-windowGetDecorations _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    decorations <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_window_get_decorations _obj' decorations
-    let result' = (/= 0) result
-    decorations' <- peek decorations
-    let decorations'' = wordToGFlags decorations'
-    touchManagedPtr _obj
-    freeMem decorations
-    return (result', decorations'')
-
--- method Window::get_device_cursor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Cursor"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_device_cursor" gdk_window_get_device_cursor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    IO (Ptr Cursor)
-
-
-windowGetDeviceCursor ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m Cursor
-windowGetDeviceCursor _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    result <- gdk_window_get_device_cursor _obj' device'
-    checkUnexpectedReturnNULL "gdk_window_get_device_cursor" result
-    result' <- (newObject Cursor) result
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return result'
-
--- method Window::get_device_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "EventMask"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_device_events" gdk_window_get_device_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    IO CUInt
-
-
-windowGetDeviceEvents ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m [EventMask]
-windowGetDeviceEvents _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    result <- gdk_window_get_device_events _obj' device'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return result'
-
--- method Window::get_device_position
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_device_position" gdk_window_get_device_position :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
-    IO (Ptr Window)
-
-
-windowGetDevicePosition ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m (Window,Int32,Int32,[ModifierType])
-windowGetDevicePosition _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    mask <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_window_get_device_position _obj' device' x y mask
-    checkUnexpectedReturnNULL "gdk_window_get_device_position" result
-    result' <- (newObject Window) result
-    x' <- peek x
-    y' <- peek y
-    mask' <- peek mask
-    let mask'' = wordToGFlags mask'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    freeMem x
-    freeMem y
-    freeMem mask
-    return (result', x', y', mask'')
-
--- method Window::get_device_position_double
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_device_position_double" gdk_window_get_device_position_double :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Ptr CDouble ->                          -- x : TBasicType TDouble
-    Ptr CDouble ->                          -- y : TBasicType TDouble
-    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
-    IO (Ptr Window)
-
-
-windowGetDevicePositionDouble ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    m (Window,Double,Double,[ModifierType])
-windowGetDevicePositionDouble _obj device = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    x <- allocMem :: IO (Ptr CDouble)
-    y <- allocMem :: IO (Ptr CDouble)
-    mask <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_window_get_device_position_double _obj' device' x y mask
-    checkUnexpectedReturnNULL "gdk_window_get_device_position_double" result
-    result' <- (newObject Window) result
-    x' <- peek x
-    let x'' = realToFrac x'
-    y' <- peek y
-    let y'' = realToFrac y'
-    mask' <- peek mask
-    let mask'' = wordToGFlags mask'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    freeMem x
-    freeMem y
-    freeMem mask
-    return (result', x'', y'', mask'')
-
--- method Window::get_display
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Display"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_display" gdk_window_get_display :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Display)
-
-
-windowGetDisplay ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Display
-windowGetDisplay _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_display _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_display" result
-    result' <- (newObject Display) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_drag_protocol
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "target", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "DragProtocol"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_drag_protocol" gdk_window_get_drag_protocol :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr (Ptr Window) ->                     -- target : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetDragProtocol ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (DragProtocol,Window)
-windowGetDragProtocol _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    target <- allocMem :: IO (Ptr (Ptr Window))
-    result <- gdk_window_get_drag_protocol _obj' target
-    let result' = (toEnum . fromIntegral) result
-    target' <- peek target
-    target'' <- (wrapObject Window) target'
-    touchManagedPtr _obj
-    freeMem target
-    return (result', target'')
-
--- method Window::get_effective_parent
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_effective_parent" gdk_window_get_effective_parent :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-windowGetEffectiveParent ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Window
-windowGetEffectiveParent _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_effective_parent _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_effective_parent" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_effective_toplevel
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_effective_toplevel" gdk_window_get_effective_toplevel :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-windowGetEffectiveToplevel ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Window
-windowGetEffectiveToplevel _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_effective_toplevel _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_effective_toplevel" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_event_compression
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_event_compression" gdk_window_get_event_compression :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetEventCompression ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetEventCompression _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_event_compression _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "EventMask"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_events" gdk_window_get_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetEvents ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m [EventMask]
-windowGetEvents _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_events _obj'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_focus_on_map
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_focus_on_map" gdk_window_get_focus_on_map :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetFocusOnMap ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetFocusOnMap _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_focus_on_map _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_frame_clock
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "FrameClock"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_frame_clock" gdk_window_get_frame_clock :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr FrameClock)
-
-
-windowGetFrameClock ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m FrameClock
-windowGetFrameClock _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_frame_clock _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_frame_clock" result
-    result' <- (newObject FrameClock) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_frame_extents
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_frame_extents" gdk_window_get_frame_extents :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
-    IO ()
-
-
-windowGetFrameExtents ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Rectangle)
-windowGetFrameExtents _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    rect <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
-    gdk_window_get_frame_extents _obj' rect
-    rect' <- (wrapBoxed Rectangle) rect
-    touchManagedPtr _obj
-    return rect'
-
--- method Window::get_fullscreen_mode
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "FullscreenMode"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_fullscreen_mode" gdk_window_get_fullscreen_mode :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetFullscreenMode ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m FullscreenMode
-windowGetFullscreenMode _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_fullscreen_mode _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_geometry
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_geometry" gdk_window_get_geometry :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    Ptr Int32 ->                            -- width : TBasicType TInt32
-    Ptr Int32 ->                            -- height : TBasicType TInt32
-    IO ()
-
-
-windowGetGeometry ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Int32,Int32,Int32,Int32)
-windowGetGeometry _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    width <- allocMem :: IO (Ptr Int32)
-    height <- allocMem :: IO (Ptr Int32)
-    gdk_window_get_geometry _obj' x y width height
-    x' <- peek x
-    y' <- peek y
-    width' <- peek width
-    height' <- peek height
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    freeMem width
-    freeMem height
-    return (x', y', width', height')
-
--- method Window::get_group
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_group" gdk_window_get_group :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-windowGetGroup ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Window
-windowGetGroup _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_group _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_group" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_height
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_height" gdk_window_get_height :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO Int32
-
-
-windowGetHeight ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Int32
-windowGetHeight _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_height _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Window::get_modal_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_modal_hint" gdk_window_get_modal_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetModalHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetModalHint _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_modal_hint _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_origin
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_origin" gdk_window_get_origin :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    IO Int32
-
-
-windowGetOrigin ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Int32,Int32,Int32)
-windowGetOrigin _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    result <- gdk_window_get_origin _obj' x y
-    x' <- peek x
-    y' <- peek y
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    return (result, x', y')
-
--- method Window::get_parent
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_parent" gdk_window_get_parent :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-windowGetParent ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Window
-windowGetParent _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_parent _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_parent" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_pass_through
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_pass_through" gdk_window_get_pass_through :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetPassThrough ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetPassThrough _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_pass_through _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_pointer
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_pointer" gdk_window_get_pointer :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
-    IO (Ptr Window)
-
-{-# DEPRECATED windowGetPointer ["(Since version 3.0)","Use gdk_window_get_device_position() instead."]#-}
-windowGetPointer ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Window,Int32,Int32,[ModifierType])
-windowGetPointer _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    mask <- allocMem :: IO (Ptr CUInt)
-    result <- gdk_window_get_pointer _obj' x y mask
-    checkUnexpectedReturnNULL "gdk_window_get_pointer" result
-    result' <- (newObject Window) result
-    x' <- peek x
-    y' <- peek y
-    mask' <- peek mask
-    let mask'' = wordToGFlags mask'
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    freeMem mask
-    return (result', x', y', mask'')
-
--- method Window::get_position
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_position" gdk_window_get_position :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    IO ()
-
-
-windowGetPosition ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Int32,Int32)
-windowGetPosition _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    gdk_window_get_position _obj' x y
-    x' <- peek x
-    y' <- peek y
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    return (x', y')
-
--- method Window::get_root_coords
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "root_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "root_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", 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 "gdk_window_get_root_coords" gdk_window_get_root_coords :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Ptr Int32 ->                            -- root_x : TBasicType TInt32
-    Ptr Int32 ->                            -- root_y : TBasicType TInt32
-    IO ()
-
-
-windowGetRootCoords ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m (Int32,Int32)
-windowGetRootCoords _obj x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    root_x <- allocMem :: IO (Ptr Int32)
-    root_y <- allocMem :: IO (Ptr Int32)
-    gdk_window_get_root_coords _obj' x y root_x root_y
-    root_x' <- peek root_x
-    root_y' <- peek root_y
-    touchManagedPtr _obj
-    freeMem root_x
-    freeMem root_y
-    return (root_x', root_y')
-
--- method Window::get_root_origin
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_root_origin" gdk_window_get_root_origin :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Int32 ->                            -- x : TBasicType TInt32
-    Ptr Int32 ->                            -- y : TBasicType TInt32
-    IO ()
-
-
-windowGetRootOrigin ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m (Int32,Int32)
-windowGetRootOrigin _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    x <- allocMem :: IO (Ptr Int32)
-    y <- allocMem :: IO (Ptr Int32)
-    gdk_window_get_root_origin _obj' x y
-    x' <- peek x
-    y' <- peek y
-    touchManagedPtr _obj
-    freeMem x
-    freeMem y
-    return (x', y')
-
--- method Window::get_scale_factor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_scale_factor" gdk_window_get_scale_factor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO Int32
-
-
-windowGetScaleFactor ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Int32
-windowGetScaleFactor _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_scale_factor _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Window::get_screen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Screen"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_screen" gdk_window_get_screen :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Screen)
-
-
-windowGetScreen ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Screen
-windowGetScreen _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_screen _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_screen" result
-    result' <- (newObject Screen) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_source_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "EventMask"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_source_events" gdk_window_get_source_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- source : TInterface "Gdk" "InputSource"
-    IO CUInt
-
-
-windowGetSourceEvents ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    InputSource ->                          -- source
-    m [EventMask]
-windowGetSourceEvents _obj source = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let source' = (fromIntegral . fromEnum) source
-    result <- gdk_window_get_source_events _obj' source'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_state
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "WindowState"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_state" gdk_window_get_state :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetState ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m [WindowState]
-windowGetState _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_state _obj'
-    let result' = wordToGFlags result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_support_multidevice
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_support_multidevice" gdk_window_get_support_multidevice :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowGetSupportMultidevice ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowGetSupportMultidevice _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_support_multidevice _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_toplevel
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_toplevel" gdk_window_get_toplevel :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Window)
-
-
-windowGetToplevel ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Window
-windowGetToplevel _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_toplevel _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_toplevel" result
-    result' <- (newObject Window) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_type_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "WindowTypeHint"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_type_hint" gdk_window_get_type_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetTypeHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m WindowTypeHint
-windowGetTypeHint _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_type_hint _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_update_area
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Region"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_update_area" gdk_window_get_update_area :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Region)
-
-
-windowGetUpdateArea ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Cairo.Region
-windowGetUpdateArea _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_update_area _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_update_area" result
-    result' <- (wrapBoxed Cairo.Region) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_user_data
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "data", argType = TBasicType TVoid, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_user_data" gdk_window_get_user_data :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr (Ptr ()) ->                         -- data : TBasicType TVoid
-    IO ()
-
-
-windowGetUserData ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ((Ptr ()))
-windowGetUserData _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    data_ <- allocMem :: IO (Ptr (Ptr ()))
-    gdk_window_get_user_data _obj' data_
-    data_' <- peek data_
-    touchManagedPtr _obj
-    freeMem data_
-    return data_'
-
--- method Window::get_visible_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "cairo" "Region"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_visible_region" gdk_window_get_visible_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Cairo.Region)
-
-
-windowGetVisibleRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Cairo.Region
-windowGetVisibleRegion _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_visible_region _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_visible_region" result
-    result' <- (wrapBoxed Cairo.Region) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_visual
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "Visual"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_visual" gdk_window_get_visual :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr Visual)
-
-
-windowGetVisual ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Visual
-windowGetVisual _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_visual _obj'
-    checkUnexpectedReturnNULL "gdk_window_get_visual" result
-    result' <- (newObject Visual) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::get_width
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TInt32
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_width" gdk_window_get_width :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO Int32
-
-
-windowGetWidth ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Int32
-windowGetWidth _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_width _obj'
-    touchManagedPtr _obj
-    return result
-
--- method Window::get_window_type
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TInterface "Gdk" "WindowType"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_get_window_type" gdk_window_get_window_type :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CUInt
-
-
-windowGetWindowType ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m WindowType
-windowGetWindowType _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_get_window_type _obj'
-    let result' = (toEnum . fromIntegral) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::has_native
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_has_native" gdk_window_has_native :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowHasNative ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowHasNative _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_has_native _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::hide
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_hide" gdk_window_hide :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowHide ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowHide _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_hide _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::iconify
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_iconify" gdk_window_iconify :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowIconify ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowIconify _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_iconify _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::input_shape_combine_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", 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 "gdk_window_input_shape_combine_region" gdk_window_input_shape_combine_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- shape_region : TInterface "cairo" "Region"
-    Int32 ->                                -- offset_x : TBasicType TInt32
-    Int32 ->                                -- offset_y : TBasicType TInt32
-    IO ()
-
-
-windowInputShapeCombineRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Region ->                         -- shape_region
-    Int32 ->                                -- offset_x
-    Int32 ->                                -- offset_y
-    m ()
-windowInputShapeCombineRegion _obj shape_region offset_x offset_y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let shape_region' = unsafeManagedPtrGetPtr shape_region
-    gdk_window_input_shape_combine_region _obj' shape_region' offset_x offset_y
-    touchManagedPtr _obj
-    touchManagedPtr shape_region
-    return ()
-
--- method Window::invalidate_maybe_recurse
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_func", argType = TInterface "Gdk" "WindowChildFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeCall, argClosure = 3, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "child_func", argType = TInterface "Gdk" "WindowChildFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeCall, argClosure = 3, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_invalidate_maybe_recurse" gdk_window_invalidate_maybe_recurse :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    FunPtr WindowChildFuncC ->              -- child_func : TInterface "Gdk" "WindowChildFunc"
-    Ptr () ->                               -- user_data : TBasicType TVoid
-    IO ()
-
-
-windowInvalidateMaybeRecurse ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Region ->                         -- region
-    Maybe (WindowChildFunc) ->              -- child_func
-    m ()
-windowInvalidateMaybeRecurse _obj region child_func = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let region' = unsafeManagedPtrGetPtr region
-    maybeChild_func <- case child_func of
-        Nothing -> return (castPtrToFunPtr nullPtr)
-        Just jChild_func -> do
-            jChild_func' <- mkWindowChildFunc (windowChildFuncWrapper Nothing jChild_func)
-            return jChild_func'
-    let user_data = nullPtr
-    gdk_window_invalidate_maybe_recurse _obj' region' maybeChild_func user_data
-    safeFreeFunPtr $ castFunPtrToPtr maybeChild_func
-    touchManagedPtr _obj
-    touchManagedPtr region
-    return ()
-
--- method Window::invalidate_rect
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_invalidate_rect" gdk_window_invalidate_rect :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
-    CInt ->                                 -- invalidate_children : TBasicType TBoolean
-    IO ()
-
-
-windowInvalidateRect ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Maybe (Rectangle) ->                    -- rect
-    Bool ->                                 -- invalidate_children
-    m ()
-windowInvalidateRect _obj rect invalidate_children = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeRect <- case rect of
-        Nothing -> return nullPtr
-        Just jRect -> do
-            let jRect' = unsafeManagedPtrGetPtr jRect
-            return jRect'
-    let invalidate_children' = (fromIntegral . fromEnum) invalidate_children
-    gdk_window_invalidate_rect _obj' maybeRect invalidate_children'
-    touchManagedPtr _obj
-    whenJust rect touchManagedPtr
-    return ()
-
--- method Window::invalidate_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_invalidate_region" gdk_window_invalidate_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    CInt ->                                 -- invalidate_children : TBasicType TBoolean
-    IO ()
-
-
-windowInvalidateRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Region ->                         -- region
-    Bool ->                                 -- invalidate_children
-    m ()
-windowInvalidateRegion _obj region invalidate_children = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let region' = unsafeManagedPtrGetPtr region
-    let invalidate_children' = (fromIntegral . fromEnum) invalidate_children
-    gdk_window_invalidate_region _obj' region' invalidate_children'
-    touchManagedPtr _obj
-    touchManagedPtr region
-    return ()
-
--- method Window::is_destroyed
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_is_destroyed" gdk_window_is_destroyed :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowIsDestroyed ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowIsDestroyed _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_is_destroyed _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::is_input_only
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_is_input_only" gdk_window_is_input_only :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowIsInputOnly ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowIsInputOnly _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_is_input_only _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::is_shaped
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_is_shaped" gdk_window_is_shaped :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowIsShaped ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowIsShaped _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_is_shaped _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::is_viewable
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_is_viewable" gdk_window_is_viewable :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowIsViewable ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowIsViewable _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_is_viewable _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::is_visible
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_is_visible" gdk_window_is_visible :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO CInt
-
-
-windowIsVisible ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m Bool
-windowIsVisible _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_is_visible _obj'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::lower
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_lower" gdk_window_lower :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowLower ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowLower _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_lower _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::mark_paint_from_clip
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cr", argType = TInterface "cairo" "Context", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_mark_paint_from_clip" gdk_window_mark_paint_from_clip :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
-    IO ()
-
-
-windowMarkPaintFromClip ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Context ->                        -- cr
-    m ()
-windowMarkPaintFromClip _obj cr = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let cr' = unsafeManagedPtrGetPtr cr
-    gdk_window_mark_paint_from_clip _obj' cr'
-    touchManagedPtr _obj
-    touchManagedPtr cr
-    return ()
-
--- method Window::maximize
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_maximize" gdk_window_maximize :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowMaximize ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowMaximize _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_maximize _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::merge_child_input_shapes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_merge_child_input_shapes" gdk_window_merge_child_input_shapes :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowMergeChildInputShapes ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowMergeChildInputShapes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_merge_child_input_shapes _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::merge_child_shapes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_merge_child_shapes" gdk_window_merge_child_shapes :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowMergeChildShapes ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowMergeChildShapes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_merge_child_shapes _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::move
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", 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 "gdk_window_move" gdk_window_move :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    IO ()
-
-
-windowMove ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m ()
-windowMove _obj x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_move _obj' x y
-    touchManagedPtr _obj
-    return ()
-
--- method Window::move_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", 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 "gdk_window_move_region" gdk_window_move_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    Int32 ->                                -- dx : TBasicType TInt32
-    Int32 ->                                -- dy : TBasicType TInt32
-    IO ()
-
-
-windowMoveRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Cairo.Region ->                         -- region
-    Int32 ->                                -- dx
-    Int32 ->                                -- dy
-    m ()
-windowMoveRegion _obj region dx dy = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let region' = unsafeManagedPtrGetPtr region
-    gdk_window_move_region _obj' region' dx dy
-    touchManagedPtr _obj
-    touchManagedPtr region
-    return ()
-
--- method Window::move_resize
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", 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 "gdk_window_move_resize" gdk_window_move_resize :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO ()
-
-
-windowMoveResize ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m ()
-windowMoveResize _obj x y width height = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_move_resize _obj' x y width height
-    touchManagedPtr _obj
-    return ()
-
--- method Window::peek_children
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TGList (TInterface "Gdk" "Window")
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_peek_children" gdk_window_peek_children :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO (Ptr (GList (Ptr Window)))
-
-
-windowPeekChildren ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m [Window]
-windowPeekChildren _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    result <- gdk_window_peek_children _obj'
-    checkUnexpectedReturnNULL "gdk_window_peek_children" result
-    result' <- unpackGList result
-    result'' <- mapM (newObject Window) result'
-    touchManagedPtr _obj
-    return result''
-
--- method Window::process_updates
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "update_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "update_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_process_updates" gdk_window_process_updates :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- update_children : TBasicType TBoolean
-    IO ()
-
-
-windowProcessUpdates ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- update_children
-    m ()
-windowProcessUpdates _obj update_children = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let update_children' = (fromIntegral . fromEnum) update_children
-    gdk_window_process_updates _obj' update_children'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::raise
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_raise" gdk_window_raise :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowRaise ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowRaise _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_raise _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::register_dnd
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_register_dnd" gdk_window_register_dnd :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowRegisterDnd ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowRegisterDnd _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_register_dnd _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::reparent
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "y", 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 "gdk_window_reparent" gdk_window_reparent :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Window ->                           -- new_parent : TInterface "Gdk" "Window"
-    Int32 ->                                -- x : TBasicType TInt32
-    Int32 ->                                -- y : TBasicType TInt32
-    IO ()
-
-
-windowReparent ::
-    (MonadIO m, WindowK a, WindowK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- new_parent
-    Int32 ->                                -- x
-    Int32 ->                                -- y
-    m ()
-windowReparent _obj new_parent x y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let new_parent' = unsafeManagedPtrCastPtr new_parent
-    gdk_window_reparent _obj' new_parent' x y
-    touchManagedPtr _obj
-    touchManagedPtr new_parent
-    return ()
-
--- method Window::resize
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", 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 "gdk_window_resize" gdk_window_resize :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    IO ()
-
-
-windowResize ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m ()
-windowResize _obj width height = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_resize _obj' width height
-    touchManagedPtr _obj
-    return ()
-
--- method Window::restack
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "above", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "sibling", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "above", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_restack" gdk_window_restack :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Window ->                           -- sibling : TInterface "Gdk" "Window"
-    CInt ->                                 -- above : TBasicType TBoolean
-    IO ()
-
-
-windowRestack ::
-    (MonadIO m, WindowK a, WindowK b) =>
-    a ->                                    -- _obj
-    Maybe (b) ->                            -- sibling
-    Bool ->                                 -- above
-    m ()
-windowRestack _obj sibling above = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeSibling <- case sibling of
-        Nothing -> return nullPtr
-        Just jSibling -> do
-            let jSibling' = unsafeManagedPtrCastPtr jSibling
-            return jSibling'
-    let above' = (fromIntegral . fromEnum) above
-    gdk_window_restack _obj' maybeSibling above'
-    touchManagedPtr _obj
-    whenJust sibling touchManagedPtr
-    return ()
-
--- method Window::scroll
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dy", 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 "gdk_window_scroll" gdk_window_scroll :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- dx : TBasicType TInt32
-    Int32 ->                                -- dy : TBasicType TInt32
-    IO ()
-
-
-windowScroll ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- dx
-    Int32 ->                                -- dy
-    m ()
-windowScroll _obj dx dy = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_scroll _obj' dx dy
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_accept_focus
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accept_focus", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "accept_focus", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_accept_focus" gdk_window_set_accept_focus :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- accept_focus : TBasicType TBoolean
-    IO ()
-
-
-windowSetAcceptFocus ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- accept_focus
-    m ()
-windowSetAcceptFocus _obj accept_focus = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let accept_focus' = (fromIntegral . fromEnum) accept_focus
-    gdk_window_set_accept_focus _obj' accept_focus'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_background
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "color", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_background" gdk_window_set_background :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
-    IO ()
-
-{-# DEPRECATED windowSetBackground ["(Since version 3.4)","Use gdk_window_set_background_rgba() instead."]#-}
-windowSetBackground ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Color ->                                -- color
-    m ()
-windowSetBackground _obj color = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let color' = unsafeManagedPtrGetPtr color
-    gdk_window_set_background _obj' color'
-    touchManagedPtr _obj
-    touchManagedPtr color
-    return ()
-
--- method Window::set_background_pattern
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TInterface "cairo" "Pattern", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pattern", argType = TInterface "cairo" "Pattern", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_background_pattern" gdk_window_set_background_pattern :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Pattern ->                    -- pattern : TInterface "cairo" "Pattern"
-    IO ()
-
-
-windowSetBackgroundPattern ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Maybe (Cairo.Pattern) ->                -- pattern
-    m ()
-windowSetBackgroundPattern _obj pattern = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybePattern <- case pattern of
-        Nothing -> return nullPtr
-        Just jPattern -> do
-            let jPattern' = unsafeManagedPtrGetPtr jPattern
-            return jPattern'
-    gdk_window_set_background_pattern _obj' maybePattern
-    touchManagedPtr _obj
-    whenJust pattern touchManagedPtr
-    return ()
-
--- method Window::set_background_rgba
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "rgba", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_background_rgba" gdk_window_set_background_rgba :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr RGBA ->                             -- rgba : TInterface "Gdk" "RGBA"
-    IO ()
-
-
-windowSetBackgroundRgba ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    RGBA ->                                 -- rgba
-    m ()
-windowSetBackgroundRgba _obj rgba = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let rgba' = unsafeManagedPtrGetPtr rgba
-    gdk_window_set_background_rgba _obj' rgba'
-    touchManagedPtr _obj
-    touchManagedPtr rgba
-    return ()
-
--- method Window::set_child_input_shapes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_child_input_shapes" gdk_window_set_child_input_shapes :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowSetChildInputShapes ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowSetChildInputShapes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_set_child_input_shapes _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_child_shapes
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_child_shapes" gdk_window_set_child_shapes :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowSetChildShapes ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowSetChildShapes _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_set_child_shapes _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_composited
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "composited", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "composited", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_composited" gdk_window_set_composited :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- composited : TBasicType TBoolean
-    IO ()
-
-{-# DEPRECATED windowSetComposited ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
-windowSetComposited ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- composited
-    m ()
-windowSetComposited _obj composited = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let composited' = (fromIntegral . fromEnum) composited
-    gdk_window_set_composited _obj' composited'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_cursor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_cursor" gdk_window_set_cursor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
-    IO ()
-
-
-windowSetCursor ::
-    (MonadIO m, WindowK a, CursorK b) =>
-    a ->                                    -- _obj
-    Maybe (b) ->                            -- cursor
-    m ()
-windowSetCursor _obj cursor = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeCursor <- case cursor of
-        Nothing -> return nullPtr
-        Just jCursor -> do
-            let jCursor' = unsafeManagedPtrCastPtr jCursor
-            return jCursor'
-    gdk_window_set_cursor _obj' maybeCursor
-    touchManagedPtr _obj
-    whenJust cursor touchManagedPtr
-    return ()
-
--- method Window::set_decorations
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "decorations", argType = TInterface "Gdk" "WMDecoration", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "decorations", argType = TInterface "Gdk" "WMDecoration", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_decorations" gdk_window_set_decorations :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- decorations : TInterface "Gdk" "WMDecoration"
-    IO ()
-
-
-windowSetDecorations ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    [WMDecoration] ->                       -- decorations
-    m ()
-windowSetDecorations _obj decorations = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let decorations' = gflagsToWord decorations
-    gdk_window_set_decorations _obj' decorations'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_device_cursor
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_device_cursor" gdk_window_set_device_cursor :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
-    IO ()
-
-
-windowSetDeviceCursor ::
-    (MonadIO m, WindowK a, DeviceK b, CursorK c) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    c ->                                    -- cursor
-    m ()
-windowSetDeviceCursor _obj device cursor = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    let cursor' = unsafeManagedPtrCastPtr cursor
-    gdk_window_set_device_cursor _obj' device' cursor'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    touchManagedPtr cursor
-    return ()
-
--- method Window::set_device_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_device_events" gdk_window_set_device_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
-    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
-    IO ()
-
-
-windowSetDeviceEvents ::
-    (MonadIO m, WindowK a, DeviceK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- device
-    [EventMask] ->                          -- event_mask
-    m ()
-windowSetDeviceEvents _obj device event_mask = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let device' = unsafeManagedPtrCastPtr device
-    let event_mask' = gflagsToWord event_mask
-    gdk_window_set_device_events _obj' device' event_mask'
-    touchManagedPtr _obj
-    touchManagedPtr device
-    return ()
-
--- method Window::set_event_compression
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_compression", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_compression", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_event_compression" gdk_window_set_event_compression :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- event_compression : TBasicType TBoolean
-    IO ()
-
-
-windowSetEventCompression ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- event_compression
-    m ()
-windowSetEventCompression _obj event_compression = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let event_compression' = (fromIntegral . fromEnum) event_compression
-    gdk_window_set_event_compression _obj' event_compression'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_events" gdk_window_set_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
-    IO ()
-
-
-windowSetEvents ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    [EventMask] ->                          -- event_mask
-    m ()
-windowSetEvents _obj event_mask = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let event_mask' = gflagsToWord event_mask
-    gdk_window_set_events _obj' event_mask'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_focus_on_map
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_on_map", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "focus_on_map", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_focus_on_map" gdk_window_set_focus_on_map :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- focus_on_map : TBasicType TBoolean
-    IO ()
-
-
-windowSetFocusOnMap ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- focus_on_map
-    m ()
-windowSetFocusOnMap _obj focus_on_map = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let focus_on_map' = (fromIntegral . fromEnum) focus_on_map
-    gdk_window_set_focus_on_map _obj' focus_on_map'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_fullscreen_mode
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "FullscreenMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "mode", argType = TInterface "Gdk" "FullscreenMode", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_fullscreen_mode" gdk_window_set_fullscreen_mode :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- mode : TInterface "Gdk" "FullscreenMode"
-    IO ()
-
-
-windowSetFullscreenMode ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    FullscreenMode ->                       -- mode
-    m ()
-windowSetFullscreenMode _obj mode = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let mode' = (fromIntegral . fromEnum) mode
-    gdk_window_set_fullscreen_mode _obj' mode'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_functions
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "functions", argType = TInterface "Gdk" "WMFunction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "functions", argType = TInterface "Gdk" "WMFunction", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_functions" gdk_window_set_functions :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- functions : TInterface "Gdk" "WMFunction"
-    IO ()
-
-
-windowSetFunctions ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    [WMFunction] ->                         -- functions
-    m ()
-windowSetFunctions _obj functions = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let functions' = gflagsToWord functions
-    gdk_window_set_functions _obj' functions'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_geometry_hints
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geom_mask", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "geom_mask", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_geometry_hints" gdk_window_set_geometry_hints :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Geometry ->                         -- geometry : TInterface "Gdk" "Geometry"
-    CUInt ->                                -- geom_mask : TInterface "Gdk" "WindowHints"
-    IO ()
-
-
-windowSetGeometryHints ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Geometry ->                             -- geometry
-    [WindowHints] ->                        -- geom_mask
-    m ()
-windowSetGeometryHints _obj geometry geom_mask = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let geometry' = unsafeManagedPtrGetPtr geometry
-    let geom_mask' = gflagsToWord geom_mask
-    gdk_window_set_geometry_hints _obj' geometry' geom_mask'
-    touchManagedPtr _obj
-    touchManagedPtr geometry
-    return ()
-
--- method Window::set_group
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "leader", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "leader", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_group" gdk_window_set_group :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Window ->                           -- leader : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowSetGroup ::
-    (MonadIO m, WindowK a, WindowK b) =>
-    a ->                                    -- _obj
-    Maybe (b) ->                            -- leader
-    m ()
-windowSetGroup _obj leader = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeLeader <- case leader of
-        Nothing -> return nullPtr
-        Just jLeader -> do
-            let jLeader' = unsafeManagedPtrCastPtr jLeader
-            return jLeader'
-    gdk_window_set_group _obj' maybeLeader
-    touchManagedPtr _obj
-    whenJust leader touchManagedPtr
-    return ()
-
--- method Window::set_icon_list
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbufs", argType = TGList (TInterface "GdkPixbuf" "Pixbuf"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pixbufs", argType = TGList (TInterface "GdkPixbuf" "Pixbuf"), direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_icon_list" gdk_window_set_icon_list :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr (GList (Ptr GdkPixbuf.Pixbuf)) ->   -- pixbufs : TGList (TInterface "GdkPixbuf" "Pixbuf")
-    IO ()
-
-
-windowSetIconList ::
-    (MonadIO m, WindowK a, GdkPixbuf.PixbufK b) =>
-    a ->                                    -- _obj
-    [b] ->                                  -- pixbufs
-    m ()
-windowSetIconList _obj pixbufs = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let pixbufs' = map unsafeManagedPtrCastPtr pixbufs
-    pixbufs'' <- packGList pixbufs'
-    gdk_window_set_icon_list _obj' pixbufs''
-    touchManagedPtr _obj
-    mapM_ touchManagedPtr pixbufs
-    g_list_free pixbufs''
-    return ()
-
--- method Window::set_icon_name
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_icon_name" gdk_window_set_icon_name :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CString ->                              -- name : TBasicType TUTF8
-    IO ()
-
-
-windowSetIconName ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Maybe (T.Text) ->                       -- name
-    m ()
-windowSetIconName _obj name = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeName <- case name of
-        Nothing -> return nullPtr
-        Just jName -> do
-            jName' <- textToCString jName
-            return jName'
-    gdk_window_set_icon_name _obj' maybeName
-    touchManagedPtr _obj
-    freeMem maybeName
-    return ()
-
--- method Window::set_keep_above
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_keep_above" gdk_window_set_keep_above :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- setting : TBasicType TBoolean
-    IO ()
-
-
-windowSetKeepAbove ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- setting
-    m ()
-windowSetKeepAbove _obj setting = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let setting' = (fromIntegral . fromEnum) setting
-    gdk_window_set_keep_above _obj' setting'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_keep_below
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_keep_below" gdk_window_set_keep_below :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- setting : TBasicType TBoolean
-    IO ()
-
-
-windowSetKeepBelow ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- setting
-    m ()
-windowSetKeepBelow _obj setting = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let setting' = (fromIntegral . fromEnum) setting
-    gdk_window_set_keep_below _obj' setting'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_modal_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modal", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "modal", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_modal_hint" gdk_window_set_modal_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- modal : TBasicType TBoolean
-    IO ()
-
-
-windowSetModalHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- modal
-    m ()
-windowSetModalHint _obj modal = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let modal' = (fromIntegral . fromEnum) modal
-    gdk_window_set_modal_hint _obj' modal'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_opacity
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "opacity", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "opacity", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_opacity" gdk_window_set_opacity :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CDouble ->                              -- opacity : TBasicType TDouble
-    IO ()
-
-
-windowSetOpacity ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Double ->                               -- opacity
-    m ()
-windowSetOpacity _obj opacity = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let opacity' = realToFrac opacity
-    gdk_window_set_opacity _obj' opacity'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_opaque_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_opaque_region" gdk_window_set_opaque_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
-    IO ()
-
-
-windowSetOpaqueRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Maybe (Cairo.Region) ->                 -- region
-    m ()
-windowSetOpaqueRegion _obj region = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeRegion <- case region of
-        Nothing -> return nullPtr
-        Just jRegion -> do
-            let jRegion' = unsafeManagedPtrGetPtr jRegion
-            return jRegion'
-    gdk_window_set_opaque_region _obj' maybeRegion
-    touchManagedPtr _obj
-    whenJust region touchManagedPtr
-    return ()
-
--- method Window::set_override_redirect
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "override_redirect", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "override_redirect", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_override_redirect" gdk_window_set_override_redirect :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- override_redirect : TBasicType TBoolean
-    IO ()
-
-
-windowSetOverrideRedirect ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- override_redirect
-    m ()
-windowSetOverrideRedirect _obj override_redirect = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let override_redirect' = (fromIntegral . fromEnum) override_redirect
-    gdk_window_set_override_redirect _obj' override_redirect'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_pass_through
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pass_through", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "pass_through", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_pass_through" gdk_window_set_pass_through :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- pass_through : TBasicType TBoolean
-    IO ()
-
-
-windowSetPassThrough ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- pass_through
-    m ()
-windowSetPassThrough _obj pass_through = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let pass_through' = (fromIntegral . fromEnum) pass_through
-    gdk_window_set_pass_through _obj' pass_through'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_role
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "role", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "role", 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 "gdk_window_set_role" gdk_window_set_role :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CString ->                              -- role : TBasicType TUTF8
-    IO ()
-
-
-windowSetRole ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- role
-    m ()
-windowSetRole _obj role = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    role' <- textToCString role
-    gdk_window_set_role _obj' role'
-    touchManagedPtr _obj
-    freeMem role'
-    return ()
-
--- method Window::set_shadow_width
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "left", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "right", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "top", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bottom", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "left", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "right", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "top", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "bottom", 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 "gdk_window_set_shadow_width" gdk_window_set_shadow_width :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Int32 ->                                -- left : TBasicType TInt32
-    Int32 ->                                -- right : TBasicType TInt32
-    Int32 ->                                -- top : TBasicType TInt32
-    Int32 ->                                -- bottom : TBasicType TInt32
-    IO ()
-
-
-windowSetShadowWidth ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Int32 ->                                -- left
-    Int32 ->                                -- right
-    Int32 ->                                -- top
-    Int32 ->                                -- bottom
-    m ()
-windowSetShadowWidth _obj left right top bottom = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_set_shadow_width _obj' left right top bottom
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_skip_pager_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_pager", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_pager", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_skip_pager_hint" gdk_window_set_skip_pager_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- skips_pager : TBasicType TBoolean
-    IO ()
-
-
-windowSetSkipPagerHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- skips_pager
-    m ()
-windowSetSkipPagerHint _obj skips_pager = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let skips_pager' = (fromIntegral . fromEnum) skips_pager
-    gdk_window_set_skip_pager_hint _obj' skips_pager'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_skip_taskbar_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_taskbar", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "skips_taskbar", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_skip_taskbar_hint" gdk_window_set_skip_taskbar_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- skips_taskbar : TBasicType TBoolean
-    IO ()
-
-
-windowSetSkipTaskbarHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- skips_taskbar
-    m ()
-windowSetSkipTaskbarHint _obj skips_taskbar = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let skips_taskbar' = (fromIntegral . fromEnum) skips_taskbar
-    gdk_window_set_skip_taskbar_hint _obj' skips_taskbar'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_source_events
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event_mask", argType = TInterface "Gdk" "EventMask", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_source_events" gdk_window_set_source_events :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- source : TInterface "Gdk" "InputSource"
-    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
-    IO ()
-
-
-windowSetSourceEvents ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    InputSource ->                          -- source
-    [EventMask] ->                          -- event_mask
-    m ()
-windowSetSourceEvents _obj source event_mask = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let source' = (fromIntegral . fromEnum) source
-    let event_mask' = gflagsToWord event_mask
-    gdk_window_set_source_events _obj' source' event_mask'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_startup_id
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "startup_id", 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 "gdk_window_set_startup_id" gdk_window_set_startup_id :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CString ->                              -- startup_id : TBasicType TUTF8
-    IO ()
-
-
-windowSetStartupId ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- startup_id
-    m ()
-windowSetStartupId _obj startup_id = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    startup_id' <- textToCString startup_id
-    gdk_window_set_startup_id _obj' startup_id'
-    touchManagedPtr _obj
-    freeMem startup_id'
-    return ()
-
--- method Window::set_static_gravities
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_static", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "use_static", 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 "gdk_window_set_static_gravities" gdk_window_set_static_gravities :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- use_static : TBasicType TBoolean
-    IO CInt
-
-{-# DEPRECATED windowSetStaticGravities ["(Since version 3.16)","static gravities haven't worked on anything but X11","  for a long time."]#-}
-windowSetStaticGravities ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- use_static
-    m Bool
-windowSetStaticGravities _obj use_static = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let use_static' = (fromIntegral . fromEnum) use_static
-    result <- gdk_window_set_static_gravities _obj' use_static'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    return result'
-
--- method Window::set_support_multidevice
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "support_multidevice", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "support_multidevice", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_support_multidevice" gdk_window_set_support_multidevice :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- support_multidevice : TBasicType TBoolean
-    IO ()
-
-
-windowSetSupportMultidevice ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- support_multidevice
-    m ()
-windowSetSupportMultidevice _obj support_multidevice = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let support_multidevice' = (fromIntegral . fromEnum) support_multidevice
-    gdk_window_set_support_multidevice _obj' support_multidevice'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_title
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_title" gdk_window_set_title :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CString ->                              -- title : TBasicType TUTF8
-    IO ()
-
-
-windowSetTitle ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    T.Text ->                               -- title
-    m ()
-windowSetTitle _obj title = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    title' <- textToCString title
-    gdk_window_set_title _obj' title'
-    touchManagedPtr _obj
-    freeMem title'
-    return ()
-
--- method Window::set_transient_for
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_transient_for" gdk_window_set_transient_for :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Window ->                           -- parent : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowSetTransientFor ::
-    (MonadIO m, WindowK a, WindowK b) =>
-    a ->                                    -- _obj
-    b ->                                    -- parent
-    m ()
-windowSetTransientFor _obj parent = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let parent' = unsafeManagedPtrCastPtr parent
-    gdk_window_set_transient_for _obj' parent'
-    touchManagedPtr _obj
-    touchManagedPtr parent
-    return ()
-
--- method Window::set_type_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Gdk" "WindowTypeHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "hint", argType = TInterface "Gdk" "WindowTypeHint", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_type_hint" gdk_window_set_type_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CUInt ->                                -- hint : TInterface "Gdk" "WindowTypeHint"
-    IO ()
-
-
-windowSetTypeHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    WindowTypeHint ->                       -- hint
-    m ()
-windowSetTypeHint _obj hint = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let hint' = (fromIntegral . fromEnum) hint
-    gdk_window_set_type_hint _obj' hint'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_urgency_hint
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "urgent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "urgent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_urgency_hint" gdk_window_set_urgency_hint :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    CInt ->                                 -- urgent : TBasicType TBoolean
-    IO ()
-
-
-windowSetUrgencyHint ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Bool ->                                 -- urgent
-    m ()
-windowSetUrgencyHint _obj urgent = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let urgent' = (fromIntegral . fromEnum) urgent
-    gdk_window_set_urgency_hint _obj' urgent'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::set_user_data
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "user_data", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_user_data" gdk_window_set_user_data :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr GObject.Object ->                   -- user_data : TInterface "GObject" "Object"
-    IO ()
-
-
-windowSetUserData ::
-    (MonadIO m, WindowK a, GObject.ObjectK b) =>
-    a ->                                    -- _obj
-    Maybe (b) ->                            -- user_data
-    m ()
-windowSetUserData _obj user_data = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeUser_data <- case user_data of
-        Nothing -> return nullPtr
-        Just jUser_data -> do
-            let jUser_data' = unsafeManagedPtrCastPtr jUser_data
-            return jUser_data'
-    gdk_window_set_user_data _obj' maybeUser_data
-    touchManagedPtr _obj
-    whenJust user_data touchManagedPtr
-    return ()
-
--- method Window::shape_combine_region
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "offset_y", 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 "gdk_window_shape_combine_region" gdk_window_shape_combine_region :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Cairo.Region ->                     -- shape_region : TInterface "cairo" "Region"
-    Int32 ->                                -- offset_x : TBasicType TInt32
-    Int32 ->                                -- offset_y : TBasicType TInt32
-    IO ()
-
-
-windowShapeCombineRegion ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Maybe (Cairo.Region) ->                 -- shape_region
-    Int32 ->                                -- offset_x
-    Int32 ->                                -- offset_y
-    m ()
-windowShapeCombineRegion _obj shape_region offset_x offset_y = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    maybeShape_region <- case shape_region of
-        Nothing -> return nullPtr
-        Just jShape_region -> do
-            let jShape_region' = unsafeManagedPtrGetPtr jShape_region
-            return jShape_region'
-    gdk_window_shape_combine_region _obj' maybeShape_region offset_x offset_y
-    touchManagedPtr _obj
-    whenJust shape_region touchManagedPtr
-    return ()
-
--- method Window::show
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_show" gdk_window_show :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowShow ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowShow _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_show _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::show_unraised
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_show_unraised" gdk_window_show_unraised :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowShowUnraised ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowShowUnraised _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_show_unraised _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::show_window_menu
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "event", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TBoolean
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_show_window_menu" gdk_window_show_window_menu :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    Ptr Event ->                            -- event : TInterface "Gdk" "Event"
-    IO CInt
-
-
-windowShowWindowMenu ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    Event ->                                -- event
-    m Bool
-windowShowWindowMenu _obj event = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    let event' = unsafeManagedPtrGetPtr event
-    result <- gdk_window_show_window_menu _obj' event'
-    let result' = (/= 0) result
-    touchManagedPtr _obj
-    touchManagedPtr event
-    return result'
-
--- method Window::stick
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_stick" gdk_window_stick :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowStick ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowStick _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_stick _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::thaw_toplevel_updates_libgtk_only
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_thaw_toplevel_updates_libgtk_only" gdk_window_thaw_toplevel_updates_libgtk_only :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-{-# DEPRECATED windowThawToplevelUpdatesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside of GTK+"]#-}
-windowThawToplevelUpdatesLibgtkOnly ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowThawToplevelUpdatesLibgtkOnly _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_thaw_toplevel_updates_libgtk_only _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::thaw_updates
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_thaw_updates" gdk_window_thaw_updates :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowThawUpdates ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowThawUpdates _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_thaw_updates _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::unfullscreen
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_unfullscreen" gdk_window_unfullscreen :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowUnfullscreen ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowUnfullscreen _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_unfullscreen _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::unmaximize
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_unmaximize" gdk_window_unmaximize :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowUnmaximize ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowUnmaximize _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_unmaximize _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::unstick
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_unstick" gdk_window_unstick :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowUnstick ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowUnstick _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_unstick _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::withdraw
--- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_withdraw" gdk_window_withdraw :: 
-    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
-    IO ()
-
-
-windowWithdraw ::
-    (MonadIO m, WindowK a) =>
-    a ->                                    -- _obj
-    m ()
-windowWithdraw _obj = liftIO $ do
-    let _obj' = unsafeManagedPtrCastPtr _obj
-    gdk_window_withdraw _obj'
-    touchManagedPtr _obj
-    return ()
-
--- method Window::at_pointer
--- method type : MemberFunction
--- Args : [Arg {argName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : []
--- returnType : TInterface "Gdk" "Window"
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_at_pointer" gdk_window_at_pointer :: 
-    Ptr Int32 ->                            -- win_x : TBasicType TInt32
-    Ptr Int32 ->                            -- win_y : TBasicType TInt32
-    IO (Ptr Window)
-
-{-# DEPRECATED windowAtPointer ["(Since version 3.0)","Use gdk_device_get_window_at_position() instead."]#-}
-windowAtPointer ::
-    (MonadIO m) =>
-    m (Window,Int32,Int32)
-windowAtPointer  = liftIO $ do
-    win_x <- allocMem :: IO (Ptr Int32)
-    win_y <- allocMem :: IO (Ptr Int32)
-    result <- gdk_window_at_pointer win_x win_y
-    checkUnexpectedReturnNULL "gdk_window_at_pointer" result
-    result' <- (newObject Window) result
-    win_x' <- peek win_x
-    win_y' <- peek win_y
-    freeMem win_x
-    freeMem win_y
-    return (result', win_x', win_y')
-
--- method Window::constrain_size
--- method type : MemberFunction
--- Args : [Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "new_width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "new_height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
--- Lengths : []
--- hInArgs : [Arg {argName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "flags", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "height", 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 "gdk_window_constrain_size" gdk_window_constrain_size :: 
-    Ptr Geometry ->                         -- geometry : TInterface "Gdk" "Geometry"
-    CUInt ->                                -- flags : TInterface "Gdk" "WindowHints"
-    Int32 ->                                -- width : TBasicType TInt32
-    Int32 ->                                -- height : TBasicType TInt32
-    Ptr Int32 ->                            -- new_width : TBasicType TInt32
-    Ptr Int32 ->                            -- new_height : TBasicType TInt32
-    IO ()
-
-
-windowConstrainSize ::
-    (MonadIO m) =>
-    Geometry ->                             -- geometry
-    [WindowHints] ->                        -- flags
-    Int32 ->                                -- width
-    Int32 ->                                -- height
-    m (Int32,Int32)
-windowConstrainSize geometry flags width height = liftIO $ do
-    let geometry' = unsafeManagedPtrGetPtr geometry
-    let flags' = gflagsToWord flags
-    new_width <- allocMem :: IO (Ptr Int32)
-    new_height <- allocMem :: IO (Ptr Int32)
-    gdk_window_constrain_size geometry' flags' width height new_width new_height
-    new_width' <- peek new_width
-    new_height' <- peek new_height
-    touchManagedPtr geometry
-    freeMem new_width
-    freeMem new_height
-    return (new_width', new_height')
-
--- method Window::process_all_updates
--- method type : MemberFunction
--- Args : []
--- Lengths : []
--- hInArgs : []
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_process_all_updates" gdk_window_process_all_updates :: 
-    IO ()
-
-
-windowProcessAllUpdates ::
-    (MonadIO m) =>
-    m ()
-windowProcessAllUpdates  = liftIO $ do
-    gdk_window_process_all_updates
-    return ()
-
--- method Window::set_debug_updates
--- method type : MemberFunction
--- Args : [Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- Lengths : []
--- hInArgs : [Arg {argName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
--- returnType : TBasicType TVoid
--- throws : False
--- Skip return : False
-
-foreign import ccall "gdk_window_set_debug_updates" gdk_window_set_debug_updates :: 
-    CInt ->                                 -- setting : TBasicType TBoolean
-    IO ()
-
-
-windowSetDebugUpdates ::
-    (MonadIO m) =>
-    Bool ->                                 -- setting
-    m ()
+
+{- |
+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.Gdk.Objects.Window
+    ( 
+
+-- * Exported types
+    Window(..)                              ,
+    WindowK                                 ,
+    toWindow                                ,
+    noWindow                                ,
+
+
+ -- * Methods
+-- ** windowAtPointer
+    windowAtPointer                         ,
+
+
+-- ** windowBeep
+    WindowBeepMethodInfo                    ,
+    windowBeep                              ,
+
+
+-- ** windowBeginMoveDrag
+    WindowBeginMoveDragMethodInfo           ,
+    windowBeginMoveDrag                     ,
+
+
+-- ** windowBeginMoveDragForDevice
+    WindowBeginMoveDragForDeviceMethodInfo  ,
+    windowBeginMoveDragForDevice            ,
+
+
+-- ** windowBeginPaintRect
+    WindowBeginPaintRectMethodInfo          ,
+    windowBeginPaintRect                    ,
+
+
+-- ** windowBeginPaintRegion
+    WindowBeginPaintRegionMethodInfo        ,
+    windowBeginPaintRegion                  ,
+
+
+-- ** windowBeginResizeDrag
+    WindowBeginResizeDragMethodInfo         ,
+    windowBeginResizeDrag                   ,
+
+
+-- ** windowBeginResizeDragForDevice
+    WindowBeginResizeDragForDeviceMethodInfo,
+    windowBeginResizeDragForDevice          ,
+
+
+-- ** windowConfigureFinished
+    WindowConfigureFinishedMethodInfo       ,
+    windowConfigureFinished                 ,
+
+
+-- ** windowConstrainSize
+    windowConstrainSize                     ,
+
+
+-- ** windowCoordsFromParent
+    WindowCoordsFromParentMethodInfo        ,
+    windowCoordsFromParent                  ,
+
+
+-- ** windowCoordsToParent
+    WindowCoordsToParentMethodInfo          ,
+    windowCoordsToParent                    ,
+
+
+-- ** windowCreateGlContext
+    WindowCreateGlContextMethodInfo         ,
+    windowCreateGlContext                   ,
+
+
+-- ** windowCreateSimilarImageSurface
+    WindowCreateSimilarImageSurfaceMethodInfo,
+    windowCreateSimilarImageSurface         ,
+
+
+-- ** windowCreateSimilarSurface
+    WindowCreateSimilarSurfaceMethodInfo    ,
+    windowCreateSimilarSurface              ,
+
+
+-- ** windowDeiconify
+    WindowDeiconifyMethodInfo               ,
+    windowDeiconify                         ,
+
+
+-- ** windowDestroy
+    WindowDestroyMethodInfo                 ,
+    windowDestroy                           ,
+
+
+-- ** windowDestroyNotify
+    WindowDestroyNotifyMethodInfo           ,
+    windowDestroyNotify                     ,
+
+
+-- ** windowEnableSynchronizedConfigure
+    WindowEnableSynchronizedConfigureMethodInfo,
+    windowEnableSynchronizedConfigure       ,
+
+
+-- ** windowEndPaint
+    WindowEndPaintMethodInfo                ,
+    windowEndPaint                          ,
+
+
+-- ** windowEnsureNative
+    WindowEnsureNativeMethodInfo            ,
+    windowEnsureNative                      ,
+
+
+-- ** windowFlush
+    WindowFlushMethodInfo                   ,
+    windowFlush                             ,
+
+
+-- ** windowFocus
+    WindowFocusMethodInfo                   ,
+    windowFocus                             ,
+
+
+-- ** windowFreezeToplevelUpdatesLibgtkOnly
+    WindowFreezeToplevelUpdatesLibgtkOnlyMethodInfo,
+    windowFreezeToplevelUpdatesLibgtkOnly   ,
+
+
+-- ** windowFreezeUpdates
+    WindowFreezeUpdatesMethodInfo           ,
+    windowFreezeUpdates                     ,
+
+
+-- ** windowFullscreen
+    WindowFullscreenMethodInfo              ,
+    windowFullscreen                        ,
+
+
+-- ** windowFullscreenOnMonitor
+    WindowFullscreenOnMonitorMethodInfo     ,
+    windowFullscreenOnMonitor               ,
+
+
+-- ** windowGeometryChanged
+    WindowGeometryChangedMethodInfo         ,
+    windowGeometryChanged                   ,
+
+
+-- ** windowGetAcceptFocus
+    WindowGetAcceptFocusMethodInfo          ,
+    windowGetAcceptFocus                    ,
+
+
+-- ** windowGetBackgroundPattern
+    WindowGetBackgroundPatternMethodInfo    ,
+    windowGetBackgroundPattern              ,
+
+
+-- ** windowGetChildren
+    WindowGetChildrenMethodInfo             ,
+    windowGetChildren                       ,
+
+
+-- ** windowGetChildrenWithUserData
+    WindowGetChildrenWithUserDataMethodInfo ,
+    windowGetChildrenWithUserData           ,
+
+
+-- ** windowGetClipRegion
+    WindowGetClipRegionMethodInfo           ,
+    windowGetClipRegion                     ,
+
+
+-- ** windowGetComposited
+    WindowGetCompositedMethodInfo           ,
+    windowGetComposited                     ,
+
+
+-- ** windowGetCursor
+    WindowGetCursorMethodInfo               ,
+    windowGetCursor                         ,
+
+
+-- ** windowGetDecorations
+    WindowGetDecorationsMethodInfo          ,
+    windowGetDecorations                    ,
+
+
+-- ** windowGetDeviceCursor
+    WindowGetDeviceCursorMethodInfo         ,
+    windowGetDeviceCursor                   ,
+
+
+-- ** windowGetDeviceEvents
+    WindowGetDeviceEventsMethodInfo         ,
+    windowGetDeviceEvents                   ,
+
+
+-- ** windowGetDevicePosition
+    WindowGetDevicePositionMethodInfo       ,
+    windowGetDevicePosition                 ,
+
+
+-- ** windowGetDevicePositionDouble
+    WindowGetDevicePositionDoubleMethodInfo ,
+    windowGetDevicePositionDouble           ,
+
+
+-- ** windowGetDisplay
+    WindowGetDisplayMethodInfo              ,
+    windowGetDisplay                        ,
+
+
+-- ** windowGetDragProtocol
+    WindowGetDragProtocolMethodInfo         ,
+    windowGetDragProtocol                   ,
+
+
+-- ** windowGetEffectiveParent
+    WindowGetEffectiveParentMethodInfo      ,
+    windowGetEffectiveParent                ,
+
+
+-- ** windowGetEffectiveToplevel
+    WindowGetEffectiveToplevelMethodInfo    ,
+    windowGetEffectiveToplevel              ,
+
+
+-- ** windowGetEventCompression
+    WindowGetEventCompressionMethodInfo     ,
+    windowGetEventCompression               ,
+
+
+-- ** windowGetEvents
+    WindowGetEventsMethodInfo               ,
+    windowGetEvents                         ,
+
+
+-- ** windowGetFocusOnMap
+    WindowGetFocusOnMapMethodInfo           ,
+    windowGetFocusOnMap                     ,
+
+
+-- ** windowGetFrameClock
+    WindowGetFrameClockMethodInfo           ,
+    windowGetFrameClock                     ,
+
+
+-- ** windowGetFrameExtents
+    WindowGetFrameExtentsMethodInfo         ,
+    windowGetFrameExtents                   ,
+
+
+-- ** windowGetFullscreenMode
+    WindowGetFullscreenModeMethodInfo       ,
+    windowGetFullscreenMode                 ,
+
+
+-- ** windowGetGeometry
+    WindowGetGeometryMethodInfo             ,
+    windowGetGeometry                       ,
+
+
+-- ** windowGetGroup
+    WindowGetGroupMethodInfo                ,
+    windowGetGroup                          ,
+
+
+-- ** windowGetHeight
+    WindowGetHeightMethodInfo               ,
+    windowGetHeight                         ,
+
+
+-- ** windowGetModalHint
+    WindowGetModalHintMethodInfo            ,
+    windowGetModalHint                      ,
+
+
+-- ** windowGetOrigin
+    WindowGetOriginMethodInfo               ,
+    windowGetOrigin                         ,
+
+
+-- ** windowGetParent
+    WindowGetParentMethodInfo               ,
+    windowGetParent                         ,
+
+
+-- ** windowGetPassThrough
+    WindowGetPassThroughMethodInfo          ,
+    windowGetPassThrough                    ,
+
+
+-- ** windowGetPointer
+    WindowGetPointerMethodInfo              ,
+    windowGetPointer                        ,
+
+
+-- ** windowGetPosition
+    WindowGetPositionMethodInfo             ,
+    windowGetPosition                       ,
+
+
+-- ** windowGetRootCoords
+    WindowGetRootCoordsMethodInfo           ,
+    windowGetRootCoords                     ,
+
+
+-- ** windowGetRootOrigin
+    WindowGetRootOriginMethodInfo           ,
+    windowGetRootOrigin                     ,
+
+
+-- ** windowGetScaleFactor
+    WindowGetScaleFactorMethodInfo          ,
+    windowGetScaleFactor                    ,
+
+
+-- ** windowGetScreen
+    WindowGetScreenMethodInfo               ,
+    windowGetScreen                         ,
+
+
+-- ** windowGetSourceEvents
+    WindowGetSourceEventsMethodInfo         ,
+    windowGetSourceEvents                   ,
+
+
+-- ** windowGetState
+    WindowGetStateMethodInfo                ,
+    windowGetState                          ,
+
+
+-- ** windowGetSupportMultidevice
+    WindowGetSupportMultideviceMethodInfo   ,
+    windowGetSupportMultidevice             ,
+
+
+-- ** windowGetToplevel
+    WindowGetToplevelMethodInfo             ,
+    windowGetToplevel                       ,
+
+
+-- ** windowGetTypeHint
+    WindowGetTypeHintMethodInfo             ,
+    windowGetTypeHint                       ,
+
+
+-- ** windowGetUpdateArea
+    WindowGetUpdateAreaMethodInfo           ,
+    windowGetUpdateArea                     ,
+
+
+-- ** windowGetUserData
+    WindowGetUserDataMethodInfo             ,
+    windowGetUserData                       ,
+
+
+-- ** windowGetVisibleRegion
+    WindowGetVisibleRegionMethodInfo        ,
+    windowGetVisibleRegion                  ,
+
+
+-- ** windowGetVisual
+    WindowGetVisualMethodInfo               ,
+    windowGetVisual                         ,
+
+
+-- ** windowGetWidth
+    WindowGetWidthMethodInfo                ,
+    windowGetWidth                          ,
+
+
+-- ** windowGetWindowType
+    WindowGetWindowTypeMethodInfo           ,
+    windowGetWindowType                     ,
+
+
+-- ** windowHasNative
+    WindowHasNativeMethodInfo               ,
+    windowHasNative                         ,
+
+
+-- ** windowHide
+    WindowHideMethodInfo                    ,
+    windowHide                              ,
+
+
+-- ** windowIconify
+    WindowIconifyMethodInfo                 ,
+    windowIconify                           ,
+
+
+-- ** windowInputShapeCombineRegion
+    WindowInputShapeCombineRegionMethodInfo ,
+    windowInputShapeCombineRegion           ,
+
+
+-- ** windowInvalidateMaybeRecurse
+    WindowInvalidateMaybeRecurseMethodInfo  ,
+    windowInvalidateMaybeRecurse            ,
+
+
+-- ** windowInvalidateRect
+    WindowInvalidateRectMethodInfo          ,
+    windowInvalidateRect                    ,
+
+
+-- ** windowInvalidateRegion
+    WindowInvalidateRegionMethodInfo        ,
+    windowInvalidateRegion                  ,
+
+
+-- ** windowIsDestroyed
+    WindowIsDestroyedMethodInfo             ,
+    windowIsDestroyed                       ,
+
+
+-- ** windowIsInputOnly
+    WindowIsInputOnlyMethodInfo             ,
+    windowIsInputOnly                       ,
+
+
+-- ** windowIsShaped
+    WindowIsShapedMethodInfo                ,
+    windowIsShaped                          ,
+
+
+-- ** windowIsViewable
+    WindowIsViewableMethodInfo              ,
+    windowIsViewable                        ,
+
+
+-- ** windowIsVisible
+    WindowIsVisibleMethodInfo               ,
+    windowIsVisible                         ,
+
+
+-- ** windowLower
+    WindowLowerMethodInfo                   ,
+    windowLower                             ,
+
+
+-- ** windowMarkPaintFromClip
+    WindowMarkPaintFromClipMethodInfo       ,
+    windowMarkPaintFromClip                 ,
+
+
+-- ** windowMaximize
+    WindowMaximizeMethodInfo                ,
+    windowMaximize                          ,
+
+
+-- ** windowMergeChildInputShapes
+    WindowMergeChildInputShapesMethodInfo   ,
+    windowMergeChildInputShapes             ,
+
+
+-- ** windowMergeChildShapes
+    WindowMergeChildShapesMethodInfo        ,
+    windowMergeChildShapes                  ,
+
+
+-- ** windowMove
+    WindowMoveMethodInfo                    ,
+    windowMove                              ,
+
+
+-- ** windowMoveRegion
+    WindowMoveRegionMethodInfo              ,
+    windowMoveRegion                        ,
+
+
+-- ** windowMoveResize
+    WindowMoveResizeMethodInfo              ,
+    windowMoveResize                        ,
+
+
+-- ** windowNew
+    windowNew                               ,
+
+
+-- ** windowPeekChildren
+    WindowPeekChildrenMethodInfo            ,
+    windowPeekChildren                      ,
+
+
+-- ** windowProcessAllUpdates
+    windowProcessAllUpdates                 ,
+
+
+-- ** windowProcessUpdates
+    WindowProcessUpdatesMethodInfo          ,
+    windowProcessUpdates                    ,
+
+
+-- ** windowRaise
+    WindowRaiseMethodInfo                   ,
+    windowRaise                             ,
+
+
+-- ** windowRegisterDnd
+    WindowRegisterDndMethodInfo             ,
+    windowRegisterDnd                       ,
+
+
+-- ** windowReparent
+    WindowReparentMethodInfo                ,
+    windowReparent                          ,
+
+
+-- ** windowResize
+    WindowResizeMethodInfo                  ,
+    windowResize                            ,
+
+
+-- ** windowRestack
+    WindowRestackMethodInfo                 ,
+    windowRestack                           ,
+
+
+-- ** windowScroll
+    WindowScrollMethodInfo                  ,
+    windowScroll                            ,
+
+
+-- ** windowSetAcceptFocus
+    WindowSetAcceptFocusMethodInfo          ,
+    windowSetAcceptFocus                    ,
+
+
+-- ** windowSetBackground
+    WindowSetBackgroundMethodInfo           ,
+    windowSetBackground                     ,
+
+
+-- ** windowSetBackgroundPattern
+    WindowSetBackgroundPatternMethodInfo    ,
+    windowSetBackgroundPattern              ,
+
+
+-- ** windowSetBackgroundRgba
+    WindowSetBackgroundRgbaMethodInfo       ,
+    windowSetBackgroundRgba                 ,
+
+
+-- ** windowSetChildInputShapes
+    WindowSetChildInputShapesMethodInfo     ,
+    windowSetChildInputShapes               ,
+
+
+-- ** windowSetChildShapes
+    WindowSetChildShapesMethodInfo          ,
+    windowSetChildShapes                    ,
+
+
+-- ** windowSetComposited
+    WindowSetCompositedMethodInfo           ,
+    windowSetComposited                     ,
+
+
+-- ** windowSetCursor
+    WindowSetCursorMethodInfo               ,
+    windowSetCursor                         ,
+
+
+-- ** windowSetDebugUpdates
+    windowSetDebugUpdates                   ,
+
+
+-- ** windowSetDecorations
+    WindowSetDecorationsMethodInfo          ,
+    windowSetDecorations                    ,
+
+
+-- ** windowSetDeviceCursor
+    WindowSetDeviceCursorMethodInfo         ,
+    windowSetDeviceCursor                   ,
+
+
+-- ** windowSetDeviceEvents
+    WindowSetDeviceEventsMethodInfo         ,
+    windowSetDeviceEvents                   ,
+
+
+-- ** windowSetEventCompression
+    WindowSetEventCompressionMethodInfo     ,
+    windowSetEventCompression               ,
+
+
+-- ** windowSetEvents
+    WindowSetEventsMethodInfo               ,
+    windowSetEvents                         ,
+
+
+-- ** windowSetFocusOnMap
+    WindowSetFocusOnMapMethodInfo           ,
+    windowSetFocusOnMap                     ,
+
+
+-- ** windowSetFullscreenMode
+    WindowSetFullscreenModeMethodInfo       ,
+    windowSetFullscreenMode                 ,
+
+
+-- ** windowSetFunctions
+    WindowSetFunctionsMethodInfo            ,
+    windowSetFunctions                      ,
+
+
+-- ** windowSetGeometryHints
+    WindowSetGeometryHintsMethodInfo        ,
+    windowSetGeometryHints                  ,
+
+
+-- ** windowSetGroup
+    WindowSetGroupMethodInfo                ,
+    windowSetGroup                          ,
+
+
+-- ** windowSetIconList
+    WindowSetIconListMethodInfo             ,
+    windowSetIconList                       ,
+
+
+-- ** windowSetIconName
+    WindowSetIconNameMethodInfo             ,
+    windowSetIconName                       ,
+
+
+-- ** windowSetKeepAbove
+    WindowSetKeepAboveMethodInfo            ,
+    windowSetKeepAbove                      ,
+
+
+-- ** windowSetKeepBelow
+    WindowSetKeepBelowMethodInfo            ,
+    windowSetKeepBelow                      ,
+
+
+-- ** windowSetModalHint
+    WindowSetModalHintMethodInfo            ,
+    windowSetModalHint                      ,
+
+
+-- ** windowSetOpacity
+    WindowSetOpacityMethodInfo              ,
+    windowSetOpacity                        ,
+
+
+-- ** windowSetOpaqueRegion
+    WindowSetOpaqueRegionMethodInfo         ,
+    windowSetOpaqueRegion                   ,
+
+
+-- ** windowSetOverrideRedirect
+    WindowSetOverrideRedirectMethodInfo     ,
+    windowSetOverrideRedirect               ,
+
+
+-- ** windowSetPassThrough
+    WindowSetPassThroughMethodInfo          ,
+    windowSetPassThrough                    ,
+
+
+-- ** windowSetRole
+    WindowSetRoleMethodInfo                 ,
+    windowSetRole                           ,
+
+
+-- ** windowSetShadowWidth
+    WindowSetShadowWidthMethodInfo          ,
+    windowSetShadowWidth                    ,
+
+
+-- ** windowSetSkipPagerHint
+    WindowSetSkipPagerHintMethodInfo        ,
+    windowSetSkipPagerHint                  ,
+
+
+-- ** windowSetSkipTaskbarHint
+    WindowSetSkipTaskbarHintMethodInfo      ,
+    windowSetSkipTaskbarHint                ,
+
+
+-- ** windowSetSourceEvents
+    WindowSetSourceEventsMethodInfo         ,
+    windowSetSourceEvents                   ,
+
+
+-- ** windowSetStartupId
+    WindowSetStartupIdMethodInfo            ,
+    windowSetStartupId                      ,
+
+
+-- ** windowSetStaticGravities
+    WindowSetStaticGravitiesMethodInfo      ,
+    windowSetStaticGravities                ,
+
+
+-- ** windowSetSupportMultidevice
+    WindowSetSupportMultideviceMethodInfo   ,
+    windowSetSupportMultidevice             ,
+
+
+-- ** windowSetTitle
+    WindowSetTitleMethodInfo                ,
+    windowSetTitle                          ,
+
+
+-- ** windowSetTransientFor
+    WindowSetTransientForMethodInfo         ,
+    windowSetTransientFor                   ,
+
+
+-- ** windowSetTypeHint
+    WindowSetTypeHintMethodInfo             ,
+    windowSetTypeHint                       ,
+
+
+-- ** windowSetUrgencyHint
+    WindowSetUrgencyHintMethodInfo          ,
+    windowSetUrgencyHint                    ,
+
+
+-- ** windowSetUserData
+    WindowSetUserDataMethodInfo             ,
+    windowSetUserData                       ,
+
+
+-- ** windowShapeCombineRegion
+    WindowShapeCombineRegionMethodInfo      ,
+    windowShapeCombineRegion                ,
+
+
+-- ** windowShow
+    WindowShowMethodInfo                    ,
+    windowShow                              ,
+
+
+-- ** windowShowUnraised
+    WindowShowUnraisedMethodInfo            ,
+    windowShowUnraised                      ,
+
+
+-- ** windowShowWindowMenu
+    WindowShowWindowMenuMethodInfo          ,
+    windowShowWindowMenu                    ,
+
+
+-- ** windowStick
+    WindowStickMethodInfo                   ,
+    windowStick                             ,
+
+
+-- ** windowThawToplevelUpdatesLibgtkOnly
+    WindowThawToplevelUpdatesLibgtkOnlyMethodInfo,
+    windowThawToplevelUpdatesLibgtkOnly     ,
+
+
+-- ** windowThawUpdates
+    WindowThawUpdatesMethodInfo             ,
+    windowThawUpdates                       ,
+
+
+-- ** windowUnfullscreen
+    WindowUnfullscreenMethodInfo            ,
+    windowUnfullscreen                      ,
+
+
+-- ** windowUnmaximize
+    WindowUnmaximizeMethodInfo              ,
+    windowUnmaximize                        ,
+
+
+-- ** windowUnstick
+    WindowUnstickMethodInfo                 ,
+    windowUnstick                           ,
+
+
+-- ** windowWithdraw
+    WindowWithdrawMethodInfo                ,
+    windowWithdraw                          ,
+
+
+
+
+ -- * Properties
+-- ** Cursor
+    WindowCursorPropertyInfo                ,
+    constructWindowCursor                   ,
+    getWindowCursor                         ,
+    setWindowCursor                         ,
+
+
+
+
+ -- * Signals
+-- ** CreateSurface
+    WindowCreateSurfaceCallback             ,
+    WindowCreateSurfaceCallbackC            ,
+    WindowCreateSurfaceSignalInfo           ,
+    afterWindowCreateSurface                ,
+    mkWindowCreateSurfaceCallback           ,
+    noWindowCreateSurfaceCallback           ,
+    onWindowCreateSurface                   ,
+    windowCreateSurfaceCallbackWrapper      ,
+    windowCreateSurfaceClosure              ,
+
+
+-- ** FromEmbedder
+    WindowFromEmbedderCallback              ,
+    WindowFromEmbedderCallbackC             ,
+    WindowFromEmbedderSignalInfo            ,
+    afterWindowFromEmbedder                 ,
+    mkWindowFromEmbedderCallback            ,
+    noWindowFromEmbedderCallback            ,
+    onWindowFromEmbedder                    ,
+    windowFromEmbedderCallbackWrapper       ,
+    windowFromEmbedderClosure               ,
+
+
+-- ** PickEmbeddedChild
+    WindowPickEmbeddedChildCallback         ,
+    WindowPickEmbeddedChildCallbackC        ,
+    WindowPickEmbeddedChildSignalInfo       ,
+    afterWindowPickEmbeddedChild            ,
+    mkWindowPickEmbeddedChildCallback       ,
+    noWindowPickEmbeddedChildCallback       ,
+    onWindowPickEmbeddedChild               ,
+    windowPickEmbeddedChildCallbackWrapper  ,
+    windowPickEmbeddedChildClosure          ,
+
+
+-- ** ToEmbedder
+    WindowToEmbedderCallback                ,
+    WindowToEmbedderCallbackC               ,
+    WindowToEmbedderSignalInfo              ,
+    afterWindowToEmbedder                   ,
+    mkWindowToEmbedderCallback              ,
+    noWindowToEmbedderCallback              ,
+    onWindowToEmbedder                      ,
+    windowToEmbedderCallbackWrapper         ,
+    windowToEmbedderClosure                 ,
+
+
+
+
+    ) 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.Gdk.Types
+import GI.Gdk.Callbacks
+import qualified GI.GObject as GObject
+import qualified GI.GdkPixbuf as GdkPixbuf
+import qualified GI.Cairo as Cairo
+
+newtype Window = Window (ForeignPtr Window)
+foreign import ccall "gdk_window_get_type"
+    c_gdk_window_get_type :: IO GType
+
+type instance ParentTypes Window = WindowParentTypes
+type WindowParentTypes = '[GObject.Object]
+
+instance GObject Window where
+    gobjectIsInitiallyUnowned _ = False
+    gobjectType _ = c_gdk_window_get_type
+    
+
+class GObject o => WindowK o
+instance (GObject o, IsDescendantOf Window o) => WindowK o
+
+toWindow :: WindowK o => o -> IO Window
+toWindow = unsafeCastTo Window
+
+noWindow :: Maybe Window
+noWindow = Nothing
+
+type family ResolveWindowMethod (t :: Symbol) (o :: *) :: * where
+    ResolveWindowMethod "beep" o = WindowBeepMethodInfo
+    ResolveWindowMethod "beginMoveDrag" o = WindowBeginMoveDragMethodInfo
+    ResolveWindowMethod "beginMoveDragForDevice" o = WindowBeginMoveDragForDeviceMethodInfo
+    ResolveWindowMethod "beginPaintRect" o = WindowBeginPaintRectMethodInfo
+    ResolveWindowMethod "beginPaintRegion" o = WindowBeginPaintRegionMethodInfo
+    ResolveWindowMethod "beginResizeDrag" o = WindowBeginResizeDragMethodInfo
+    ResolveWindowMethod "beginResizeDragForDevice" o = WindowBeginResizeDragForDeviceMethodInfo
+    ResolveWindowMethod "bindProperty" o = GObject.ObjectBindPropertyMethodInfo
+    ResolveWindowMethod "bindPropertyFull" o = GObject.ObjectBindPropertyFullMethodInfo
+    ResolveWindowMethod "configureFinished" o = WindowConfigureFinishedMethodInfo
+    ResolveWindowMethod "coordsFromParent" o = WindowCoordsFromParentMethodInfo
+    ResolveWindowMethod "coordsToParent" o = WindowCoordsToParentMethodInfo
+    ResolveWindowMethod "createGlContext" o = WindowCreateGlContextMethodInfo
+    ResolveWindowMethod "createSimilarImageSurface" o = WindowCreateSimilarImageSurfaceMethodInfo
+    ResolveWindowMethod "createSimilarSurface" o = WindowCreateSimilarSurfaceMethodInfo
+    ResolveWindowMethod "deiconify" o = WindowDeiconifyMethodInfo
+    ResolveWindowMethod "destroy" o = WindowDestroyMethodInfo
+    ResolveWindowMethod "destroyNotify" o = WindowDestroyNotifyMethodInfo
+    ResolveWindowMethod "enableSynchronizedConfigure" o = WindowEnableSynchronizedConfigureMethodInfo
+    ResolveWindowMethod "endPaint" o = WindowEndPaintMethodInfo
+    ResolveWindowMethod "ensureNative" o = WindowEnsureNativeMethodInfo
+    ResolveWindowMethod "flush" o = WindowFlushMethodInfo
+    ResolveWindowMethod "focus" o = WindowFocusMethodInfo
+    ResolveWindowMethod "forceFloating" o = GObject.ObjectForceFloatingMethodInfo
+    ResolveWindowMethod "freezeNotify" o = GObject.ObjectFreezeNotifyMethodInfo
+    ResolveWindowMethod "freezeToplevelUpdatesLibgtkOnly" o = WindowFreezeToplevelUpdatesLibgtkOnlyMethodInfo
+    ResolveWindowMethod "freezeUpdates" o = WindowFreezeUpdatesMethodInfo
+    ResolveWindowMethod "fullscreen" o = WindowFullscreenMethodInfo
+    ResolveWindowMethod "fullscreenOnMonitor" o = WindowFullscreenOnMonitorMethodInfo
+    ResolveWindowMethod "geometryChanged" o = WindowGeometryChangedMethodInfo
+    ResolveWindowMethod "hasNative" o = WindowHasNativeMethodInfo
+    ResolveWindowMethod "hide" o = WindowHideMethodInfo
+    ResolveWindowMethod "iconify" o = WindowIconifyMethodInfo
+    ResolveWindowMethod "inputShapeCombineRegion" o = WindowInputShapeCombineRegionMethodInfo
+    ResolveWindowMethod "invalidateMaybeRecurse" o = WindowInvalidateMaybeRecurseMethodInfo
+    ResolveWindowMethod "invalidateRect" o = WindowInvalidateRectMethodInfo
+    ResolveWindowMethod "invalidateRegion" o = WindowInvalidateRegionMethodInfo
+    ResolveWindowMethod "isDestroyed" o = WindowIsDestroyedMethodInfo
+    ResolveWindowMethod "isFloating" o = GObject.ObjectIsFloatingMethodInfo
+    ResolveWindowMethod "isInputOnly" o = WindowIsInputOnlyMethodInfo
+    ResolveWindowMethod "isShaped" o = WindowIsShapedMethodInfo
+    ResolveWindowMethod "isViewable" o = WindowIsViewableMethodInfo
+    ResolveWindowMethod "isVisible" o = WindowIsVisibleMethodInfo
+    ResolveWindowMethod "lower" o = WindowLowerMethodInfo
+    ResolveWindowMethod "markPaintFromClip" o = WindowMarkPaintFromClipMethodInfo
+    ResolveWindowMethod "maximize" o = WindowMaximizeMethodInfo
+    ResolveWindowMethod "mergeChildInputShapes" o = WindowMergeChildInputShapesMethodInfo
+    ResolveWindowMethod "mergeChildShapes" o = WindowMergeChildShapesMethodInfo
+    ResolveWindowMethod "move" o = WindowMoveMethodInfo
+    ResolveWindowMethod "moveRegion" o = WindowMoveRegionMethodInfo
+    ResolveWindowMethod "moveResize" o = WindowMoveResizeMethodInfo
+    ResolveWindowMethod "notify" o = GObject.ObjectNotifyMethodInfo
+    ResolveWindowMethod "notifyByPspec" o = GObject.ObjectNotifyByPspecMethodInfo
+    ResolveWindowMethod "peekChildren" o = WindowPeekChildrenMethodInfo
+    ResolveWindowMethod "processUpdates" o = WindowProcessUpdatesMethodInfo
+    ResolveWindowMethod "raise" o = WindowRaiseMethodInfo
+    ResolveWindowMethod "ref" o = GObject.ObjectRefMethodInfo
+    ResolveWindowMethod "refSink" o = GObject.ObjectRefSinkMethodInfo
+    ResolveWindowMethod "registerDnd" o = WindowRegisterDndMethodInfo
+    ResolveWindowMethod "reparent" o = WindowReparentMethodInfo
+    ResolveWindowMethod "replaceData" o = GObject.ObjectReplaceDataMethodInfo
+    ResolveWindowMethod "replaceQdata" o = GObject.ObjectReplaceQdataMethodInfo
+    ResolveWindowMethod "resize" o = WindowResizeMethodInfo
+    ResolveWindowMethod "restack" o = WindowRestackMethodInfo
+    ResolveWindowMethod "runDispose" o = GObject.ObjectRunDisposeMethodInfo
+    ResolveWindowMethod "scroll" o = WindowScrollMethodInfo
+    ResolveWindowMethod "shapeCombineRegion" o = WindowShapeCombineRegionMethodInfo
+    ResolveWindowMethod "show" o = WindowShowMethodInfo
+    ResolveWindowMethod "showUnraised" o = WindowShowUnraisedMethodInfo
+    ResolveWindowMethod "showWindowMenu" o = WindowShowWindowMenuMethodInfo
+    ResolveWindowMethod "stealData" o = GObject.ObjectStealDataMethodInfo
+    ResolveWindowMethod "stealQdata" o = GObject.ObjectStealQdataMethodInfo
+    ResolveWindowMethod "stick" o = WindowStickMethodInfo
+    ResolveWindowMethod "thawNotify" o = GObject.ObjectThawNotifyMethodInfo
+    ResolveWindowMethod "thawToplevelUpdatesLibgtkOnly" o = WindowThawToplevelUpdatesLibgtkOnlyMethodInfo
+    ResolveWindowMethod "thawUpdates" o = WindowThawUpdatesMethodInfo
+    ResolveWindowMethod "unfullscreen" o = WindowUnfullscreenMethodInfo
+    ResolveWindowMethod "unmaximize" o = WindowUnmaximizeMethodInfo
+    ResolveWindowMethod "unref" o = GObject.ObjectUnrefMethodInfo
+    ResolveWindowMethod "unstick" o = WindowUnstickMethodInfo
+    ResolveWindowMethod "watchClosure" o = GObject.ObjectWatchClosureMethodInfo
+    ResolveWindowMethod "withdraw" o = WindowWithdrawMethodInfo
+    ResolveWindowMethod "getAcceptFocus" o = WindowGetAcceptFocusMethodInfo
+    ResolveWindowMethod "getBackgroundPattern" o = WindowGetBackgroundPatternMethodInfo
+    ResolveWindowMethod "getChildren" o = WindowGetChildrenMethodInfo
+    ResolveWindowMethod "getChildrenWithUserData" o = WindowGetChildrenWithUserDataMethodInfo
+    ResolveWindowMethod "getClipRegion" o = WindowGetClipRegionMethodInfo
+    ResolveWindowMethod "getComposited" o = WindowGetCompositedMethodInfo
+    ResolveWindowMethod "getCursor" o = WindowGetCursorMethodInfo
+    ResolveWindowMethod "getData" o = GObject.ObjectGetDataMethodInfo
+    ResolveWindowMethod "getDecorations" o = WindowGetDecorationsMethodInfo
+    ResolveWindowMethod "getDeviceCursor" o = WindowGetDeviceCursorMethodInfo
+    ResolveWindowMethod "getDeviceEvents" o = WindowGetDeviceEventsMethodInfo
+    ResolveWindowMethod "getDevicePosition" o = WindowGetDevicePositionMethodInfo
+    ResolveWindowMethod "getDevicePositionDouble" o = WindowGetDevicePositionDoubleMethodInfo
+    ResolveWindowMethod "getDisplay" o = WindowGetDisplayMethodInfo
+    ResolveWindowMethod "getDragProtocol" o = WindowGetDragProtocolMethodInfo
+    ResolveWindowMethod "getEffectiveParent" o = WindowGetEffectiveParentMethodInfo
+    ResolveWindowMethod "getEffectiveToplevel" o = WindowGetEffectiveToplevelMethodInfo
+    ResolveWindowMethod "getEventCompression" o = WindowGetEventCompressionMethodInfo
+    ResolveWindowMethod "getEvents" o = WindowGetEventsMethodInfo
+    ResolveWindowMethod "getFocusOnMap" o = WindowGetFocusOnMapMethodInfo
+    ResolveWindowMethod "getFrameClock" o = WindowGetFrameClockMethodInfo
+    ResolveWindowMethod "getFrameExtents" o = WindowGetFrameExtentsMethodInfo
+    ResolveWindowMethod "getFullscreenMode" o = WindowGetFullscreenModeMethodInfo
+    ResolveWindowMethod "getGeometry" o = WindowGetGeometryMethodInfo
+    ResolveWindowMethod "getGroup" o = WindowGetGroupMethodInfo
+    ResolveWindowMethod "getHeight" o = WindowGetHeightMethodInfo
+    ResolveWindowMethod "getModalHint" o = WindowGetModalHintMethodInfo
+    ResolveWindowMethod "getOrigin" o = WindowGetOriginMethodInfo
+    ResolveWindowMethod "getParent" o = WindowGetParentMethodInfo
+    ResolveWindowMethod "getPassThrough" o = WindowGetPassThroughMethodInfo
+    ResolveWindowMethod "getPointer" o = WindowGetPointerMethodInfo
+    ResolveWindowMethod "getPosition" o = WindowGetPositionMethodInfo
+    ResolveWindowMethod "getProperty" o = GObject.ObjectGetPropertyMethodInfo
+    ResolveWindowMethod "getQdata" o = GObject.ObjectGetQdataMethodInfo
+    ResolveWindowMethod "getRootCoords" o = WindowGetRootCoordsMethodInfo
+    ResolveWindowMethod "getRootOrigin" o = WindowGetRootOriginMethodInfo
+    ResolveWindowMethod "getScaleFactor" o = WindowGetScaleFactorMethodInfo
+    ResolveWindowMethod "getScreen" o = WindowGetScreenMethodInfo
+    ResolveWindowMethod "getSourceEvents" o = WindowGetSourceEventsMethodInfo
+    ResolveWindowMethod "getState" o = WindowGetStateMethodInfo
+    ResolveWindowMethod "getSupportMultidevice" o = WindowGetSupportMultideviceMethodInfo
+    ResolveWindowMethod "getToplevel" o = WindowGetToplevelMethodInfo
+    ResolveWindowMethod "getTypeHint" o = WindowGetTypeHintMethodInfo
+    ResolveWindowMethod "getUpdateArea" o = WindowGetUpdateAreaMethodInfo
+    ResolveWindowMethod "getUserData" o = WindowGetUserDataMethodInfo
+    ResolveWindowMethod "getVisibleRegion" o = WindowGetVisibleRegionMethodInfo
+    ResolveWindowMethod "getVisual" o = WindowGetVisualMethodInfo
+    ResolveWindowMethod "getWidth" o = WindowGetWidthMethodInfo
+    ResolveWindowMethod "getWindowType" o = WindowGetWindowTypeMethodInfo
+    ResolveWindowMethod "setAcceptFocus" o = WindowSetAcceptFocusMethodInfo
+    ResolveWindowMethod "setBackground" o = WindowSetBackgroundMethodInfo
+    ResolveWindowMethod "setBackgroundPattern" o = WindowSetBackgroundPatternMethodInfo
+    ResolveWindowMethod "setBackgroundRgba" o = WindowSetBackgroundRgbaMethodInfo
+    ResolveWindowMethod "setChildInputShapes" o = WindowSetChildInputShapesMethodInfo
+    ResolveWindowMethod "setChildShapes" o = WindowSetChildShapesMethodInfo
+    ResolveWindowMethod "setComposited" o = WindowSetCompositedMethodInfo
+    ResolveWindowMethod "setCursor" o = WindowSetCursorMethodInfo
+    ResolveWindowMethod "setData" o = GObject.ObjectSetDataMethodInfo
+    ResolveWindowMethod "setDecorations" o = WindowSetDecorationsMethodInfo
+    ResolveWindowMethod "setDeviceCursor" o = WindowSetDeviceCursorMethodInfo
+    ResolveWindowMethod "setDeviceEvents" o = WindowSetDeviceEventsMethodInfo
+    ResolveWindowMethod "setEventCompression" o = WindowSetEventCompressionMethodInfo
+    ResolveWindowMethod "setEvents" o = WindowSetEventsMethodInfo
+    ResolveWindowMethod "setFocusOnMap" o = WindowSetFocusOnMapMethodInfo
+    ResolveWindowMethod "setFullscreenMode" o = WindowSetFullscreenModeMethodInfo
+    ResolveWindowMethod "setFunctions" o = WindowSetFunctionsMethodInfo
+    ResolveWindowMethod "setGeometryHints" o = WindowSetGeometryHintsMethodInfo
+    ResolveWindowMethod "setGroup" o = WindowSetGroupMethodInfo
+    ResolveWindowMethod "setIconList" o = WindowSetIconListMethodInfo
+    ResolveWindowMethod "setIconName" o = WindowSetIconNameMethodInfo
+    ResolveWindowMethod "setKeepAbove" o = WindowSetKeepAboveMethodInfo
+    ResolveWindowMethod "setKeepBelow" o = WindowSetKeepBelowMethodInfo
+    ResolveWindowMethod "setModalHint" o = WindowSetModalHintMethodInfo
+    ResolveWindowMethod "setOpacity" o = WindowSetOpacityMethodInfo
+    ResolveWindowMethod "setOpaqueRegion" o = WindowSetOpaqueRegionMethodInfo
+    ResolveWindowMethod "setOverrideRedirect" o = WindowSetOverrideRedirectMethodInfo
+    ResolveWindowMethod "setPassThrough" o = WindowSetPassThroughMethodInfo
+    ResolveWindowMethod "setProperty" o = GObject.ObjectSetPropertyMethodInfo
+    ResolveWindowMethod "setRole" o = WindowSetRoleMethodInfo
+    ResolveWindowMethod "setShadowWidth" o = WindowSetShadowWidthMethodInfo
+    ResolveWindowMethod "setSkipPagerHint" o = WindowSetSkipPagerHintMethodInfo
+    ResolveWindowMethod "setSkipTaskbarHint" o = WindowSetSkipTaskbarHintMethodInfo
+    ResolveWindowMethod "setSourceEvents" o = WindowSetSourceEventsMethodInfo
+    ResolveWindowMethod "setStartupId" o = WindowSetStartupIdMethodInfo
+    ResolveWindowMethod "setStaticGravities" o = WindowSetStaticGravitiesMethodInfo
+    ResolveWindowMethod "setSupportMultidevice" o = WindowSetSupportMultideviceMethodInfo
+    ResolveWindowMethod "setTitle" o = WindowSetTitleMethodInfo
+    ResolveWindowMethod "setTransientFor" o = WindowSetTransientForMethodInfo
+    ResolveWindowMethod "setTypeHint" o = WindowSetTypeHintMethodInfo
+    ResolveWindowMethod "setUrgencyHint" o = WindowSetUrgencyHintMethodInfo
+    ResolveWindowMethod "setUserData" o = WindowSetUserDataMethodInfo
+    ResolveWindowMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveWindowMethod t Window, MethodInfo info Window p) => IsLabelProxy t (Window -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveWindowMethod t Window, MethodInfo info Window p) => IsLabel t (Window -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
+
+-- signal Window::create-surface
+type WindowCreateSurfaceCallback =
+    Int32 ->
+    Int32 ->
+    IO Cairo.Surface
+
+noWindowCreateSurfaceCallback :: Maybe WindowCreateSurfaceCallback
+noWindowCreateSurfaceCallback = Nothing
+
+type WindowCreateSurfaceCallbackC =
+    Ptr () ->                               -- object
+    Int32 ->
+    Int32 ->
+    Ptr () ->                               -- user_data
+    IO (Ptr Cairo.Surface)
+
+foreign import ccall "wrapper"
+    mkWindowCreateSurfaceCallback :: WindowCreateSurfaceCallbackC -> IO (FunPtr WindowCreateSurfaceCallbackC)
+
+windowCreateSurfaceClosure :: WindowCreateSurfaceCallback -> IO Closure
+windowCreateSurfaceClosure cb = newCClosure =<< mkWindowCreateSurfaceCallback wrapped
+    where wrapped = windowCreateSurfaceCallbackWrapper cb
+
+windowCreateSurfaceCallbackWrapper ::
+    WindowCreateSurfaceCallback ->
+    Ptr () ->
+    Int32 ->
+    Int32 ->
+    Ptr () ->
+    IO (Ptr Cairo.Surface)
+windowCreateSurfaceCallbackWrapper _cb _ width height _ = do
+    result <- _cb  width height
+    result' <- copyBoxed result
+    return result'
+
+onWindowCreateSurface :: (GObject a, MonadIO m) => a -> WindowCreateSurfaceCallback -> m SignalHandlerId
+onWindowCreateSurface obj cb = liftIO $ connectWindowCreateSurface obj cb SignalConnectBefore
+afterWindowCreateSurface :: (GObject a, MonadIO m) => a -> WindowCreateSurfaceCallback -> m SignalHandlerId
+afterWindowCreateSurface obj cb = connectWindowCreateSurface obj cb SignalConnectAfter
+
+connectWindowCreateSurface :: (GObject a, MonadIO m) =>
+                              a -> WindowCreateSurfaceCallback -> SignalConnectMode -> m SignalHandlerId
+connectWindowCreateSurface obj cb after = liftIO $ do
+    cb' <- mkWindowCreateSurfaceCallback (windowCreateSurfaceCallbackWrapper cb)
+    connectSignalFunPtr obj "create-surface" cb' after
+
+-- signal Window::from-embedder
+type WindowFromEmbedderCallback =
+    Double ->
+    Double ->
+    IO (Double,Double)
+
+noWindowFromEmbedderCallback :: Maybe WindowFromEmbedderCallback
+noWindowFromEmbedderCallback = Nothing
+
+type WindowFromEmbedderCallbackC =
+    Ptr () ->                               -- object
+    CDouble ->
+    CDouble ->
+    Ptr CDouble ->
+    Ptr CDouble ->
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkWindowFromEmbedderCallback :: WindowFromEmbedderCallbackC -> IO (FunPtr WindowFromEmbedderCallbackC)
+
+windowFromEmbedderClosure :: WindowFromEmbedderCallback -> IO Closure
+windowFromEmbedderClosure cb = newCClosure =<< mkWindowFromEmbedderCallback wrapped
+    where wrapped = windowFromEmbedderCallbackWrapper cb
+
+windowFromEmbedderCallbackWrapper ::
+    WindowFromEmbedderCallback ->
+    Ptr () ->
+    CDouble ->
+    CDouble ->
+    Ptr CDouble ->
+    Ptr CDouble ->
+    Ptr () ->
+    IO ()
+windowFromEmbedderCallbackWrapper _cb _ embedderX embedderY offscreenX offscreenY _ = do
+    let embedderX' = realToFrac embedderX
+    let embedderY' = realToFrac embedderY
+    (outoffscreenX, outoffscreenY) <- _cb  embedderX' embedderY'
+    let outoffscreenX' = realToFrac outoffscreenX
+    poke offscreenX outoffscreenX'
+    let outoffscreenY' = realToFrac outoffscreenY
+    poke offscreenY outoffscreenY'
+
+onWindowFromEmbedder :: (GObject a, MonadIO m) => a -> WindowFromEmbedderCallback -> m SignalHandlerId
+onWindowFromEmbedder obj cb = liftIO $ connectWindowFromEmbedder obj cb SignalConnectBefore
+afterWindowFromEmbedder :: (GObject a, MonadIO m) => a -> WindowFromEmbedderCallback -> m SignalHandlerId
+afterWindowFromEmbedder obj cb = connectWindowFromEmbedder obj cb SignalConnectAfter
+
+connectWindowFromEmbedder :: (GObject a, MonadIO m) =>
+                             a -> WindowFromEmbedderCallback -> SignalConnectMode -> m SignalHandlerId
+connectWindowFromEmbedder obj cb after = liftIO $ do
+    cb' <- mkWindowFromEmbedderCallback (windowFromEmbedderCallbackWrapper cb)
+    connectSignalFunPtr obj "from-embedder" cb' after
+
+-- signal Window::pick-embedded-child
+type WindowPickEmbeddedChildCallback =
+    Double ->
+    Double ->
+    IO Window
+
+noWindowPickEmbeddedChildCallback :: Maybe WindowPickEmbeddedChildCallback
+noWindowPickEmbeddedChildCallback = Nothing
+
+type WindowPickEmbeddedChildCallbackC =
+    Ptr () ->                               -- object
+    CDouble ->
+    CDouble ->
+    Ptr () ->                               -- user_data
+    IO (Ptr Window)
+
+foreign import ccall "wrapper"
+    mkWindowPickEmbeddedChildCallback :: WindowPickEmbeddedChildCallbackC -> IO (FunPtr WindowPickEmbeddedChildCallbackC)
+
+windowPickEmbeddedChildClosure :: WindowPickEmbeddedChildCallback -> IO Closure
+windowPickEmbeddedChildClosure cb = newCClosure =<< mkWindowPickEmbeddedChildCallback wrapped
+    where wrapped = windowPickEmbeddedChildCallbackWrapper cb
+
+windowPickEmbeddedChildCallbackWrapper ::
+    WindowPickEmbeddedChildCallback ->
+    Ptr () ->
+    CDouble ->
+    CDouble ->
+    Ptr () ->
+    IO (Ptr Window)
+windowPickEmbeddedChildCallbackWrapper _cb _ x y _ = do
+    let x' = realToFrac x
+    let y' = realToFrac y
+    result <- _cb  x' y'
+    let result' = unsafeManagedPtrCastPtr result
+    return result'
+
+onWindowPickEmbeddedChild :: (GObject a, MonadIO m) => a -> WindowPickEmbeddedChildCallback -> m SignalHandlerId
+onWindowPickEmbeddedChild obj cb = liftIO $ connectWindowPickEmbeddedChild obj cb SignalConnectBefore
+afterWindowPickEmbeddedChild :: (GObject a, MonadIO m) => a -> WindowPickEmbeddedChildCallback -> m SignalHandlerId
+afterWindowPickEmbeddedChild obj cb = connectWindowPickEmbeddedChild obj cb SignalConnectAfter
+
+connectWindowPickEmbeddedChild :: (GObject a, MonadIO m) =>
+                                  a -> WindowPickEmbeddedChildCallback -> SignalConnectMode -> m SignalHandlerId
+connectWindowPickEmbeddedChild obj cb after = liftIO $ do
+    cb' <- mkWindowPickEmbeddedChildCallback (windowPickEmbeddedChildCallbackWrapper cb)
+    connectSignalFunPtr obj "pick-embedded-child" cb' after
+
+-- signal Window::to-embedder
+type WindowToEmbedderCallback =
+    Double ->
+    Double ->
+    IO (Double,Double)
+
+noWindowToEmbedderCallback :: Maybe WindowToEmbedderCallback
+noWindowToEmbedderCallback = Nothing
+
+type WindowToEmbedderCallbackC =
+    Ptr () ->                               -- object
+    CDouble ->
+    CDouble ->
+    Ptr CDouble ->
+    Ptr CDouble ->
+    Ptr () ->                               -- user_data
+    IO ()
+
+foreign import ccall "wrapper"
+    mkWindowToEmbedderCallback :: WindowToEmbedderCallbackC -> IO (FunPtr WindowToEmbedderCallbackC)
+
+windowToEmbedderClosure :: WindowToEmbedderCallback -> IO Closure
+windowToEmbedderClosure cb = newCClosure =<< mkWindowToEmbedderCallback wrapped
+    where wrapped = windowToEmbedderCallbackWrapper cb
+
+windowToEmbedderCallbackWrapper ::
+    WindowToEmbedderCallback ->
+    Ptr () ->
+    CDouble ->
+    CDouble ->
+    Ptr CDouble ->
+    Ptr CDouble ->
+    Ptr () ->
+    IO ()
+windowToEmbedderCallbackWrapper _cb _ offscreenX offscreenY embedderX embedderY _ = do
+    let offscreenX' = realToFrac offscreenX
+    let offscreenY' = realToFrac offscreenY
+    (outembedderX, outembedderY) <- _cb  offscreenX' offscreenY'
+    let outembedderX' = realToFrac outembedderX
+    poke embedderX outembedderX'
+    let outembedderY' = realToFrac outembedderY
+    poke embedderY outembedderY'
+
+onWindowToEmbedder :: (GObject a, MonadIO m) => a -> WindowToEmbedderCallback -> m SignalHandlerId
+onWindowToEmbedder obj cb = liftIO $ connectWindowToEmbedder obj cb SignalConnectBefore
+afterWindowToEmbedder :: (GObject a, MonadIO m) => a -> WindowToEmbedderCallback -> m SignalHandlerId
+afterWindowToEmbedder obj cb = connectWindowToEmbedder obj cb SignalConnectAfter
+
+connectWindowToEmbedder :: (GObject a, MonadIO m) =>
+                           a -> WindowToEmbedderCallback -> SignalConnectMode -> m SignalHandlerId
+connectWindowToEmbedder obj cb after = liftIO $ do
+    cb' <- mkWindowToEmbedderCallback (windowToEmbedderCallbackWrapper cb)
+    connectSignalFunPtr obj "to-embedder" cb' after
+
+-- VVV Prop "cursor"
+   -- Type: TInterface "Gdk" "Cursor"
+   -- Flags: [PropertyReadable,PropertyWritable]
+
+getWindowCursor :: (MonadIO m, WindowK o) => o -> m Cursor
+getWindowCursor obj = liftIO $ getObjectPropertyObject obj "cursor" Cursor
+
+setWindowCursor :: (MonadIO m, WindowK o, CursorK a) => o -> a -> m ()
+setWindowCursor obj val = liftIO $ setObjectPropertyObject obj "cursor" val
+
+constructWindowCursor :: (CursorK a) => a -> IO ([Char], GValue)
+constructWindowCursor val = constructObjectPropertyObject "cursor" val
+
+data WindowCursorPropertyInfo
+instance AttrInfo WindowCursorPropertyInfo where
+    type AttrAllowedOps WindowCursorPropertyInfo = '[ 'AttrSet, 'AttrConstruct, 'AttrGet]
+    type AttrSetTypeConstraint WindowCursorPropertyInfo = CursorK
+    type AttrBaseTypeConstraint WindowCursorPropertyInfo = WindowK
+    type AttrGetType WindowCursorPropertyInfo = Cursor
+    type AttrLabel WindowCursorPropertyInfo = "cursor"
+    attrGet _ = getWindowCursor
+    attrSet _ = setWindowCursor
+    attrConstruct _ = constructWindowCursor
+
+type instance AttributeList Window = WindowAttributeList
+type WindowAttributeList = ('[ '("cursor", WindowCursorPropertyInfo)] :: [(Symbol, *)])
+
+data WindowCreateSurfaceSignalInfo
+instance SignalInfo WindowCreateSurfaceSignalInfo where
+    type HaskellCallbackType WindowCreateSurfaceSignalInfo = WindowCreateSurfaceCallback
+    connectSignal _ = connectWindowCreateSurface
+
+data WindowFromEmbedderSignalInfo
+instance SignalInfo WindowFromEmbedderSignalInfo where
+    type HaskellCallbackType WindowFromEmbedderSignalInfo = WindowFromEmbedderCallback
+    connectSignal _ = connectWindowFromEmbedder
+
+data WindowPickEmbeddedChildSignalInfo
+instance SignalInfo WindowPickEmbeddedChildSignalInfo where
+    type HaskellCallbackType WindowPickEmbeddedChildSignalInfo = WindowPickEmbeddedChildCallback
+    connectSignal _ = connectWindowPickEmbeddedChild
+
+data WindowToEmbedderSignalInfo
+instance SignalInfo WindowToEmbedderSignalInfo where
+    type HaskellCallbackType WindowToEmbedderSignalInfo = WindowToEmbedderCallback
+    connectSignal _ = connectWindowToEmbedder
+
+type instance SignalList Window = WindowSignalList
+type WindowSignalList = ('[ '("createSurface", WindowCreateSurfaceSignalInfo), '("fromEmbedder", WindowFromEmbedderSignalInfo), '("notify", GObject.ObjectNotifySignalInfo), '("pickEmbeddedChild", WindowPickEmbeddedChildSignalInfo), '("toEmbedder", WindowToEmbedderSignalInfo)] :: [(Symbol, *)])
+
+-- method Window::new
+-- method type : Constructor
+-- Args : [Arg {argCName = "parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attributes", argType = TInterface "Gdk" "WindowAttr", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "attributes_mask", argType = TInterface "Gdk" "WindowAttributesType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_new" gdk_window_new :: 
+    Ptr Window ->                           -- parent : TInterface "Gdk" "Window"
+    Ptr WindowAttr ->                       -- attributes : TInterface "Gdk" "WindowAttr"
+    CUInt ->                                -- attributes_mask : TInterface "Gdk" "WindowAttributesType"
+    IO (Ptr Window)
+
+
+windowNew ::
+    (MonadIO m, WindowK a) =>
+    Maybe (a)                               -- parent
+    -> WindowAttr                           -- attributes
+    -> [WindowAttributesType]               -- attributesMask
+    -> m Window                             -- result
+windowNew parent attributes attributesMask = liftIO $ do
+    maybeParent <- case parent of
+        Nothing -> return nullPtr
+        Just jParent -> do
+            let jParent' = unsafeManagedPtrCastPtr jParent
+            return jParent'
+    let attributes' = unsafeManagedPtrGetPtr attributes
+    let attributesMask' = gflagsToWord attributesMask
+    result <- gdk_window_new maybeParent attributes' attributesMask'
+    checkUnexpectedReturnNULL "gdk_window_new" result
+    result' <- (wrapObject Window) result
+    whenJust parent touchManagedPtr
+    touchManagedPtr attributes
+    return result'
+
+-- method Window::beep
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_beep" gdk_window_beep :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowBeep ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowBeep _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_beep _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowBeepMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowBeepMethodInfo a signature where
+    overloadedMethod _ = windowBeep
+
+-- method Window::begin_move_drag
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timestamp", 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 "gdk_window_begin_move_drag" gdk_window_begin_move_drag :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- button : TBasicType TInt32
+    Int32 ->                                -- root_x : TBasicType TInt32
+    Int32 ->                                -- root_y : TBasicType TInt32
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+windowBeginMoveDrag ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Int32                                -- button
+    -> Int32                                -- rootX
+    -> Int32                                -- rootY
+    -> Word32                               -- timestamp
+    -> m ()                                 -- result
+windowBeginMoveDrag _obj button rootX rootY timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_begin_move_drag _obj' button rootX rootY timestamp
+    touchManagedPtr _obj
+    return ()
+
+data WindowBeginMoveDragMethodInfo
+instance (signature ~ (Int32 -> Int32 -> Int32 -> Word32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowBeginMoveDragMethodInfo a signature where
+    overloadedMethod _ = windowBeginMoveDrag
+
+-- method Window::begin_move_drag_for_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timestamp", 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 "gdk_window_begin_move_drag_for_device" gdk_window_begin_move_drag_for_device :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Int32 ->                                -- button : TBasicType TInt32
+    Int32 ->                                -- root_x : TBasicType TInt32
+    Int32 ->                                -- root_y : TBasicType TInt32
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+windowBeginMoveDragForDevice ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a                                       -- _obj
+    -> b                                    -- device
+    -> Int32                                -- button
+    -> Int32                                -- rootX
+    -> Int32                                -- rootY
+    -> Word32                               -- timestamp
+    -> m ()                                 -- result
+windowBeginMoveDragForDevice _obj device button rootX rootY timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    gdk_window_begin_move_drag_for_device _obj' device' button rootX rootY timestamp
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return ()
+
+data WindowBeginMoveDragForDeviceMethodInfo
+instance (signature ~ (b -> Int32 -> Int32 -> Int32 -> Word32 -> m ()), MonadIO m, WindowK a, DeviceK b) => MethodInfo WindowBeginMoveDragForDeviceMethodInfo a signature where
+    overloadedMethod _ = windowBeginMoveDragForDevice
+
+-- method Window::begin_paint_rect
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rectangle", argType = TInterface "Gdk" "Rectangle", 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 "gdk_window_begin_paint_rect" gdk_window_begin_paint_rect :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Rectangle ->                        -- rectangle : TInterface "Gdk" "Rectangle"
+    IO ()
+
+
+windowBeginPaintRect ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Rectangle                            -- rectangle
+    -> m ()                                 -- result
+windowBeginPaintRect _obj rectangle = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let rectangle' = unsafeManagedPtrGetPtr rectangle
+    gdk_window_begin_paint_rect _obj' rectangle'
+    touchManagedPtr _obj
+    touchManagedPtr rectangle
+    return ()
+
+data WindowBeginPaintRectMethodInfo
+instance (signature ~ (Rectangle -> m ()), MonadIO m, WindowK a) => MethodInfo WindowBeginPaintRectMethodInfo a signature where
+    overloadedMethod _ = windowBeginPaintRect
+
+-- method Window::begin_paint_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "region", argType = TInterface "cairo" "Region", 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 "gdk_window_begin_paint_region" gdk_window_begin_paint_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    IO ()
+
+
+windowBeginPaintRegion ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Cairo.Region                         -- region
+    -> m ()                                 -- result
+windowBeginPaintRegion _obj region = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let region' = unsafeManagedPtrGetPtr region
+    gdk_window_begin_paint_region _obj' region'
+    touchManagedPtr _obj
+    touchManagedPtr region
+    return ()
+
+data WindowBeginPaintRegionMethodInfo
+instance (signature ~ (Cairo.Region -> m ()), MonadIO m, WindowK a) => MethodInfo WindowBeginPaintRegionMethodInfo a signature where
+    overloadedMethod _ = windowBeginPaintRegion
+
+-- method Window::begin_resize_drag
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timestamp", 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 "gdk_window_begin_resize_drag" gdk_window_begin_resize_drag :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- edge : TInterface "Gdk" "WindowEdge"
+    Int32 ->                                -- button : TBasicType TInt32
+    Int32 ->                                -- root_x : TBasicType TInt32
+    Int32 ->                                -- root_y : TBasicType TInt32
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+windowBeginResizeDrag ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> WindowEdge                           -- edge
+    -> Int32                                -- button
+    -> Int32                                -- rootX
+    -> Int32                                -- rootY
+    -> Word32                               -- timestamp
+    -> m ()                                 -- result
+windowBeginResizeDrag _obj edge button rootX rootY timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let edge' = (fromIntegral . fromEnum) edge
+    gdk_window_begin_resize_drag _obj' edge' button rootX rootY timestamp
+    touchManagedPtr _obj
+    return ()
+
+data WindowBeginResizeDragMethodInfo
+instance (signature ~ (WindowEdge -> Int32 -> Int32 -> Int32 -> Word32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowBeginResizeDragMethodInfo a signature where
+    overloadedMethod _ = windowBeginResizeDrag
+
+-- method Window::begin_resize_drag_for_device
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "edge", argType = TInterface "Gdk" "WindowEdge", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "button", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root_y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timestamp", 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 "gdk_window_begin_resize_drag_for_device" gdk_window_begin_resize_drag_for_device :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- edge : TInterface "Gdk" "WindowEdge"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Int32 ->                                -- button : TBasicType TInt32
+    Int32 ->                                -- root_x : TBasicType TInt32
+    Int32 ->                                -- root_y : TBasicType TInt32
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+windowBeginResizeDragForDevice ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a                                       -- _obj
+    -> WindowEdge                           -- edge
+    -> b                                    -- device
+    -> Int32                                -- button
+    -> Int32                                -- rootX
+    -> Int32                                -- rootY
+    -> Word32                               -- timestamp
+    -> m ()                                 -- result
+windowBeginResizeDragForDevice _obj edge device button rootX rootY timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let edge' = (fromIntegral . fromEnum) edge
+    let device' = unsafeManagedPtrCastPtr device
+    gdk_window_begin_resize_drag_for_device _obj' edge' device' button rootX rootY timestamp
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return ()
+
+data WindowBeginResizeDragForDeviceMethodInfo
+instance (signature ~ (WindowEdge -> b -> Int32 -> Int32 -> Int32 -> Word32 -> m ()), MonadIO m, WindowK a, DeviceK b) => MethodInfo WindowBeginResizeDragForDeviceMethodInfo a signature where
+    overloadedMethod _ = windowBeginResizeDragForDevice
+
+-- method Window::configure_finished
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_configure_finished" gdk_window_configure_finished :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+{-# DEPRECATED windowConfigureFinished ["(Since version 3.8)","this function is no longer needed"]#-}
+windowConfigureFinished ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowConfigureFinished _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_configure_finished _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowConfigureFinishedMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowConfigureFinishedMethodInfo a signature where
+    overloadedMethod _ = windowConfigureFinished
+
+-- method Window::coords_from_parent
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent_x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent_y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_coords_from_parent" gdk_window_coords_from_parent :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CDouble ->                              -- parent_x : TBasicType TDouble
+    CDouble ->                              -- parent_y : TBasicType TDouble
+    Ptr CDouble ->                          -- x : TBasicType TDouble
+    Ptr CDouble ->                          -- y : TBasicType TDouble
+    IO ()
+
+
+windowCoordsFromParent ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Double                               -- parentX
+    -> Double                               -- parentY
+    -> m (Double,Double)                    -- result
+windowCoordsFromParent _obj parentX parentY = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let parentX' = realToFrac parentX
+    let parentY' = realToFrac parentY
+    x <- allocMem :: IO (Ptr CDouble)
+    y <- allocMem :: IO (Ptr CDouble)
+    gdk_window_coords_from_parent _obj' parentX' parentY' x y
+    x' <- peek x
+    let x'' = realToFrac x'
+    y' <- peek y
+    let y'' = realToFrac y'
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    return (x'', y'')
+
+data WindowCoordsFromParentMethodInfo
+instance (signature ~ (Double -> Double -> m (Double,Double)), MonadIO m, WindowK a) => MethodInfo WindowCoordsFromParentMethodInfo a signature where
+    overloadedMethod _ = windowCoordsFromParent
+
+-- method Window::coords_to_parent
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "parent_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_coords_to_parent" gdk_window_coords_to_parent :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CDouble ->                              -- x : TBasicType TDouble
+    CDouble ->                              -- y : TBasicType TDouble
+    Ptr CDouble ->                          -- parent_x : TBasicType TDouble
+    Ptr CDouble ->                          -- parent_y : TBasicType TDouble
+    IO ()
+
+
+windowCoordsToParent ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Double                               -- x
+    -> Double                               -- y
+    -> m (Double,Double)                    -- result
+windowCoordsToParent _obj x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let x' = realToFrac x
+    let y' = realToFrac y
+    parentX <- allocMem :: IO (Ptr CDouble)
+    parentY <- allocMem :: IO (Ptr CDouble)
+    gdk_window_coords_to_parent _obj' x' y' parentX parentY
+    parentX' <- peek parentX
+    let parentX'' = realToFrac parentX'
+    parentY' <- peek parentY
+    let parentY'' = realToFrac parentY'
+    touchManagedPtr _obj
+    freeMem parentX
+    freeMem parentY
+    return (parentX'', parentY'')
+
+data WindowCoordsToParentMethodInfo
+instance (signature ~ (Double -> Double -> m (Double,Double)), MonadIO m, WindowK a) => MethodInfo WindowCoordsToParentMethodInfo a signature where
+    overloadedMethod _ = windowCoordsToParent
+
+-- method Window::create_gl_context
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "GLContext"
+-- throws : True
+-- Skip return : False
+
+foreign import ccall "gdk_window_create_gl_context" gdk_window_create_gl_context :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr (Ptr GError) ->                     -- error
+    IO (Ptr GLContext)
+
+
+windowCreateGlContext ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m GLContext                          -- result
+windowCreateGlContext _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    onException (do
+        result <- propagateGError $ gdk_window_create_gl_context _obj'
+        checkUnexpectedReturnNULL "gdk_window_create_gl_context" result
+        result' <- (wrapObject GLContext) result
+        touchManagedPtr _obj
+        return result'
+     ) (do
+        return ()
+     )
+
+data WindowCreateGlContextMethodInfo
+instance (signature ~ (m GLContext), MonadIO m, WindowK a) => MethodInfo WindowCreateGlContextMethodInfo a signature where
+    overloadedMethod _ = windowCreateGlContext
+
+-- method Window::create_similar_image_surface
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "format", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "scale", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "cairo" "Surface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_create_similar_image_surface" gdk_window_create_similar_image_surface :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- format : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    Int32 ->                                -- scale : TBasicType TInt32
+    IO (Ptr Cairo.Surface)
+
+
+windowCreateSimilarImageSurface ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Int32                                -- format
+    -> Int32                                -- width
+    -> Int32                                -- height
+    -> Int32                                -- scale
+    -> m Cairo.Surface                      -- result
+windowCreateSimilarImageSurface _obj format width height scale = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_create_similar_image_surface _obj' format width height scale
+    checkUnexpectedReturnNULL "gdk_window_create_similar_image_surface" result
+    result' <- (wrapBoxed Cairo.Surface) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowCreateSimilarImageSurfaceMethodInfo
+instance (signature ~ (Int32 -> Int32 -> Int32 -> Int32 -> m Cairo.Surface), MonadIO m, WindowK a) => MethodInfo WindowCreateSimilarImageSurfaceMethodInfo a signature where
+    overloadedMethod _ = windowCreateSimilarImageSurface
+
+-- method Window::create_similar_surface
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "content", argType = TInterface "cairo" "Content", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "cairo" "Surface"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_create_similar_surface" gdk_window_create_similar_surface :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- content : TInterface "cairo" "Content"
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO (Ptr Cairo.Surface)
+
+
+windowCreateSimilarSurface ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Cairo.Content                        -- content
+    -> Int32                                -- width
+    -> Int32                                -- height
+    -> m Cairo.Surface                      -- result
+windowCreateSimilarSurface _obj content width height = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let content' = (fromIntegral . fromEnum) content
+    result <- gdk_window_create_similar_surface _obj' content' width height
+    checkUnexpectedReturnNULL "gdk_window_create_similar_surface" result
+    result' <- (wrapBoxed Cairo.Surface) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowCreateSimilarSurfaceMethodInfo
+instance (signature ~ (Cairo.Content -> Int32 -> Int32 -> m Cairo.Surface), MonadIO m, WindowK a) => MethodInfo WindowCreateSimilarSurfaceMethodInfo a signature where
+    overloadedMethod _ = windowCreateSimilarSurface
+
+-- method Window::deiconify
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_deiconify" gdk_window_deiconify :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowDeiconify ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowDeiconify _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_deiconify _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowDeiconifyMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowDeiconifyMethodInfo a signature where
+    overloadedMethod _ = windowDeiconify
+
+-- method Window::destroy
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_destroy" gdk_window_destroy :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowDestroy ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowDestroy _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_destroy _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowDestroyMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowDestroyMethodInfo a signature where
+    overloadedMethod _ = windowDestroy
+
+-- method Window::destroy_notify
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_destroy_notify" gdk_window_destroy_notify :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowDestroyNotify ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowDestroyNotify _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_destroy_notify _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowDestroyNotifyMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowDestroyNotifyMethodInfo a signature where
+    overloadedMethod _ = windowDestroyNotify
+
+-- method Window::enable_synchronized_configure
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_enable_synchronized_configure" gdk_window_enable_synchronized_configure :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+{-# DEPRECATED windowEnableSynchronizedConfigure ["(Since version 3.8)","this function is no longer needed"]#-}
+windowEnableSynchronizedConfigure ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowEnableSynchronizedConfigure _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_enable_synchronized_configure _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowEnableSynchronizedConfigureMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowEnableSynchronizedConfigureMethodInfo a signature where
+    overloadedMethod _ = windowEnableSynchronizedConfigure
+
+-- method Window::end_paint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_end_paint" gdk_window_end_paint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowEndPaint ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowEndPaint _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_end_paint _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowEndPaintMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowEndPaintMethodInfo a signature where
+    overloadedMethod _ = windowEndPaint
+
+-- method Window::ensure_native
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_ensure_native" gdk_window_ensure_native :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowEnsureNative ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowEnsureNative _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_ensure_native _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowEnsureNativeMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowEnsureNativeMethodInfo a signature where
+    overloadedMethod _ = windowEnsureNative
+
+-- method Window::flush
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_flush" gdk_window_flush :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+{-# DEPRECATED windowFlush ["(Since version 3.14)"]#-}
+windowFlush ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowFlush _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_flush _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowFlushMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowFlushMethodInfo a signature where
+    overloadedMethod _ = windowFlush
+
+-- method Window::focus
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "timestamp", 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 "gdk_window_focus" gdk_window_focus :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Word32 ->                               -- timestamp : TBasicType TUInt32
+    IO ()
+
+
+windowFocus ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Word32                               -- timestamp
+    -> m ()                                 -- result
+windowFocus _obj timestamp = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_focus _obj' timestamp
+    touchManagedPtr _obj
+    return ()
+
+data WindowFocusMethodInfo
+instance (signature ~ (Word32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowFocusMethodInfo a signature where
+    overloadedMethod _ = windowFocus
+
+-- method Window::freeze_toplevel_updates_libgtk_only
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_freeze_toplevel_updates_libgtk_only" gdk_window_freeze_toplevel_updates_libgtk_only :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+{-# DEPRECATED windowFreezeToplevelUpdatesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside of GTK+"]#-}
+windowFreezeToplevelUpdatesLibgtkOnly ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowFreezeToplevelUpdatesLibgtkOnly _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_freeze_toplevel_updates_libgtk_only _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowFreezeToplevelUpdatesLibgtkOnlyMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowFreezeToplevelUpdatesLibgtkOnlyMethodInfo a signature where
+    overloadedMethod _ = windowFreezeToplevelUpdatesLibgtkOnly
+
+-- method Window::freeze_updates
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_freeze_updates" gdk_window_freeze_updates :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowFreezeUpdates ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowFreezeUpdates _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_freeze_updates _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowFreezeUpdatesMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowFreezeUpdatesMethodInfo a signature where
+    overloadedMethod _ = windowFreezeUpdates
+
+-- method Window::fullscreen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_fullscreen" gdk_window_fullscreen :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowFullscreen ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowFullscreen _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_fullscreen _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowFullscreenMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowFullscreenMethodInfo a signature where
+    overloadedMethod _ = windowFullscreen
+
+-- method Window::fullscreen_on_monitor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "monitor", 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 "gdk_window_fullscreen_on_monitor" gdk_window_fullscreen_on_monitor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- monitor : TBasicType TInt32
+    IO ()
+
+
+windowFullscreenOnMonitor ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Int32                                -- monitor
+    -> m ()                                 -- result
+windowFullscreenOnMonitor _obj monitor = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_fullscreen_on_monitor _obj' monitor
+    touchManagedPtr _obj
+    return ()
+
+data WindowFullscreenOnMonitorMethodInfo
+instance (signature ~ (Int32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowFullscreenOnMonitorMethodInfo a signature where
+    overloadedMethod _ = windowFullscreenOnMonitor
+
+-- method Window::geometry_changed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_geometry_changed" gdk_window_geometry_changed :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowGeometryChanged ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowGeometryChanged _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_geometry_changed _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowGeometryChangedMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowGeometryChangedMethodInfo a signature where
+    overloadedMethod _ = windowGeometryChanged
+
+-- method Window::get_accept_focus
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_get_accept_focus" gdk_window_get_accept_focus :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetAcceptFocus ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowGetAcceptFocus _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_accept_focus _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetAcceptFocusMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowGetAcceptFocusMethodInfo a signature where
+    overloadedMethod _ = windowGetAcceptFocus
+
+-- method Window::get_background_pattern
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "cairo" "Pattern"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_background_pattern" gdk_window_get_background_pattern :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Pattern)
+
+
+windowGetBackgroundPattern ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Cairo.Pattern                      -- result
+windowGetBackgroundPattern _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_background_pattern _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_background_pattern" result
+    result' <- (newBoxed Cairo.Pattern) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetBackgroundPatternMethodInfo
+instance (signature ~ (m Cairo.Pattern), MonadIO m, WindowK a) => MethodInfo WindowGetBackgroundPatternMethodInfo a signature where
+    overloadedMethod _ = windowGetBackgroundPattern
+
+-- method Window::get_children
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TGList (TInterface "Gdk" "Window")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_children" gdk_window_get_children :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr (GList (Ptr Window)))
+
+
+windowGetChildren ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m [Window]                           -- result
+windowGetChildren _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_children _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_children" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Window) result'
+    g_list_free result
+    touchManagedPtr _obj
+    return result''
+
+data WindowGetChildrenMethodInfo
+instance (signature ~ (m [Window]), MonadIO m, WindowK a) => MethodInfo WindowGetChildrenMethodInfo a signature where
+    overloadedMethod _ = windowGetChildren
+
+-- method Window::get_children_with_user_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TGList (TInterface "Gdk" "Window")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_children_with_user_data" gdk_window_get_children_with_user_data :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    IO (Ptr (GList (Ptr Window)))
+
+
+windowGetChildrenWithUserData ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Ptr ()                               -- userData
+    -> m [Window]                           -- result
+windowGetChildrenWithUserData _obj userData = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_children_with_user_data _obj' userData
+    checkUnexpectedReturnNULL "gdk_window_get_children_with_user_data" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Window) result'
+    g_list_free result
+    touchManagedPtr _obj
+    return result''
+
+data WindowGetChildrenWithUserDataMethodInfo
+instance (signature ~ (Ptr () -> m [Window]), MonadIO m, WindowK a) => MethodInfo WindowGetChildrenWithUserDataMethodInfo a signature where
+    overloadedMethod _ = windowGetChildrenWithUserData
+
+-- method Window::get_clip_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "cairo" "Region"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_clip_region" gdk_window_get_clip_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Region)
+
+
+windowGetClipRegion ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Cairo.Region                       -- result
+windowGetClipRegion _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_clip_region _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_clip_region" result
+    result' <- (wrapBoxed Cairo.Region) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetClipRegionMethodInfo
+instance (signature ~ (m Cairo.Region), MonadIO m, WindowK a) => MethodInfo WindowGetClipRegionMethodInfo a signature where
+    overloadedMethod _ = windowGetClipRegion
+
+-- method Window::get_composited
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_get_composited" gdk_window_get_composited :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+{-# DEPRECATED windowGetComposited ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
+windowGetComposited ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowGetComposited _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_composited _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetCompositedMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowGetCompositedMethodInfo a signature where
+    overloadedMethod _ = windowGetComposited
+
+-- method Window::get_cursor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Cursor"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_cursor" gdk_window_get_cursor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Cursor)
+
+
+windowGetCursor ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Cursor                             -- result
+windowGetCursor _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_cursor _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_cursor" result
+    result' <- (newObject Cursor) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetCursorMethodInfo
+instance (signature ~ (m Cursor), MonadIO m, WindowK a) => MethodInfo WindowGetCursorMethodInfo a signature where
+    overloadedMethod _ = windowGetCursor
+
+-- method Window::get_decorations
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "decorations", argType = TInterface "Gdk" "WMDecoration", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_decorations" gdk_window_get_decorations :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr CUInt ->                            -- decorations : TInterface "Gdk" "WMDecoration"
+    IO CInt
+
+
+windowGetDecorations ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m (Bool,[WMDecoration])              -- result
+windowGetDecorations _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    decorations <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_window_get_decorations _obj' decorations
+    let result' = (/= 0) result
+    decorations' <- peek decorations
+    let decorations'' = wordToGFlags decorations'
+    touchManagedPtr _obj
+    freeMem decorations
+    return (result', decorations'')
+
+data WindowGetDecorationsMethodInfo
+instance (signature ~ (m (Bool,[WMDecoration])), MonadIO m, WindowK a) => MethodInfo WindowGetDecorationsMethodInfo a signature where
+    overloadedMethod _ = windowGetDecorations
+
+-- method Window::get_device_cursor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Cursor"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_device_cursor" gdk_window_get_device_cursor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    IO (Ptr Cursor)
+
+
+windowGetDeviceCursor ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a                                       -- _obj
+    -> b                                    -- device
+    -> m Cursor                             -- result
+windowGetDeviceCursor _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    result <- gdk_window_get_device_cursor _obj' device'
+    checkUnexpectedReturnNULL "gdk_window_get_device_cursor" result
+    result' <- (newObject Cursor) result
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return result'
+
+data WindowGetDeviceCursorMethodInfo
+instance (signature ~ (b -> m Cursor), MonadIO m, WindowK a, DeviceK b) => MethodInfo WindowGetDeviceCursorMethodInfo a signature where
+    overloadedMethod _ = windowGetDeviceCursor
+
+-- method Window::get_device_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "EventMask"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_device_events" gdk_window_get_device_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    IO CUInt
+
+
+windowGetDeviceEvents ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a                                       -- _obj
+    -> b                                    -- device
+    -> m [EventMask]                        -- result
+windowGetDeviceEvents _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    result <- gdk_window_get_device_events _obj' device'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return result'
+
+data WindowGetDeviceEventsMethodInfo
+instance (signature ~ (b -> m [EventMask]), MonadIO m, WindowK a, DeviceK b) => MethodInfo WindowGetDeviceEventsMethodInfo a signature where
+    overloadedMethod _ = windowGetDeviceEvents
+
+-- method Window::get_device_position
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_device_position" gdk_window_get_device_position :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
+    IO (Ptr Window)
+
+
+windowGetDevicePosition ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a                                       -- _obj
+    -> b                                    -- device
+    -> m (Window,Int32,Int32,[ModifierType])-- result
+windowGetDevicePosition _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    mask <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_window_get_device_position _obj' device' x y mask
+    checkUnexpectedReturnNULL "gdk_window_get_device_position" result
+    result' <- (newObject Window) result
+    x' <- peek x
+    y' <- peek y
+    mask' <- peek mask
+    let mask'' = wordToGFlags mask'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    freeMem x
+    freeMem y
+    freeMem mask
+    return (result', x', y', mask'')
+
+data WindowGetDevicePositionMethodInfo
+instance (signature ~ (b -> m (Window,Int32,Int32,[ModifierType])), MonadIO m, WindowK a, DeviceK b) => MethodInfo WindowGetDevicePositionMethodInfo a signature where
+    overloadedMethod _ = windowGetDevicePosition
+
+-- method Window::get_device_position_double
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_device_position_double" gdk_window_get_device_position_double :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Ptr CDouble ->                          -- x : TBasicType TDouble
+    Ptr CDouble ->                          -- y : TBasicType TDouble
+    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
+    IO (Ptr Window)
+
+
+windowGetDevicePositionDouble ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a                                       -- _obj
+    -> b                                    -- device
+    -> m (Window,Double,Double,[ModifierType])-- result
+windowGetDevicePositionDouble _obj device = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    x <- allocMem :: IO (Ptr CDouble)
+    y <- allocMem :: IO (Ptr CDouble)
+    mask <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_window_get_device_position_double _obj' device' x y mask
+    checkUnexpectedReturnNULL "gdk_window_get_device_position_double" result
+    result' <- (newObject Window) result
+    x' <- peek x
+    let x'' = realToFrac x'
+    y' <- peek y
+    let y'' = realToFrac y'
+    mask' <- peek mask
+    let mask'' = wordToGFlags mask'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    freeMem x
+    freeMem y
+    freeMem mask
+    return (result', x'', y'', mask'')
+
+data WindowGetDevicePositionDoubleMethodInfo
+instance (signature ~ (b -> m (Window,Double,Double,[ModifierType])), MonadIO m, WindowK a, DeviceK b) => MethodInfo WindowGetDevicePositionDoubleMethodInfo a signature where
+    overloadedMethod _ = windowGetDevicePositionDouble
+
+-- method Window::get_display
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Display"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_display" gdk_window_get_display :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Display)
+
+
+windowGetDisplay ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Display                            -- result
+windowGetDisplay _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_display _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_display" result
+    result' <- (newObject Display) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetDisplayMethodInfo
+instance (signature ~ (m Display), MonadIO m, WindowK a) => MethodInfo WindowGetDisplayMethodInfo a signature where
+    overloadedMethod _ = windowGetDisplay
+
+-- method Window::get_drag_protocol
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "target", argType = TInterface "Gdk" "Window", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "DragProtocol"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_drag_protocol" gdk_window_get_drag_protocol :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr (Ptr Window) ->                     -- target : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetDragProtocol ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m (DragProtocol,Window)              -- result
+windowGetDragProtocol _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    target <- allocMem :: IO (Ptr (Ptr Window))
+    result <- gdk_window_get_drag_protocol _obj' target
+    let result' = (toEnum . fromIntegral) result
+    target' <- peek target
+    target'' <- (wrapObject Window) target'
+    touchManagedPtr _obj
+    freeMem target
+    return (result', target'')
+
+data WindowGetDragProtocolMethodInfo
+instance (signature ~ (m (DragProtocol,Window)), MonadIO m, WindowK a) => MethodInfo WindowGetDragProtocolMethodInfo a signature where
+    overloadedMethod _ = windowGetDragProtocol
+
+-- method Window::get_effective_parent
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_effective_parent" gdk_window_get_effective_parent :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+windowGetEffectiveParent ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Window                             -- result
+windowGetEffectiveParent _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_effective_parent _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_effective_parent" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetEffectiveParentMethodInfo
+instance (signature ~ (m Window), MonadIO m, WindowK a) => MethodInfo WindowGetEffectiveParentMethodInfo a signature where
+    overloadedMethod _ = windowGetEffectiveParent
+
+-- method Window::get_effective_toplevel
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_effective_toplevel" gdk_window_get_effective_toplevel :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+windowGetEffectiveToplevel ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Window                             -- result
+windowGetEffectiveToplevel _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_effective_toplevel _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_effective_toplevel" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetEffectiveToplevelMethodInfo
+instance (signature ~ (m Window), MonadIO m, WindowK a) => MethodInfo WindowGetEffectiveToplevelMethodInfo a signature where
+    overloadedMethod _ = windowGetEffectiveToplevel
+
+-- method Window::get_event_compression
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_get_event_compression" gdk_window_get_event_compression :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetEventCompression ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowGetEventCompression _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_event_compression _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetEventCompressionMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowGetEventCompressionMethodInfo a signature where
+    overloadedMethod _ = windowGetEventCompression
+
+-- method Window::get_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "EventMask"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_events" gdk_window_get_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetEvents ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m [EventMask]                        -- result
+windowGetEvents _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_events _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetEventsMethodInfo
+instance (signature ~ (m [EventMask]), MonadIO m, WindowK a) => MethodInfo WindowGetEventsMethodInfo a signature where
+    overloadedMethod _ = windowGetEvents
+
+-- method Window::get_focus_on_map
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_get_focus_on_map" gdk_window_get_focus_on_map :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetFocusOnMap ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowGetFocusOnMap _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_focus_on_map _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetFocusOnMapMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowGetFocusOnMapMethodInfo a signature where
+    overloadedMethod _ = windowGetFocusOnMap
+
+-- method Window::get_frame_clock
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "FrameClock"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_frame_clock" gdk_window_get_frame_clock :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr FrameClock)
+
+
+windowGetFrameClock ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m FrameClock                         -- result
+windowGetFrameClock _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_frame_clock _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_frame_clock" result
+    result' <- (newObject FrameClock) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetFrameClockMethodInfo
+instance (signature ~ (m FrameClock), MonadIO m, WindowK a) => MethodInfo WindowGetFrameClockMethodInfo a signature where
+    overloadedMethod _ = windowGetFrameClock
+
+-- method Window::get_frame_extents
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Gdk" "Rectangle", 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 "gdk_window_get_frame_extents" gdk_window_get_frame_extents :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
+    IO ()
+
+
+windowGetFrameExtents ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m (Rectangle)                        -- result
+windowGetFrameExtents _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    rect <- callocBoxedBytes 16 :: IO (Ptr Rectangle)
+    gdk_window_get_frame_extents _obj' rect
+    rect' <- (wrapBoxed Rectangle) rect
+    touchManagedPtr _obj
+    return rect'
+
+data WindowGetFrameExtentsMethodInfo
+instance (signature ~ (m (Rectangle)), MonadIO m, WindowK a) => MethodInfo WindowGetFrameExtentsMethodInfo a signature where
+    overloadedMethod _ = windowGetFrameExtents
+
+-- method Window::get_fullscreen_mode
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "FullscreenMode"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_fullscreen_mode" gdk_window_get_fullscreen_mode :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetFullscreenMode ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m FullscreenMode                     -- result
+windowGetFullscreenMode _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_fullscreen_mode _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetFullscreenModeMethodInfo
+instance (signature ~ (m FullscreenMode), MonadIO m, WindowK a) => MethodInfo WindowGetFullscreenModeMethodInfo a signature where
+    overloadedMethod _ = windowGetFullscreenMode
+
+-- method Window::get_geometry
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_geometry" gdk_window_get_geometry :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    Ptr Int32 ->                            -- width : TBasicType TInt32
+    Ptr Int32 ->                            -- height : TBasicType TInt32
+    IO ()
+
+
+windowGetGeometry ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m (Int32,Int32,Int32,Int32)          -- result
+windowGetGeometry _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    width <- allocMem :: IO (Ptr Int32)
+    height <- allocMem :: IO (Ptr Int32)
+    gdk_window_get_geometry _obj' x y width height
+    x' <- peek x
+    y' <- peek y
+    width' <- peek width
+    height' <- peek height
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    freeMem width
+    freeMem height
+    return (x', y', width', height')
+
+data WindowGetGeometryMethodInfo
+instance (signature ~ (m (Int32,Int32,Int32,Int32)), MonadIO m, WindowK a) => MethodInfo WindowGetGeometryMethodInfo a signature where
+    overloadedMethod _ = windowGetGeometry
+
+-- method Window::get_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_group" gdk_window_get_group :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+windowGetGroup ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Window                             -- result
+windowGetGroup _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_group _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_group" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetGroupMethodInfo
+instance (signature ~ (m Window), MonadIO m, WindowK a) => MethodInfo WindowGetGroupMethodInfo a signature where
+    overloadedMethod _ = windowGetGroup
+
+-- method Window::get_height
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_get_height" gdk_window_get_height :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO Int32
+
+
+windowGetHeight ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Int32                              -- result
+windowGetHeight _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_height _obj'
+    touchManagedPtr _obj
+    return result
+
+data WindowGetHeightMethodInfo
+instance (signature ~ (m Int32), MonadIO m, WindowK a) => MethodInfo WindowGetHeightMethodInfo a signature where
+    overloadedMethod _ = windowGetHeight
+
+-- method Window::get_modal_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_get_modal_hint" gdk_window_get_modal_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetModalHint ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowGetModalHint _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_modal_hint _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetModalHintMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowGetModalHintMethodInfo a signature where
+    overloadedMethod _ = windowGetModalHint
+
+-- method Window::get_origin
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TInt32
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_origin" gdk_window_get_origin :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    IO Int32
+
+
+windowGetOrigin ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m (Int32,Int32,Int32)                -- result
+windowGetOrigin _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    result <- gdk_window_get_origin _obj' x y
+    x' <- peek x
+    y' <- peek y
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    return (result, x', y')
+
+data WindowGetOriginMethodInfo
+instance (signature ~ (m (Int32,Int32,Int32)), MonadIO m, WindowK a) => MethodInfo WindowGetOriginMethodInfo a signature where
+    overloadedMethod _ = windowGetOrigin
+
+-- method Window::get_parent
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_parent" gdk_window_get_parent :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+windowGetParent ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Window                             -- result
+windowGetParent _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_parent _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_parent" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetParentMethodInfo
+instance (signature ~ (m Window), MonadIO m, WindowK a) => MethodInfo WindowGetParentMethodInfo a signature where
+    overloadedMethod _ = windowGetParent
+
+-- method Window::get_pass_through
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_get_pass_through" gdk_window_get_pass_through :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetPassThrough ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowGetPassThrough _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_pass_through _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetPassThroughMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowGetPassThroughMethodInfo a signature where
+    overloadedMethod _ = windowGetPassThrough
+
+-- method Window::get_pointer
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "mask", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_pointer" gdk_window_get_pointer :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    Ptr CUInt ->                            -- mask : TInterface "Gdk" "ModifierType"
+    IO (Ptr Window)
+
+{-# DEPRECATED windowGetPointer ["(Since version 3.0)","Use gdk_window_get_device_position() instead."]#-}
+windowGetPointer ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m (Window,Int32,Int32,[ModifierType])-- result
+windowGetPointer _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    mask <- allocMem :: IO (Ptr CUInt)
+    result <- gdk_window_get_pointer _obj' x y mask
+    checkUnexpectedReturnNULL "gdk_window_get_pointer" result
+    result' <- (newObject Window) result
+    x' <- peek x
+    y' <- peek y
+    mask' <- peek mask
+    let mask'' = wordToGFlags mask'
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    freeMem mask
+    return (result', x', y', mask'')
+
+data WindowGetPointerMethodInfo
+instance (signature ~ (m (Window,Int32,Int32,[ModifierType])), MonadIO m, WindowK a) => MethodInfo WindowGetPointerMethodInfo a signature where
+    overloadedMethod _ = windowGetPointer
+
+-- method Window::get_position
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_position" gdk_window_get_position :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    IO ()
+
+
+windowGetPosition ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m (Int32,Int32)                      -- result
+windowGetPosition _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    gdk_window_get_position _obj' x y
+    x' <- peek x
+    y' <- peek y
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    return (x', y')
+
+data WindowGetPositionMethodInfo
+instance (signature ~ (m (Int32,Int32)), MonadIO m, WindowK a) => MethodInfo WindowGetPositionMethodInfo a signature where
+    overloadedMethod _ = windowGetPosition
+
+-- method Window::get_root_coords
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "root_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "root_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_root_coords" gdk_window_get_root_coords :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    Ptr Int32 ->                            -- root_x : TBasicType TInt32
+    Ptr Int32 ->                            -- root_y : TBasicType TInt32
+    IO ()
+
+
+windowGetRootCoords ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> m (Int32,Int32)                      -- result
+windowGetRootCoords _obj x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    rootX <- allocMem :: IO (Ptr Int32)
+    rootY <- allocMem :: IO (Ptr Int32)
+    gdk_window_get_root_coords _obj' x y rootX rootY
+    rootX' <- peek rootX
+    rootY' <- peek rootY
+    touchManagedPtr _obj
+    freeMem rootX
+    freeMem rootY
+    return (rootX', rootY')
+
+data WindowGetRootCoordsMethodInfo
+instance (signature ~ (Int32 -> Int32 -> m (Int32,Int32)), MonadIO m, WindowK a) => MethodInfo WindowGetRootCoordsMethodInfo a signature where
+    overloadedMethod _ = windowGetRootCoords
+
+-- method Window::get_root_origin
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_root_origin" gdk_window_get_root_origin :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Int32 ->                            -- x : TBasicType TInt32
+    Ptr Int32 ->                            -- y : TBasicType TInt32
+    IO ()
+
+
+windowGetRootOrigin ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m (Int32,Int32)                      -- result
+windowGetRootOrigin _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    x <- allocMem :: IO (Ptr Int32)
+    y <- allocMem :: IO (Ptr Int32)
+    gdk_window_get_root_origin _obj' x y
+    x' <- peek x
+    y' <- peek y
+    touchManagedPtr _obj
+    freeMem x
+    freeMem y
+    return (x', y')
+
+data WindowGetRootOriginMethodInfo
+instance (signature ~ (m (Int32,Int32)), MonadIO m, WindowK a) => MethodInfo WindowGetRootOriginMethodInfo a signature where
+    overloadedMethod _ = windowGetRootOrigin
+
+-- method Window::get_scale_factor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_get_scale_factor" gdk_window_get_scale_factor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO Int32
+
+
+windowGetScaleFactor ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Int32                              -- result
+windowGetScaleFactor _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_scale_factor _obj'
+    touchManagedPtr _obj
+    return result
+
+data WindowGetScaleFactorMethodInfo
+instance (signature ~ (m Int32), MonadIO m, WindowK a) => MethodInfo WindowGetScaleFactorMethodInfo a signature where
+    overloadedMethod _ = windowGetScaleFactor
+
+-- method Window::get_screen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Screen"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_screen" gdk_window_get_screen :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Screen)
+
+
+windowGetScreen ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Screen                             -- result
+windowGetScreen _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_screen _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_screen" result
+    result' <- (newObject Screen) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetScreenMethodInfo
+instance (signature ~ (m Screen), MonadIO m, WindowK a) => MethodInfo WindowGetScreenMethodInfo a signature where
+    overloadedMethod _ = windowGetScreen
+
+-- method Window::get_source_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "EventMask"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_source_events" gdk_window_get_source_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- source : TInterface "Gdk" "InputSource"
+    IO CUInt
+
+
+windowGetSourceEvents ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> InputSource                          -- source
+    -> m [EventMask]                        -- result
+windowGetSourceEvents _obj source = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let source' = (fromIntegral . fromEnum) source
+    result <- gdk_window_get_source_events _obj' source'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetSourceEventsMethodInfo
+instance (signature ~ (InputSource -> m [EventMask]), MonadIO m, WindowK a) => MethodInfo WindowGetSourceEventsMethodInfo a signature where
+    overloadedMethod _ = windowGetSourceEvents
+
+-- method Window::get_state
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "WindowState"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_state" gdk_window_get_state :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetState ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m [WindowState]                      -- result
+windowGetState _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_state _obj'
+    let result' = wordToGFlags result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetStateMethodInfo
+instance (signature ~ (m [WindowState]), MonadIO m, WindowK a) => MethodInfo WindowGetStateMethodInfo a signature where
+    overloadedMethod _ = windowGetState
+
+-- method Window::get_support_multidevice
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_get_support_multidevice" gdk_window_get_support_multidevice :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowGetSupportMultidevice ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowGetSupportMultidevice _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_support_multidevice _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetSupportMultideviceMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowGetSupportMultideviceMethodInfo a signature where
+    overloadedMethod _ = windowGetSupportMultidevice
+
+-- method Window::get_toplevel
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_toplevel" gdk_window_get_toplevel :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Window)
+
+
+windowGetToplevel ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Window                             -- result
+windowGetToplevel _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_toplevel _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_toplevel" result
+    result' <- (newObject Window) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetToplevelMethodInfo
+instance (signature ~ (m Window), MonadIO m, WindowK a) => MethodInfo WindowGetToplevelMethodInfo a signature where
+    overloadedMethod _ = windowGetToplevel
+
+-- method Window::get_type_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "WindowTypeHint"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_type_hint" gdk_window_get_type_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetTypeHint ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m WindowTypeHint                     -- result
+windowGetTypeHint _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_type_hint _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetTypeHintMethodInfo
+instance (signature ~ (m WindowTypeHint), MonadIO m, WindowK a) => MethodInfo WindowGetTypeHintMethodInfo a signature where
+    overloadedMethod _ = windowGetTypeHint
+
+-- method Window::get_update_area
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "cairo" "Region"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_update_area" gdk_window_get_update_area :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Region)
+
+
+windowGetUpdateArea ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Cairo.Region                       -- result
+windowGetUpdateArea _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_update_area _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_update_area" result
+    result' <- (wrapBoxed Cairo.Region) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetUpdateAreaMethodInfo
+instance (signature ~ (m Cairo.Region), MonadIO m, WindowK a) => MethodInfo WindowGetUpdateAreaMethodInfo a signature where
+    overloadedMethod _ = windowGetUpdateArea
+
+-- method Window::get_user_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_user_data" gdk_window_get_user_data :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr (Ptr ()) ->                         -- data : TBasicType TVoid
+    IO ()
+
+
+windowGetUserData ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ((Ptr ()))                         -- result
+windowGetUserData _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    data_ <- allocMem :: IO (Ptr (Ptr ()))
+    gdk_window_get_user_data _obj' data_
+    data_' <- peek data_
+    touchManagedPtr _obj
+    freeMem data_
+    return data_'
+
+data WindowGetUserDataMethodInfo
+instance (signature ~ (m ((Ptr ()))), MonadIO m, WindowK a) => MethodInfo WindowGetUserDataMethodInfo a signature where
+    overloadedMethod _ = windowGetUserData
+
+-- method Window::get_visible_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "cairo" "Region"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_visible_region" gdk_window_get_visible_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Cairo.Region)
+
+
+windowGetVisibleRegion ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Cairo.Region                       -- result
+windowGetVisibleRegion _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_visible_region _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_visible_region" result
+    result' <- (wrapBoxed Cairo.Region) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetVisibleRegionMethodInfo
+instance (signature ~ (m Cairo.Region), MonadIO m, WindowK a) => MethodInfo WindowGetVisibleRegionMethodInfo a signature where
+    overloadedMethod _ = windowGetVisibleRegion
+
+-- method Window::get_visual
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Visual"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_visual" gdk_window_get_visual :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr Visual)
+
+
+windowGetVisual ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Visual                             -- result
+windowGetVisual _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_visual _obj'
+    checkUnexpectedReturnNULL "gdk_window_get_visual" result
+    result' <- (newObject Visual) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetVisualMethodInfo
+instance (signature ~ (m Visual), MonadIO m, WindowK a) => MethodInfo WindowGetVisualMethodInfo a signature where
+    overloadedMethod _ = windowGetVisual
+
+-- method Window::get_width
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_get_width" gdk_window_get_width :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO Int32
+
+
+windowGetWidth ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Int32                              -- result
+windowGetWidth _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_width _obj'
+    touchManagedPtr _obj
+    return result
+
+data WindowGetWidthMethodInfo
+instance (signature ~ (m Int32), MonadIO m, WindowK a) => MethodInfo WindowGetWidthMethodInfo a signature where
+    overloadedMethod _ = windowGetWidth
+
+-- method Window::get_window_type
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "WindowType"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_get_window_type" gdk_window_get_window_type :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CUInt
+
+
+windowGetWindowType ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m WindowType                         -- result
+windowGetWindowType _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_get_window_type _obj'
+    let result' = (toEnum . fromIntegral) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowGetWindowTypeMethodInfo
+instance (signature ~ (m WindowType), MonadIO m, WindowK a) => MethodInfo WindowGetWindowTypeMethodInfo a signature where
+    overloadedMethod _ = windowGetWindowType
+
+-- method Window::has_native
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_has_native" gdk_window_has_native :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowHasNative ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowHasNative _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_has_native _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowHasNativeMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowHasNativeMethodInfo a signature where
+    overloadedMethod _ = windowHasNative
+
+-- method Window::hide
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_hide" gdk_window_hide :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowHide ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowHide _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_hide _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowHideMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowHideMethodInfo a signature where
+    overloadedMethod _ = windowHide
+
+-- method Window::iconify
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_iconify" gdk_window_iconify :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowIconify ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowIconify _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_iconify _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowIconifyMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowIconifyMethodInfo a signature where
+    overloadedMethod _ = windowIconify
+
+-- method Window::input_shape_combine_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset_y", 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 "gdk_window_input_shape_combine_region" gdk_window_input_shape_combine_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- shape_region : TInterface "cairo" "Region"
+    Int32 ->                                -- offset_x : TBasicType TInt32
+    Int32 ->                                -- offset_y : TBasicType TInt32
+    IO ()
+
+
+windowInputShapeCombineRegion ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Cairo.Region                         -- shapeRegion
+    -> Int32                                -- offsetX
+    -> Int32                                -- offsetY
+    -> m ()                                 -- result
+windowInputShapeCombineRegion _obj shapeRegion offsetX offsetY = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let shapeRegion' = unsafeManagedPtrGetPtr shapeRegion
+    gdk_window_input_shape_combine_region _obj' shapeRegion' offsetX offsetY
+    touchManagedPtr _obj
+    touchManagedPtr shapeRegion
+    return ()
+
+data WindowInputShapeCombineRegionMethodInfo
+instance (signature ~ (Cairo.Region -> Int32 -> Int32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowInputShapeCombineRegionMethodInfo a signature where
+    overloadedMethod _ = windowInputShapeCombineRegion
+
+-- method Window::invalidate_maybe_recurse
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "child_func", argType = TInterface "Gdk" "WindowChildFunc", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeCall, argClosure = 3, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_invalidate_maybe_recurse" gdk_window_invalidate_maybe_recurse :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    FunPtr WindowChildFuncC ->              -- child_func : TInterface "Gdk" "WindowChildFunc"
+    Ptr () ->                               -- user_data : TBasicType TVoid
+    IO ()
+
+
+windowInvalidateMaybeRecurse ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Cairo.Region                         -- region
+    -> Maybe (WindowChildFunc)              -- childFunc
+    -> m ()                                 -- result
+windowInvalidateMaybeRecurse _obj region childFunc = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let region' = unsafeManagedPtrGetPtr region
+    maybeChildFunc <- case childFunc of
+        Nothing -> return (castPtrToFunPtr nullPtr)
+        Just jChildFunc -> do
+            jChildFunc' <- mkWindowChildFunc (windowChildFuncWrapper Nothing jChildFunc)
+            return jChildFunc'
+    let userData = nullPtr
+    gdk_window_invalidate_maybe_recurse _obj' region' maybeChildFunc userData
+    safeFreeFunPtr $ castFunPtrToPtr maybeChildFunc
+    touchManagedPtr _obj
+    touchManagedPtr region
+    return ()
+
+data WindowInvalidateMaybeRecurseMethodInfo
+instance (signature ~ (Cairo.Region -> Maybe (WindowChildFunc) -> m ()), MonadIO m, WindowK a) => MethodInfo WindowInvalidateMaybeRecurseMethodInfo a signature where
+    overloadedMethod _ = windowInvalidateMaybeRecurse
+
+-- method Window::invalidate_rect
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rect", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_invalidate_rect" gdk_window_invalidate_rect :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Rectangle ->                        -- rect : TInterface "Gdk" "Rectangle"
+    CInt ->                                 -- invalidate_children : TBasicType TBoolean
+    IO ()
+
+
+windowInvalidateRect ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Maybe (Rectangle)                    -- rect
+    -> Bool                                 -- invalidateChildren
+    -> m ()                                 -- result
+windowInvalidateRect _obj rect invalidateChildren = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeRect <- case rect of
+        Nothing -> return nullPtr
+        Just jRect -> do
+            let jRect' = unsafeManagedPtrGetPtr jRect
+            return jRect'
+    let invalidateChildren' = (fromIntegral . fromEnum) invalidateChildren
+    gdk_window_invalidate_rect _obj' maybeRect invalidateChildren'
+    touchManagedPtr _obj
+    whenJust rect touchManagedPtr
+    return ()
+
+data WindowInvalidateRectMethodInfo
+instance (signature ~ (Maybe (Rectangle) -> Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowInvalidateRectMethodInfo a signature where
+    overloadedMethod _ = windowInvalidateRect
+
+-- method Window::invalidate_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "invalidate_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_invalidate_region" gdk_window_invalidate_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    CInt ->                                 -- invalidate_children : TBasicType TBoolean
+    IO ()
+
+
+windowInvalidateRegion ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Cairo.Region                         -- region
+    -> Bool                                 -- invalidateChildren
+    -> m ()                                 -- result
+windowInvalidateRegion _obj region invalidateChildren = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let region' = unsafeManagedPtrGetPtr region
+    let invalidateChildren' = (fromIntegral . fromEnum) invalidateChildren
+    gdk_window_invalidate_region _obj' region' invalidateChildren'
+    touchManagedPtr _obj
+    touchManagedPtr region
+    return ()
+
+data WindowInvalidateRegionMethodInfo
+instance (signature ~ (Cairo.Region -> Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowInvalidateRegionMethodInfo a signature where
+    overloadedMethod _ = windowInvalidateRegion
+
+-- method Window::is_destroyed
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_is_destroyed" gdk_window_is_destroyed :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowIsDestroyed ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowIsDestroyed _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_is_destroyed _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowIsDestroyedMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowIsDestroyedMethodInfo a signature where
+    overloadedMethod _ = windowIsDestroyed
+
+-- method Window::is_input_only
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_is_input_only" gdk_window_is_input_only :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowIsInputOnly ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowIsInputOnly _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_is_input_only _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowIsInputOnlyMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowIsInputOnlyMethodInfo a signature where
+    overloadedMethod _ = windowIsInputOnly
+
+-- method Window::is_shaped
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_is_shaped" gdk_window_is_shaped :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowIsShaped ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowIsShaped _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_is_shaped _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowIsShapedMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowIsShapedMethodInfo a signature where
+    overloadedMethod _ = windowIsShaped
+
+-- method Window::is_viewable
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_is_viewable" gdk_window_is_viewable :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowIsViewable ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowIsViewable _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_is_viewable _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowIsViewableMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowIsViewableMethodInfo a signature where
+    overloadedMethod _ = windowIsViewable
+
+-- method Window::is_visible
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_is_visible" gdk_window_is_visible :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO CInt
+
+
+windowIsVisible ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m Bool                               -- result
+windowIsVisible _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_is_visible _obj'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowIsVisibleMethodInfo
+instance (signature ~ (m Bool), MonadIO m, WindowK a) => MethodInfo WindowIsVisibleMethodInfo a signature where
+    overloadedMethod _ = windowIsVisible
+
+-- method Window::lower
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_lower" gdk_window_lower :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowLower ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowLower _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_lower _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowLowerMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowLowerMethodInfo a signature where
+    overloadedMethod _ = windowLower
+
+-- method Window::mark_paint_from_clip
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cr", argType = TInterface "cairo" "Context", 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 "gdk_window_mark_paint_from_clip" gdk_window_mark_paint_from_clip :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Context ->                    -- cr : TInterface "cairo" "Context"
+    IO ()
+
+
+windowMarkPaintFromClip ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Cairo.Context                        -- cr
+    -> m ()                                 -- result
+windowMarkPaintFromClip _obj cr = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let cr' = unsafeManagedPtrGetPtr cr
+    gdk_window_mark_paint_from_clip _obj' cr'
+    touchManagedPtr _obj
+    touchManagedPtr cr
+    return ()
+
+data WindowMarkPaintFromClipMethodInfo
+instance (signature ~ (Cairo.Context -> m ()), MonadIO m, WindowK a) => MethodInfo WindowMarkPaintFromClipMethodInfo a signature where
+    overloadedMethod _ = windowMarkPaintFromClip
+
+-- method Window::maximize
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_maximize" gdk_window_maximize :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowMaximize ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowMaximize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_maximize _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowMaximizeMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowMaximizeMethodInfo a signature where
+    overloadedMethod _ = windowMaximize
+
+-- method Window::merge_child_input_shapes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_merge_child_input_shapes" gdk_window_merge_child_input_shapes :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowMergeChildInputShapes ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowMergeChildInputShapes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_merge_child_input_shapes _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowMergeChildInputShapesMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowMergeChildInputShapesMethodInfo a signature where
+    overloadedMethod _ = windowMergeChildInputShapes
+
+-- method Window::merge_child_shapes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_merge_child_shapes" gdk_window_merge_child_shapes :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowMergeChildShapes ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowMergeChildShapes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_merge_child_shapes _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowMergeChildShapesMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowMergeChildShapesMethodInfo a signature where
+    overloadedMethod _ = windowMergeChildShapes
+
+-- method Window::move
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", 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 "gdk_window_move" gdk_window_move :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    IO ()
+
+
+windowMove ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> m ()                                 -- result
+windowMove _obj x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_move _obj' x y
+    touchManagedPtr _obj
+    return ()
+
+data WindowMoveMethodInfo
+instance (signature ~ (Int32 -> Int32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowMoveMethodInfo a signature where
+    overloadedMethod _ = windowMove
+
+-- method Window::move_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dy", 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 "gdk_window_move_region" gdk_window_move_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    Int32 ->                                -- dx : TBasicType TInt32
+    Int32 ->                                -- dy : TBasicType TInt32
+    IO ()
+
+
+windowMoveRegion ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Cairo.Region                         -- region
+    -> Int32                                -- dx
+    -> Int32                                -- dy
+    -> m ()                                 -- result
+windowMoveRegion _obj region dx dy = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let region' = unsafeManagedPtrGetPtr region
+    gdk_window_move_region _obj' region' dx dy
+    touchManagedPtr _obj
+    touchManagedPtr region
+    return ()
+
+data WindowMoveRegionMethodInfo
+instance (signature ~ (Cairo.Region -> Int32 -> Int32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowMoveRegionMethodInfo a signature where
+    overloadedMethod _ = windowMoveRegion
+
+-- method Window::move_resize
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", 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 "gdk_window_move_resize" gdk_window_move_resize :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO ()
+
+
+windowMoveResize ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> Int32                                -- width
+    -> Int32                                -- height
+    -> m ()                                 -- result
+windowMoveResize _obj x y width height = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_move_resize _obj' x y width height
+    touchManagedPtr _obj
+    return ()
+
+data WindowMoveResizeMethodInfo
+instance (signature ~ (Int32 -> Int32 -> Int32 -> Int32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowMoveResizeMethodInfo a signature where
+    overloadedMethod _ = windowMoveResize
+
+-- method Window::peek_children
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TGList (TInterface "Gdk" "Window")
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_peek_children" gdk_window_peek_children :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO (Ptr (GList (Ptr Window)))
+
+
+windowPeekChildren ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m [Window]                           -- result
+windowPeekChildren _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    result <- gdk_window_peek_children _obj'
+    checkUnexpectedReturnNULL "gdk_window_peek_children" result
+    result' <- unpackGList result
+    result'' <- mapM (newObject Window) result'
+    touchManagedPtr _obj
+    return result''
+
+data WindowPeekChildrenMethodInfo
+instance (signature ~ (m [Window]), MonadIO m, WindowK a) => MethodInfo WindowPeekChildrenMethodInfo a signature where
+    overloadedMethod _ = windowPeekChildren
+
+-- method Window::process_updates
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "update_children", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_process_updates" gdk_window_process_updates :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- update_children : TBasicType TBoolean
+    IO ()
+
+
+windowProcessUpdates ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- updateChildren
+    -> m ()                                 -- result
+windowProcessUpdates _obj updateChildren = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let updateChildren' = (fromIntegral . fromEnum) updateChildren
+    gdk_window_process_updates _obj' updateChildren'
+    touchManagedPtr _obj
+    return ()
+
+data WindowProcessUpdatesMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowProcessUpdatesMethodInfo a signature where
+    overloadedMethod _ = windowProcessUpdates
+
+-- method Window::raise
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_raise" gdk_window_raise :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowRaise ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowRaise _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_raise _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowRaiseMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowRaiseMethodInfo a signature where
+    overloadedMethod _ = windowRaise
+
+-- method Window::register_dnd
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_register_dnd" gdk_window_register_dnd :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowRegisterDnd ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowRegisterDnd _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_register_dnd _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowRegisterDndMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowRegisterDndMethodInfo a signature where
+    overloadedMethod _ = windowRegisterDnd
+
+-- method Window::reparent
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_parent", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "y", 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 "gdk_window_reparent" gdk_window_reparent :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Window ->                           -- new_parent : TInterface "Gdk" "Window"
+    Int32 ->                                -- x : TBasicType TInt32
+    Int32 ->                                -- y : TBasicType TInt32
+    IO ()
+
+
+windowReparent ::
+    (MonadIO m, WindowK a, WindowK b) =>
+    a                                       -- _obj
+    -> b                                    -- newParent
+    -> Int32                                -- x
+    -> Int32                                -- y
+    -> m ()                                 -- result
+windowReparent _obj newParent x y = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let newParent' = unsafeManagedPtrCastPtr newParent
+    gdk_window_reparent _obj' newParent' x y
+    touchManagedPtr _obj
+    touchManagedPtr newParent
+    return ()
+
+data WindowReparentMethodInfo
+instance (signature ~ (b -> Int32 -> Int32 -> m ()), MonadIO m, WindowK a, WindowK b) => MethodInfo WindowReparentMethodInfo a signature where
+    overloadedMethod _ = windowReparent
+
+-- method Window::resize
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", 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 "gdk_window_resize" gdk_window_resize :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    IO ()
+
+
+windowResize ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Int32                                -- width
+    -> Int32                                -- height
+    -> m ()                                 -- result
+windowResize _obj width height = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_resize _obj' width height
+    touchManagedPtr _obj
+    return ()
+
+data WindowResizeMethodInfo
+instance (signature ~ (Int32 -> Int32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowResizeMethodInfo a signature where
+    overloadedMethod _ = windowResize
+
+-- method Window::restack
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "sibling", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "above", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_restack" gdk_window_restack :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Window ->                           -- sibling : TInterface "Gdk" "Window"
+    CInt ->                                 -- above : TBasicType TBoolean
+    IO ()
+
+
+windowRestack ::
+    (MonadIO m, WindowK a, WindowK b) =>
+    a                                       -- _obj
+    -> Maybe (b)                            -- sibling
+    -> Bool                                 -- above
+    -> m ()                                 -- result
+windowRestack _obj sibling above = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeSibling <- case sibling of
+        Nothing -> return nullPtr
+        Just jSibling -> do
+            let jSibling' = unsafeManagedPtrCastPtr jSibling
+            return jSibling'
+    let above' = (fromIntegral . fromEnum) above
+    gdk_window_restack _obj' maybeSibling above'
+    touchManagedPtr _obj
+    whenJust sibling touchManagedPtr
+    return ()
+
+data WindowRestackMethodInfo
+instance (signature ~ (Maybe (b) -> Bool -> m ()), MonadIO m, WindowK a, WindowK b) => MethodInfo WindowRestackMethodInfo a signature where
+    overloadedMethod _ = windowRestack
+
+-- method Window::scroll
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dx", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dy", 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 "gdk_window_scroll" gdk_window_scroll :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- dx : TBasicType TInt32
+    Int32 ->                                -- dy : TBasicType TInt32
+    IO ()
+
+
+windowScroll ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Int32                                -- dx
+    -> Int32                                -- dy
+    -> m ()                                 -- result
+windowScroll _obj dx dy = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_scroll _obj' dx dy
+    touchManagedPtr _obj
+    return ()
+
+data WindowScrollMethodInfo
+instance (signature ~ (Int32 -> Int32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowScrollMethodInfo a signature where
+    overloadedMethod _ = windowScroll
+
+-- method Window::set_accept_focus
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "accept_focus", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_accept_focus" gdk_window_set_accept_focus :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- accept_focus : TBasicType TBoolean
+    IO ()
+
+
+windowSetAcceptFocus ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- acceptFocus
+    -> m ()                                 -- result
+windowSetAcceptFocus _obj acceptFocus = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let acceptFocus' = (fromIntegral . fromEnum) acceptFocus
+    gdk_window_set_accept_focus _obj' acceptFocus'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetAcceptFocusMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetAcceptFocusMethodInfo a signature where
+    overloadedMethod _ = windowSetAcceptFocus
+
+-- method Window::set_background
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TInterface "Gdk" "Color", 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 "gdk_window_set_background" gdk_window_set_background :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
+    IO ()
+
+{-# DEPRECATED windowSetBackground ["(Since version 3.4)","Use gdk_window_set_background_rgba() instead."]#-}
+windowSetBackground ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Color                                -- color
+    -> m ()                                 -- result
+windowSetBackground _obj color = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let color' = unsafeManagedPtrGetPtr color
+    gdk_window_set_background _obj' color'
+    touchManagedPtr _obj
+    touchManagedPtr color
+    return ()
+
+data WindowSetBackgroundMethodInfo
+instance (signature ~ (Color -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetBackgroundMethodInfo a signature where
+    overloadedMethod _ = windowSetBackground
+
+-- method Window::set_background_pattern
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pattern", argType = TInterface "cairo" "Pattern", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_background_pattern" gdk_window_set_background_pattern :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Pattern ->                    -- pattern : TInterface "cairo" "Pattern"
+    IO ()
+
+
+windowSetBackgroundPattern ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Maybe (Cairo.Pattern)                -- pattern
+    -> m ()                                 -- result
+windowSetBackgroundPattern _obj pattern = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybePattern <- case pattern of
+        Nothing -> return nullPtr
+        Just jPattern -> do
+            let jPattern' = unsafeManagedPtrGetPtr jPattern
+            return jPattern'
+    gdk_window_set_background_pattern _obj' maybePattern
+    touchManagedPtr _obj
+    whenJust pattern touchManagedPtr
+    return ()
+
+data WindowSetBackgroundPatternMethodInfo
+instance (signature ~ (Maybe (Cairo.Pattern) -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetBackgroundPatternMethodInfo a signature where
+    overloadedMethod _ = windowSetBackgroundPattern
+
+-- method Window::set_background_rgba
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "rgba", argType = TInterface "Gdk" "RGBA", 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 "gdk_window_set_background_rgba" gdk_window_set_background_rgba :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr RGBA ->                             -- rgba : TInterface "Gdk" "RGBA"
+    IO ()
+
+
+windowSetBackgroundRgba ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> RGBA                                 -- rgba
+    -> m ()                                 -- result
+windowSetBackgroundRgba _obj rgba = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let rgba' = unsafeManagedPtrGetPtr rgba
+    gdk_window_set_background_rgba _obj' rgba'
+    touchManagedPtr _obj
+    touchManagedPtr rgba
+    return ()
+
+data WindowSetBackgroundRgbaMethodInfo
+instance (signature ~ (RGBA -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetBackgroundRgbaMethodInfo a signature where
+    overloadedMethod _ = windowSetBackgroundRgba
+
+-- method Window::set_child_input_shapes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_set_child_input_shapes" gdk_window_set_child_input_shapes :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowSetChildInputShapes ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowSetChildInputShapes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_set_child_input_shapes _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetChildInputShapesMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowSetChildInputShapesMethodInfo a signature where
+    overloadedMethod _ = windowSetChildInputShapes
+
+-- method Window::set_child_shapes
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_set_child_shapes" gdk_window_set_child_shapes :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowSetChildShapes ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowSetChildShapes _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_set_child_shapes _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetChildShapesMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowSetChildShapesMethodInfo a signature where
+    overloadedMethod _ = windowSetChildShapes
+
+-- method Window::set_composited
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "composited", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_composited" gdk_window_set_composited :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- composited : TBasicType TBoolean
+    IO ()
+
+{-# DEPRECATED windowSetComposited ["(Since version 3.16)","Compositing is an outdated technology that","  only ever worked on X11."]#-}
+windowSetComposited ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- composited
+    -> m ()                                 -- result
+windowSetComposited _obj composited = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let composited' = (fromIntegral . fromEnum) composited
+    gdk_window_set_composited _obj' composited'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetCompositedMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetCompositedMethodInfo a signature where
+    overloadedMethod _ = windowSetComposited
+
+-- method Window::set_cursor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cursor", argType = TInterface "Gdk" "Cursor", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_cursor" gdk_window_set_cursor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
+    IO ()
+
+
+windowSetCursor ::
+    (MonadIO m, WindowK a, CursorK b) =>
+    a                                       -- _obj
+    -> Maybe (b)                            -- cursor
+    -> m ()                                 -- result
+windowSetCursor _obj cursor = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeCursor <- case cursor of
+        Nothing -> return nullPtr
+        Just jCursor -> do
+            let jCursor' = unsafeManagedPtrCastPtr jCursor
+            return jCursor'
+    gdk_window_set_cursor _obj' maybeCursor
+    touchManagedPtr _obj
+    whenJust cursor touchManagedPtr
+    return ()
+
+data WindowSetCursorMethodInfo
+instance (signature ~ (Maybe (b) -> m ()), MonadIO m, WindowK a, CursorK b) => MethodInfo WindowSetCursorMethodInfo a signature where
+    overloadedMethod _ = windowSetCursor
+
+-- method Window::set_decorations
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "decorations", argType = TInterface "Gdk" "WMDecoration", 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 "gdk_window_set_decorations" gdk_window_set_decorations :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- decorations : TInterface "Gdk" "WMDecoration"
+    IO ()
+
+
+windowSetDecorations ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> [WMDecoration]                       -- decorations
+    -> m ()                                 -- result
+windowSetDecorations _obj decorations = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let decorations' = gflagsToWord decorations
+    gdk_window_set_decorations _obj' decorations'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetDecorationsMethodInfo
+instance (signature ~ ([WMDecoration] -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetDecorationsMethodInfo a signature where
+    overloadedMethod _ = windowSetDecorations
+
+-- method Window::set_device_cursor
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "cursor", argType = TInterface "Gdk" "Cursor", 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 "gdk_window_set_device_cursor" gdk_window_set_device_cursor :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    Ptr Cursor ->                           -- cursor : TInterface "Gdk" "Cursor"
+    IO ()
+
+
+windowSetDeviceCursor ::
+    (MonadIO m, WindowK a, DeviceK b, CursorK c) =>
+    a                                       -- _obj
+    -> b                                    -- device
+    -> c                                    -- cursor
+    -> m ()                                 -- result
+windowSetDeviceCursor _obj device cursor = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    let cursor' = unsafeManagedPtrCastPtr cursor
+    gdk_window_set_device_cursor _obj' device' cursor'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    touchManagedPtr cursor
+    return ()
+
+data WindowSetDeviceCursorMethodInfo
+instance (signature ~ (b -> c -> m ()), MonadIO m, WindowK a, DeviceK b, CursorK c) => MethodInfo WindowSetDeviceCursorMethodInfo a signature where
+    overloadedMethod _ = windowSetDeviceCursor
+
+-- method Window::set_device_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event_mask", argType = TInterface "Gdk" "EventMask", 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 "gdk_window_set_device_events" gdk_window_set_device_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Device ->                           -- device : TInterface "Gdk" "Device"
+    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
+    IO ()
+
+
+windowSetDeviceEvents ::
+    (MonadIO m, WindowK a, DeviceK b) =>
+    a                                       -- _obj
+    -> b                                    -- device
+    -> [EventMask]                          -- eventMask
+    -> m ()                                 -- result
+windowSetDeviceEvents _obj device eventMask = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let device' = unsafeManagedPtrCastPtr device
+    let eventMask' = gflagsToWord eventMask
+    gdk_window_set_device_events _obj' device' eventMask'
+    touchManagedPtr _obj
+    touchManagedPtr device
+    return ()
+
+data WindowSetDeviceEventsMethodInfo
+instance (signature ~ (b -> [EventMask] -> m ()), MonadIO m, WindowK a, DeviceK b) => MethodInfo WindowSetDeviceEventsMethodInfo a signature where
+    overloadedMethod _ = windowSetDeviceEvents
+
+-- method Window::set_event_compression
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event_compression", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_event_compression" gdk_window_set_event_compression :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- event_compression : TBasicType TBoolean
+    IO ()
+
+
+windowSetEventCompression ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- eventCompression
+    -> m ()                                 -- result
+windowSetEventCompression _obj eventCompression = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let eventCompression' = (fromIntegral . fromEnum) eventCompression
+    gdk_window_set_event_compression _obj' eventCompression'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetEventCompressionMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetEventCompressionMethodInfo a signature where
+    overloadedMethod _ = windowSetEventCompression
+
+-- method Window::set_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event_mask", argType = TInterface "Gdk" "EventMask", 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 "gdk_window_set_events" gdk_window_set_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
+    IO ()
+
+
+windowSetEvents ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> [EventMask]                          -- eventMask
+    -> m ()                                 -- result
+windowSetEvents _obj eventMask = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let eventMask' = gflagsToWord eventMask
+    gdk_window_set_events _obj' eventMask'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetEventsMethodInfo
+instance (signature ~ ([EventMask] -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetEventsMethodInfo a signature where
+    overloadedMethod _ = windowSetEvents
+
+-- method Window::set_focus_on_map
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "focus_on_map", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_focus_on_map" gdk_window_set_focus_on_map :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- focus_on_map : TBasicType TBoolean
+    IO ()
+
+
+windowSetFocusOnMap ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- focusOnMap
+    -> m ()                                 -- result
+windowSetFocusOnMap _obj focusOnMap = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let focusOnMap' = (fromIntegral . fromEnum) focusOnMap
+    gdk_window_set_focus_on_map _obj' focusOnMap'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetFocusOnMapMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetFocusOnMapMethodInfo a signature where
+    overloadedMethod _ = windowSetFocusOnMap
+
+-- method Window::set_fullscreen_mode
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "mode", argType = TInterface "Gdk" "FullscreenMode", 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 "gdk_window_set_fullscreen_mode" gdk_window_set_fullscreen_mode :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- mode : TInterface "Gdk" "FullscreenMode"
+    IO ()
+
+
+windowSetFullscreenMode ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> FullscreenMode                       -- mode
+    -> m ()                                 -- result
+windowSetFullscreenMode _obj mode = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let mode' = (fromIntegral . fromEnum) mode
+    gdk_window_set_fullscreen_mode _obj' mode'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetFullscreenModeMethodInfo
+instance (signature ~ (FullscreenMode -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetFullscreenModeMethodInfo a signature where
+    overloadedMethod _ = windowSetFullscreenMode
+
+-- method Window::set_functions
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "functions", argType = TInterface "Gdk" "WMFunction", 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 "gdk_window_set_functions" gdk_window_set_functions :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- functions : TInterface "Gdk" "WMFunction"
+    IO ()
+
+
+windowSetFunctions ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> [WMFunction]                         -- functions
+    -> m ()                                 -- result
+windowSetFunctions _obj functions = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let functions' = gflagsToWord functions
+    gdk_window_set_functions _obj' functions'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetFunctionsMethodInfo
+instance (signature ~ ([WMFunction] -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetFunctionsMethodInfo a signature where
+    overloadedMethod _ = windowSetFunctions
+
+-- method Window::set_geometry_hints
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "geom_mask", argType = TInterface "Gdk" "WindowHints", 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 "gdk_window_set_geometry_hints" gdk_window_set_geometry_hints :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Geometry ->                         -- geometry : TInterface "Gdk" "Geometry"
+    CUInt ->                                -- geom_mask : TInterface "Gdk" "WindowHints"
+    IO ()
+
+
+windowSetGeometryHints ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Geometry                             -- geometry
+    -> [WindowHints]                        -- geomMask
+    -> m ()                                 -- result
+windowSetGeometryHints _obj geometry geomMask = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let geometry' = unsafeManagedPtrGetPtr geometry
+    let geomMask' = gflagsToWord geomMask
+    gdk_window_set_geometry_hints _obj' geometry' geomMask'
+    touchManagedPtr _obj
+    touchManagedPtr geometry
+    return ()
+
+data WindowSetGeometryHintsMethodInfo
+instance (signature ~ (Geometry -> [WindowHints] -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetGeometryHintsMethodInfo a signature where
+    overloadedMethod _ = windowSetGeometryHints
+
+-- method Window::set_group
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "leader", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_group" gdk_window_set_group :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Window ->                           -- leader : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowSetGroup ::
+    (MonadIO m, WindowK a, WindowK b) =>
+    a                                       -- _obj
+    -> Maybe (b)                            -- leader
+    -> m ()                                 -- result
+windowSetGroup _obj leader = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeLeader <- case leader of
+        Nothing -> return nullPtr
+        Just jLeader -> do
+            let jLeader' = unsafeManagedPtrCastPtr jLeader
+            return jLeader'
+    gdk_window_set_group _obj' maybeLeader
+    touchManagedPtr _obj
+    whenJust leader touchManagedPtr
+    return ()
+
+data WindowSetGroupMethodInfo
+instance (signature ~ (Maybe (b) -> m ()), MonadIO m, WindowK a, WindowK b) => MethodInfo WindowSetGroupMethodInfo a signature where
+    overloadedMethod _ = windowSetGroup
+
+-- method Window::set_icon_list
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pixbufs", argType = TGList (TInterface "GdkPixbuf" "Pixbuf"), 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 "gdk_window_set_icon_list" gdk_window_set_icon_list :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr (GList (Ptr GdkPixbuf.Pixbuf)) ->   -- pixbufs : TGList (TInterface "GdkPixbuf" "Pixbuf")
+    IO ()
+
+
+windowSetIconList ::
+    (MonadIO m, WindowK a, GdkPixbuf.PixbufK b) =>
+    a                                       -- _obj
+    -> [b]                                  -- pixbufs
+    -> m ()                                 -- result
+windowSetIconList _obj pixbufs = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let pixbufs' = map unsafeManagedPtrCastPtr pixbufs
+    pixbufs'' <- packGList pixbufs'
+    gdk_window_set_icon_list _obj' pixbufs''
+    touchManagedPtr _obj
+    mapM_ touchManagedPtr pixbufs
+    g_list_free pixbufs''
+    return ()
+
+data WindowSetIconListMethodInfo
+instance (signature ~ ([b] -> m ()), MonadIO m, WindowK a, GdkPixbuf.PixbufK b) => MethodInfo WindowSetIconListMethodInfo a signature where
+    overloadedMethod _ = windowSetIconList
+
+-- method Window::set_icon_name
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_icon_name" gdk_window_set_icon_name :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CString ->                              -- name : TBasicType TUTF8
+    IO ()
+
+
+windowSetIconName ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Maybe (T.Text)                       -- name
+    -> m ()                                 -- result
+windowSetIconName _obj name = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeName <- case name of
+        Nothing -> return nullPtr
+        Just jName -> do
+            jName' <- textToCString jName
+            return jName'
+    gdk_window_set_icon_name _obj' maybeName
+    touchManagedPtr _obj
+    freeMem maybeName
+    return ()
+
+data WindowSetIconNameMethodInfo
+instance (signature ~ (Maybe (T.Text) -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetIconNameMethodInfo a signature where
+    overloadedMethod _ = windowSetIconName
+
+-- method Window::set_keep_above
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_keep_above" gdk_window_set_keep_above :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- setting : TBasicType TBoolean
+    IO ()
+
+
+windowSetKeepAbove ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- setting
+    -> m ()                                 -- result
+windowSetKeepAbove _obj setting = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let setting' = (fromIntegral . fromEnum) setting
+    gdk_window_set_keep_above _obj' setting'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetKeepAboveMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetKeepAboveMethodInfo a signature where
+    overloadedMethod _ = windowSetKeepAbove
+
+-- method Window::set_keep_below
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_keep_below" gdk_window_set_keep_below :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- setting : TBasicType TBoolean
+    IO ()
+
+
+windowSetKeepBelow ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- setting
+    -> m ()                                 -- result
+windowSetKeepBelow _obj setting = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let setting' = (fromIntegral . fromEnum) setting
+    gdk_window_set_keep_below _obj' setting'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetKeepBelowMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetKeepBelowMethodInfo a signature where
+    overloadedMethod _ = windowSetKeepBelow
+
+-- method Window::set_modal_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "modal", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_modal_hint" gdk_window_set_modal_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- modal : TBasicType TBoolean
+    IO ()
+
+
+windowSetModalHint ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- modal
+    -> m ()                                 -- result
+windowSetModalHint _obj modal = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let modal' = (fromIntegral . fromEnum) modal
+    gdk_window_set_modal_hint _obj' modal'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetModalHintMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetModalHintMethodInfo a signature where
+    overloadedMethod _ = windowSetModalHint
+
+-- method Window::set_opacity
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "opacity", argType = TBasicType TDouble, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_opacity" gdk_window_set_opacity :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CDouble ->                              -- opacity : TBasicType TDouble
+    IO ()
+
+
+windowSetOpacity ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Double                               -- opacity
+    -> m ()                                 -- result
+windowSetOpacity _obj opacity = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let opacity' = realToFrac opacity
+    gdk_window_set_opacity _obj' opacity'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetOpacityMethodInfo
+instance (signature ~ (Double -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetOpacityMethodInfo a signature where
+    overloadedMethod _ = windowSetOpacity
+
+-- method Window::set_opaque_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_opaque_region" gdk_window_set_opaque_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- region : TInterface "cairo" "Region"
+    IO ()
+
+
+windowSetOpaqueRegion ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Maybe (Cairo.Region)                 -- region
+    -> m ()                                 -- result
+windowSetOpaqueRegion _obj region = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeRegion <- case region of
+        Nothing -> return nullPtr
+        Just jRegion -> do
+            let jRegion' = unsafeManagedPtrGetPtr jRegion
+            return jRegion'
+    gdk_window_set_opaque_region _obj' maybeRegion
+    touchManagedPtr _obj
+    whenJust region touchManagedPtr
+    return ()
+
+data WindowSetOpaqueRegionMethodInfo
+instance (signature ~ (Maybe (Cairo.Region) -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetOpaqueRegionMethodInfo a signature where
+    overloadedMethod _ = windowSetOpaqueRegion
+
+-- method Window::set_override_redirect
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "override_redirect", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_override_redirect" gdk_window_set_override_redirect :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- override_redirect : TBasicType TBoolean
+    IO ()
+
+
+windowSetOverrideRedirect ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- overrideRedirect
+    -> m ()                                 -- result
+windowSetOverrideRedirect _obj overrideRedirect = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let overrideRedirect' = (fromIntegral . fromEnum) overrideRedirect
+    gdk_window_set_override_redirect _obj' overrideRedirect'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetOverrideRedirectMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetOverrideRedirectMethodInfo a signature where
+    overloadedMethod _ = windowSetOverrideRedirect
+
+-- method Window::set_pass_through
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "pass_through", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_pass_through" gdk_window_set_pass_through :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- pass_through : TBasicType TBoolean
+    IO ()
+
+
+windowSetPassThrough ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- passThrough
+    -> m ()                                 -- result
+windowSetPassThrough _obj passThrough = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let passThrough' = (fromIntegral . fromEnum) passThrough
+    gdk_window_set_pass_through _obj' passThrough'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetPassThroughMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetPassThroughMethodInfo a signature where
+    overloadedMethod _ = windowSetPassThrough
+
+-- method Window::set_role
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "role", 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 "gdk_window_set_role" gdk_window_set_role :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CString ->                              -- role : TBasicType TUTF8
+    IO ()
+
+
+windowSetRole ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> T.Text                               -- role
+    -> m ()                                 -- result
+windowSetRole _obj role = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    role' <- textToCString role
+    gdk_window_set_role _obj' role'
+    touchManagedPtr _obj
+    freeMem role'
+    return ()
+
+data WindowSetRoleMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetRoleMethodInfo a signature where
+    overloadedMethod _ = windowSetRole
+
+-- method Window::set_shadow_width
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "left", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "right", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "top", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "bottom", 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 "gdk_window_set_shadow_width" gdk_window_set_shadow_width :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Int32 ->                                -- left : TBasicType TInt32
+    Int32 ->                                -- right : TBasicType TInt32
+    Int32 ->                                -- top : TBasicType TInt32
+    Int32 ->                                -- bottom : TBasicType TInt32
+    IO ()
+
+
+windowSetShadowWidth ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Int32                                -- left
+    -> Int32                                -- right
+    -> Int32                                -- top
+    -> Int32                                -- bottom
+    -> m ()                                 -- result
+windowSetShadowWidth _obj left right top bottom = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_set_shadow_width _obj' left right top bottom
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetShadowWidthMethodInfo
+instance (signature ~ (Int32 -> Int32 -> Int32 -> Int32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetShadowWidthMethodInfo a signature where
+    overloadedMethod _ = windowSetShadowWidth
+
+-- method Window::set_skip_pager_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "skips_pager", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_skip_pager_hint" gdk_window_set_skip_pager_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- skips_pager : TBasicType TBoolean
+    IO ()
+
+
+windowSetSkipPagerHint ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- skipsPager
+    -> m ()                                 -- result
+windowSetSkipPagerHint _obj skipsPager = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let skipsPager' = (fromIntegral . fromEnum) skipsPager
+    gdk_window_set_skip_pager_hint _obj' skipsPager'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetSkipPagerHintMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetSkipPagerHintMethodInfo a signature where
+    overloadedMethod _ = windowSetSkipPagerHint
+
+-- method Window::set_skip_taskbar_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "skips_taskbar", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_skip_taskbar_hint" gdk_window_set_skip_taskbar_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- skips_taskbar : TBasicType TBoolean
+    IO ()
+
+
+windowSetSkipTaskbarHint ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- skipsTaskbar
+    -> m ()                                 -- result
+windowSetSkipTaskbarHint _obj skipsTaskbar = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let skipsTaskbar' = (fromIntegral . fromEnum) skipsTaskbar
+    gdk_window_set_skip_taskbar_hint _obj' skipsTaskbar'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetSkipTaskbarHintMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetSkipTaskbarHintMethodInfo a signature where
+    overloadedMethod _ = windowSetSkipTaskbarHint
+
+-- method Window::set_source_events
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "source", argType = TInterface "Gdk" "InputSource", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event_mask", argType = TInterface "Gdk" "EventMask", 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 "gdk_window_set_source_events" gdk_window_set_source_events :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- source : TInterface "Gdk" "InputSource"
+    CUInt ->                                -- event_mask : TInterface "Gdk" "EventMask"
+    IO ()
+
+
+windowSetSourceEvents ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> InputSource                          -- source
+    -> [EventMask]                          -- eventMask
+    -> m ()                                 -- result
+windowSetSourceEvents _obj source eventMask = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let source' = (fromIntegral . fromEnum) source
+    let eventMask' = gflagsToWord eventMask
+    gdk_window_set_source_events _obj' source' eventMask'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetSourceEventsMethodInfo
+instance (signature ~ (InputSource -> [EventMask] -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetSourceEventsMethodInfo a signature where
+    overloadedMethod _ = windowSetSourceEvents
+
+-- method Window::set_startup_id
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "startup_id", 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 "gdk_window_set_startup_id" gdk_window_set_startup_id :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CString ->                              -- startup_id : TBasicType TUTF8
+    IO ()
+
+
+windowSetStartupId ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> T.Text                               -- startupId
+    -> m ()                                 -- result
+windowSetStartupId _obj startupId = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    startupId' <- textToCString startupId
+    gdk_window_set_startup_id _obj' startupId'
+    touchManagedPtr _obj
+    freeMem startupId'
+    return ()
+
+data WindowSetStartupIdMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetStartupIdMethodInfo a signature where
+    overloadedMethod _ = windowSetStartupId
+
+-- method Window::set_static_gravities
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "use_static", 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 "gdk_window_set_static_gravities" gdk_window_set_static_gravities :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- use_static : TBasicType TBoolean
+    IO CInt
+
+{-# DEPRECATED windowSetStaticGravities ["(Since version 3.16)","static gravities haven't worked on anything but X11","  for a long time."]#-}
+windowSetStaticGravities ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- useStatic
+    -> m Bool                               -- result
+windowSetStaticGravities _obj useStatic = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let useStatic' = (fromIntegral . fromEnum) useStatic
+    result <- gdk_window_set_static_gravities _obj' useStatic'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    return result'
+
+data WindowSetStaticGravitiesMethodInfo
+instance (signature ~ (Bool -> m Bool), MonadIO m, WindowK a) => MethodInfo WindowSetStaticGravitiesMethodInfo a signature where
+    overloadedMethod _ = windowSetStaticGravities
+
+-- method Window::set_support_multidevice
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "support_multidevice", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_support_multidevice" gdk_window_set_support_multidevice :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- support_multidevice : TBasicType TBoolean
+    IO ()
+
+
+windowSetSupportMultidevice ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- supportMultidevice
+    -> m ()                                 -- result
+windowSetSupportMultidevice _obj supportMultidevice = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let supportMultidevice' = (fromIntegral . fromEnum) supportMultidevice
+    gdk_window_set_support_multidevice _obj' supportMultidevice'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetSupportMultideviceMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetSupportMultideviceMethodInfo a signature where
+    overloadedMethod _ = windowSetSupportMultidevice
+
+-- method Window::set_title
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "title", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_title" gdk_window_set_title :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CString ->                              -- title : TBasicType TUTF8
+    IO ()
+
+
+windowSetTitle ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> T.Text                               -- title
+    -> m ()                                 -- result
+windowSetTitle _obj title = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    title' <- textToCString title
+    gdk_window_set_title _obj' title'
+    touchManagedPtr _obj
+    freeMem title'
+    return ()
+
+data WindowSetTitleMethodInfo
+instance (signature ~ (T.Text -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetTitleMethodInfo a signature where
+    overloadedMethod _ = windowSetTitle
+
+-- method Window::set_transient_for
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "parent", argType = TInterface "Gdk" "Window", 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 "gdk_window_set_transient_for" gdk_window_set_transient_for :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Window ->                           -- parent : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowSetTransientFor ::
+    (MonadIO m, WindowK a, WindowK b) =>
+    a                                       -- _obj
+    -> b                                    -- parent
+    -> m ()                                 -- result
+windowSetTransientFor _obj parent = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let parent' = unsafeManagedPtrCastPtr parent
+    gdk_window_set_transient_for _obj' parent'
+    touchManagedPtr _obj
+    touchManagedPtr parent
+    return ()
+
+data WindowSetTransientForMethodInfo
+instance (signature ~ (b -> m ()), MonadIO m, WindowK a, WindowK b) => MethodInfo WindowSetTransientForMethodInfo a signature where
+    overloadedMethod _ = windowSetTransientFor
+
+-- method Window::set_type_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "hint", argType = TInterface "Gdk" "WindowTypeHint", 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 "gdk_window_set_type_hint" gdk_window_set_type_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CUInt ->                                -- hint : TInterface "Gdk" "WindowTypeHint"
+    IO ()
+
+
+windowSetTypeHint ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> WindowTypeHint                       -- hint
+    -> m ()                                 -- result
+windowSetTypeHint _obj hint = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let hint' = (fromIntegral . fromEnum) hint
+    gdk_window_set_type_hint _obj' hint'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetTypeHintMethodInfo
+instance (signature ~ (WindowTypeHint -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetTypeHintMethodInfo a signature where
+    overloadedMethod _ = windowSetTypeHint
+
+-- method Window::set_urgency_hint
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "urgent", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_urgency_hint" gdk_window_set_urgency_hint :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    CInt ->                                 -- urgent : TBasicType TBoolean
+    IO ()
+
+
+windowSetUrgencyHint ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Bool                                 -- urgent
+    -> m ()                                 -- result
+windowSetUrgencyHint _obj urgent = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let urgent' = (fromIntegral . fromEnum) urgent
+    gdk_window_set_urgency_hint _obj' urgent'
+    touchManagedPtr _obj
+    return ()
+
+data WindowSetUrgencyHintMethodInfo
+instance (signature ~ (Bool -> m ()), MonadIO m, WindowK a) => MethodInfo WindowSetUrgencyHintMethodInfo a signature where
+    overloadedMethod _ = windowSetUrgencyHint
+
+-- method Window::set_user_data
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "user_data", argType = TInterface "GObject" "Object", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_user_data" gdk_window_set_user_data :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr GObject.Object ->                   -- user_data : TInterface "GObject" "Object"
+    IO ()
+
+
+windowSetUserData ::
+    (MonadIO m, WindowK a, GObject.ObjectK b) =>
+    a                                       -- _obj
+    -> Maybe (b)                            -- userData
+    -> m ()                                 -- result
+windowSetUserData _obj userData = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeUserData <- case userData of
+        Nothing -> return nullPtr
+        Just jUserData -> do
+            let jUserData' = unsafeManagedPtrCastPtr jUserData
+            return jUserData'
+    gdk_window_set_user_data _obj' maybeUserData
+    touchManagedPtr _obj
+    whenJust userData touchManagedPtr
+    return ()
+
+data WindowSetUserDataMethodInfo
+instance (signature ~ (Maybe (b) -> m ()), MonadIO m, WindowK a, GObject.ObjectK b) => MethodInfo WindowSetUserDataMethodInfo a signature where
+    overloadedMethod _ = windowSetUserData
+
+-- method Window::shape_combine_region
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "shape_region", argType = TInterface "cairo" "Region", direction = DirectionIn, mayBeNull = True, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset_x", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "offset_y", 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 "gdk_window_shape_combine_region" gdk_window_shape_combine_region :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Cairo.Region ->                     -- shape_region : TInterface "cairo" "Region"
+    Int32 ->                                -- offset_x : TBasicType TInt32
+    Int32 ->                                -- offset_y : TBasicType TInt32
+    IO ()
+
+
+windowShapeCombineRegion ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Maybe (Cairo.Region)                 -- shapeRegion
+    -> Int32                                -- offsetX
+    -> Int32                                -- offsetY
+    -> m ()                                 -- result
+windowShapeCombineRegion _obj shapeRegion offsetX offsetY = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    maybeShapeRegion <- case shapeRegion of
+        Nothing -> return nullPtr
+        Just jShapeRegion -> do
+            let jShapeRegion' = unsafeManagedPtrGetPtr jShapeRegion
+            return jShapeRegion'
+    gdk_window_shape_combine_region _obj' maybeShapeRegion offsetX offsetY
+    touchManagedPtr _obj
+    whenJust shapeRegion touchManagedPtr
+    return ()
+
+data WindowShapeCombineRegionMethodInfo
+instance (signature ~ (Maybe (Cairo.Region) -> Int32 -> Int32 -> m ()), MonadIO m, WindowK a) => MethodInfo WindowShapeCombineRegionMethodInfo a signature where
+    overloadedMethod _ = windowShapeCombineRegion
+
+-- method Window::show
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_show" gdk_window_show :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowShow ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowShow _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_show _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowShowMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowShowMethodInfo a signature where
+    overloadedMethod _ = windowShow
+
+-- method Window::show_unraised
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_show_unraised" gdk_window_show_unraised :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowShowUnraised ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowShowUnraised _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_show_unraised _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowShowUnraisedMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowShowUnraisedMethodInfo a signature where
+    overloadedMethod _ = windowShowUnraised
+
+-- method Window::show_window_menu
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "event", argType = TInterface "Gdk" "Event", 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 "gdk_window_show_window_menu" gdk_window_show_window_menu :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    Ptr Event ->                            -- event : TInterface "Gdk" "Event"
+    IO CInt
+
+
+windowShowWindowMenu ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> Event                                -- event
+    -> m Bool                               -- result
+windowShowWindowMenu _obj event = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    let event' = unsafeManagedPtrGetPtr event
+    result <- gdk_window_show_window_menu _obj' event'
+    let result' = (/= 0) result
+    touchManagedPtr _obj
+    touchManagedPtr event
+    return result'
+
+data WindowShowWindowMenuMethodInfo
+instance (signature ~ (Event -> m Bool), MonadIO m, WindowK a) => MethodInfo WindowShowWindowMenuMethodInfo a signature where
+    overloadedMethod _ = windowShowWindowMenu
+
+-- method Window::stick
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_stick" gdk_window_stick :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowStick ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowStick _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_stick _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowStickMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowStickMethodInfo a signature where
+    overloadedMethod _ = windowStick
+
+-- method Window::thaw_toplevel_updates_libgtk_only
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_thaw_toplevel_updates_libgtk_only" gdk_window_thaw_toplevel_updates_libgtk_only :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+{-# DEPRECATED windowThawToplevelUpdatesLibgtkOnly ["(Since version 3.16)","This symbol was never meant to be used outside of GTK+"]#-}
+windowThawToplevelUpdatesLibgtkOnly ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowThawToplevelUpdatesLibgtkOnly _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_thaw_toplevel_updates_libgtk_only _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowThawToplevelUpdatesLibgtkOnlyMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowThawToplevelUpdatesLibgtkOnlyMethodInfo a signature where
+    overloadedMethod _ = windowThawToplevelUpdatesLibgtkOnly
+
+-- method Window::thaw_updates
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_thaw_updates" gdk_window_thaw_updates :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowThawUpdates ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowThawUpdates _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_thaw_updates _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowThawUpdatesMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowThawUpdatesMethodInfo a signature where
+    overloadedMethod _ = windowThawUpdates
+
+-- method Window::unfullscreen
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_unfullscreen" gdk_window_unfullscreen :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowUnfullscreen ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowUnfullscreen _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_unfullscreen _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowUnfullscreenMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowUnfullscreenMethodInfo a signature where
+    overloadedMethod _ = windowUnfullscreen
+
+-- method Window::unmaximize
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_unmaximize" gdk_window_unmaximize :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowUnmaximize ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowUnmaximize _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_unmaximize _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowUnmaximizeMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowUnmaximizeMethodInfo a signature where
+    overloadedMethod _ = windowUnmaximize
+
+-- method Window::unstick
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_unstick" gdk_window_unstick :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowUnstick ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowUnstick _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_unstick _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowUnstickMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowUnstickMethodInfo a signature where
+    overloadedMethod _ = windowUnstick
+
+-- method Window::withdraw
+-- method type : OrdinaryMethod
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Window", 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 "gdk_window_withdraw" gdk_window_withdraw :: 
+    Ptr Window ->                           -- _obj : TInterface "Gdk" "Window"
+    IO ()
+
+
+windowWithdraw ::
+    (MonadIO m, WindowK a) =>
+    a                                       -- _obj
+    -> m ()                                 -- result
+windowWithdraw _obj = liftIO $ do
+    let _obj' = unsafeManagedPtrCastPtr _obj
+    gdk_window_withdraw _obj'
+    touchManagedPtr _obj
+    return ()
+
+data WindowWithdrawMethodInfo
+instance (signature ~ (m ()), MonadIO m, WindowK a) => MethodInfo WindowWithdrawMethodInfo a signature where
+    overloadedMethod _ = windowWithdraw
+
+-- method Window::at_pointer
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "win_x", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "win_y", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Window"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_at_pointer" gdk_window_at_pointer :: 
+    Ptr Int32 ->                            -- win_x : TBasicType TInt32
+    Ptr Int32 ->                            -- win_y : TBasicType TInt32
+    IO (Ptr Window)
+
+{-# DEPRECATED windowAtPointer ["(Since version 3.0)","Use gdk_device_get_window_at_position() instead."]#-}
+windowAtPointer ::
+    (MonadIO m) =>
+    m (Window,Int32,Int32)                  -- result
+windowAtPointer  = liftIO $ do
+    winX <- allocMem :: IO (Ptr Int32)
+    winY <- allocMem :: IO (Ptr Int32)
+    result <- gdk_window_at_pointer winX winY
+    checkUnexpectedReturnNULL "gdk_window_at_pointer" result
+    result' <- (newObject Window) result
+    winX' <- peek winX
+    winY' <- peek winY
+    freeMem winX
+    freeMem winY
+    return (result', winX', winY')
+
+-- method Window::constrain_size
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "geometry", argType = TInterface "Gdk" "Geometry", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "flags", argType = TInterface "Gdk" "WindowHints", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "width", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "height", argType = TBasicType TInt32, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "new_width", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "new_height", argType = TBasicType TInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_constrain_size" gdk_window_constrain_size :: 
+    Ptr Geometry ->                         -- geometry : TInterface "Gdk" "Geometry"
+    CUInt ->                                -- flags : TInterface "Gdk" "WindowHints"
+    Int32 ->                                -- width : TBasicType TInt32
+    Int32 ->                                -- height : TBasicType TInt32
+    Ptr Int32 ->                            -- new_width : TBasicType TInt32
+    Ptr Int32 ->                            -- new_height : TBasicType TInt32
+    IO ()
+
+
+windowConstrainSize ::
+    (MonadIO m) =>
+    Geometry                                -- geometry
+    -> [WindowHints]                        -- flags
+    -> Int32                                -- width
+    -> Int32                                -- height
+    -> m (Int32,Int32)                      -- result
+windowConstrainSize geometry flags width height = liftIO $ do
+    let geometry' = unsafeManagedPtrGetPtr geometry
+    let flags' = gflagsToWord flags
+    newWidth <- allocMem :: IO (Ptr Int32)
+    newHeight <- allocMem :: IO (Ptr Int32)
+    gdk_window_constrain_size geometry' flags' width height newWidth newHeight
+    newWidth' <- peek newWidth
+    newHeight' <- peek newHeight
+    touchManagedPtr geometry
+    freeMem newWidth
+    freeMem newHeight
+    return (newWidth', newHeight')
+
+-- method Window::process_all_updates
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_process_all_updates" gdk_window_process_all_updates :: 
+    IO ()
+
+
+windowProcessAllUpdates ::
+    (MonadIO m) =>
+    m ()                                    -- result
+windowProcessAllUpdates  = liftIO $ do
+    gdk_window_process_all_updates
+    return ()
+
+-- method Window::set_debug_updates
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "setting", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_window_set_debug_updates" gdk_window_set_debug_updates :: 
+    CInt ->                                 -- setting : TBasicType TBoolean
+    IO ()
+
+
+windowSetDebugUpdates ::
+    (MonadIO m) =>
+    Bool                                    -- setting
+    -> m ()                                 -- result
 windowSetDebugUpdates setting = liftIO $ do
     let setting' = (fromIntegral . fromEnum) setting
     gdk_window_set_debug_updates setting'
diff --git a/GI/Gdk/Objects/Window.hs-boot b/GI/Gdk/Objects/Window.hs-boot
--- a/GI/Gdk/Objects/Window.hs-boot
+++ b/GI/Gdk/Objects/Window.hs-boot
@@ -16,3 +16,154 @@
 data WindowFromEmbedderSignalInfo
 data WindowPickEmbeddedChildSignalInfo
 data WindowToEmbedderSignalInfo
+data WindowBeepMethodInfo
+data WindowBeginMoveDragMethodInfo
+data WindowBeginMoveDragForDeviceMethodInfo
+data WindowBeginPaintRectMethodInfo
+data WindowBeginPaintRegionMethodInfo
+data WindowBeginResizeDragMethodInfo
+data WindowBeginResizeDragForDeviceMethodInfo
+data WindowConfigureFinishedMethodInfo
+data WindowCoordsFromParentMethodInfo
+data WindowCoordsToParentMethodInfo
+data WindowCreateGlContextMethodInfo
+data WindowCreateSimilarImageSurfaceMethodInfo
+data WindowCreateSimilarSurfaceMethodInfo
+data WindowDeiconifyMethodInfo
+data WindowDestroyMethodInfo
+data WindowDestroyNotifyMethodInfo
+data WindowEnableSynchronizedConfigureMethodInfo
+data WindowEndPaintMethodInfo
+data WindowEnsureNativeMethodInfo
+data WindowFlushMethodInfo
+data WindowFocusMethodInfo
+data WindowFreezeToplevelUpdatesLibgtkOnlyMethodInfo
+data WindowFreezeUpdatesMethodInfo
+data WindowFullscreenMethodInfo
+data WindowFullscreenOnMonitorMethodInfo
+data WindowGeometryChangedMethodInfo
+data WindowGetAcceptFocusMethodInfo
+data WindowGetBackgroundPatternMethodInfo
+data WindowGetChildrenMethodInfo
+data WindowGetChildrenWithUserDataMethodInfo
+data WindowGetClipRegionMethodInfo
+data WindowGetCompositedMethodInfo
+data WindowGetCursorMethodInfo
+data WindowGetDecorationsMethodInfo
+data WindowGetDeviceCursorMethodInfo
+data WindowGetDeviceEventsMethodInfo
+data WindowGetDevicePositionMethodInfo
+data WindowGetDevicePositionDoubleMethodInfo
+data WindowGetDisplayMethodInfo
+data WindowGetDragProtocolMethodInfo
+data WindowGetEffectiveParentMethodInfo
+data WindowGetEffectiveToplevelMethodInfo
+data WindowGetEventCompressionMethodInfo
+data WindowGetEventsMethodInfo
+data WindowGetFocusOnMapMethodInfo
+data WindowGetFrameClockMethodInfo
+data WindowGetFrameExtentsMethodInfo
+data WindowGetFullscreenModeMethodInfo
+data WindowGetGeometryMethodInfo
+data WindowGetGroupMethodInfo
+data WindowGetHeightMethodInfo
+data WindowGetModalHintMethodInfo
+data WindowGetOriginMethodInfo
+data WindowGetParentMethodInfo
+data WindowGetPassThroughMethodInfo
+data WindowGetPointerMethodInfo
+data WindowGetPositionMethodInfo
+data WindowGetRootCoordsMethodInfo
+data WindowGetRootOriginMethodInfo
+data WindowGetScaleFactorMethodInfo
+data WindowGetScreenMethodInfo
+data WindowGetSourceEventsMethodInfo
+data WindowGetStateMethodInfo
+data WindowGetSupportMultideviceMethodInfo
+data WindowGetToplevelMethodInfo
+data WindowGetTypeHintMethodInfo
+data WindowGetUpdateAreaMethodInfo
+data WindowGetUserDataMethodInfo
+data WindowGetVisibleRegionMethodInfo
+data WindowGetVisualMethodInfo
+data WindowGetWidthMethodInfo
+data WindowGetWindowTypeMethodInfo
+data WindowHasNativeMethodInfo
+data WindowHideMethodInfo
+data WindowIconifyMethodInfo
+data WindowInputShapeCombineRegionMethodInfo
+data WindowInvalidateMaybeRecurseMethodInfo
+data WindowInvalidateRectMethodInfo
+data WindowInvalidateRegionMethodInfo
+data WindowIsDestroyedMethodInfo
+data WindowIsInputOnlyMethodInfo
+data WindowIsShapedMethodInfo
+data WindowIsViewableMethodInfo
+data WindowIsVisibleMethodInfo
+data WindowLowerMethodInfo
+data WindowMarkPaintFromClipMethodInfo
+data WindowMaximizeMethodInfo
+data WindowMergeChildInputShapesMethodInfo
+data WindowMergeChildShapesMethodInfo
+data WindowMoveMethodInfo
+data WindowMoveRegionMethodInfo
+data WindowMoveResizeMethodInfo
+data WindowPeekChildrenMethodInfo
+data WindowProcessUpdatesMethodInfo
+data WindowRaiseMethodInfo
+data WindowRegisterDndMethodInfo
+data WindowReparentMethodInfo
+data WindowResizeMethodInfo
+data WindowRestackMethodInfo
+data WindowScrollMethodInfo
+data WindowSetAcceptFocusMethodInfo
+data WindowSetBackgroundMethodInfo
+data WindowSetBackgroundPatternMethodInfo
+data WindowSetBackgroundRgbaMethodInfo
+data WindowSetChildInputShapesMethodInfo
+data WindowSetChildShapesMethodInfo
+data WindowSetCompositedMethodInfo
+data WindowSetCursorMethodInfo
+data WindowSetDecorationsMethodInfo
+data WindowSetDeviceCursorMethodInfo
+data WindowSetDeviceEventsMethodInfo
+data WindowSetEventCompressionMethodInfo
+data WindowSetEventsMethodInfo
+data WindowSetFocusOnMapMethodInfo
+data WindowSetFullscreenModeMethodInfo
+data WindowSetFunctionsMethodInfo
+data WindowSetGeometryHintsMethodInfo
+data WindowSetGroupMethodInfo
+data WindowSetIconListMethodInfo
+data WindowSetIconNameMethodInfo
+data WindowSetKeepAboveMethodInfo
+data WindowSetKeepBelowMethodInfo
+data WindowSetModalHintMethodInfo
+data WindowSetOpacityMethodInfo
+data WindowSetOpaqueRegionMethodInfo
+data WindowSetOverrideRedirectMethodInfo
+data WindowSetPassThroughMethodInfo
+data WindowSetRoleMethodInfo
+data WindowSetShadowWidthMethodInfo
+data WindowSetSkipPagerHintMethodInfo
+data WindowSetSkipTaskbarHintMethodInfo
+data WindowSetSourceEventsMethodInfo
+data WindowSetStartupIdMethodInfo
+data WindowSetStaticGravitiesMethodInfo
+data WindowSetSupportMultideviceMethodInfo
+data WindowSetTitleMethodInfo
+data WindowSetTransientForMethodInfo
+data WindowSetTypeHintMethodInfo
+data WindowSetUrgencyHintMethodInfo
+data WindowSetUserDataMethodInfo
+data WindowShapeCombineRegionMethodInfo
+data WindowShowMethodInfo
+data WindowShowUnraisedMethodInfo
+data WindowShowWindowMenuMethodInfo
+data WindowStickMethodInfo
+data WindowThawToplevelUpdatesLibgtkOnlyMethodInfo
+data WindowThawUpdatesMethodInfo
+data WindowUnfullscreenMethodInfo
+data WindowUnmaximizeMethodInfo
+data WindowUnstickMethodInfo
+data WindowWithdrawMethodInfo
diff --git a/GI/Gdk/Structs.hs b/GI/Gdk/Structs.hs
--- a/GI/Gdk/Structs.hs
+++ b/GI/Gdk/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/Gdk/Structs/Atom.hs b/GI/Gdk/Structs/Atom.hs
--- a/GI/Gdk/Structs/Atom.hs
+++ b/GI/Gdk/Structs/Atom.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -17,7 +18,16 @@
 
 
  -- * Methods
+-- ** atomIntern
+    atomIntern                              ,
+
+
+-- ** atomInternStaticString
+    atomInternStaticString                  ,
+
+
 -- ** atomName
+    AtomNameMethodInfo                      ,
     atomName                                ,
 
 
@@ -41,9 +51,8 @@
 
 -- method Atom::name
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Atom", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -55,8 +64,8 @@
 
 atomName ::
     (MonadIO m) =>
-    Atom ->                                 -- _obj
-    m T.Text
+    Atom                                    -- _obj
+    -> m T.Text                             -- result
 atomName _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_atom_name _obj'
@@ -65,5 +74,76 @@
     freeMem result
     touchManagedPtr _obj
     return result'
+
+data AtomNameMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo AtomNameMethodInfo Atom signature where
+    overloadedMethod _ = atomName
+
+-- method Atom::intern
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "only_if_exists", argType = TBasicType TBoolean, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Atom"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_atom_intern" gdk_atom_intern :: 
+    CString ->                              -- atom_name : TBasicType TUTF8
+    CInt ->                                 -- only_if_exists : TBasicType TBoolean
+    IO (Ptr Atom)
+
+
+atomIntern ::
+    (MonadIO m) =>
+    T.Text                                  -- atomName
+    -> Bool                                 -- onlyIfExists
+    -> m Atom                               -- result
+atomIntern atomName onlyIfExists = liftIO $ do
+    atomName' <- textToCString atomName
+    let onlyIfExists' = (fromIntegral . fromEnum) onlyIfExists
+    result <- gdk_atom_intern atomName' onlyIfExists'
+    checkUnexpectedReturnNULL "gdk_atom_intern" result
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    result' <- (\x -> Atom <$> newForeignPtr_ x) result
+    freeMem atomName'
+    return result'
+
+-- method Atom::intern_static_string
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "atom_name", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Atom"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_atom_intern_static_string" gdk_atom_intern_static_string :: 
+    CString ->                              -- atom_name : TBasicType TUTF8
+    IO (Ptr Atom)
+
+
+atomInternStaticString ::
+    (MonadIO m) =>
+    T.Text                                  -- atomName
+    -> m Atom                               -- result
+atomInternStaticString atomName = liftIO $ do
+    atomName' <- textToCString atomName
+    result <- gdk_atom_intern_static_string atomName'
+    checkUnexpectedReturnNULL "gdk_atom_intern_static_string" result
+    -- XXX Wrapping a foreign struct/union with no known destructor, leak?
+    result' <- (\x -> Atom <$> newForeignPtr_ x) result
+    freeMem atomName'
+    return result'
+
+type family ResolveAtomMethod (t :: Symbol) (o :: *) :: * where
+    ResolveAtomMethod "name" o = AtomNameMethodInfo
+    ResolveAtomMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveAtomMethod t Atom, MethodInfo info Atom p) => IsLabelProxy t (Atom -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveAtomMethod t Atom, MethodInfo info Atom p) => IsLabel t (Atom -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/Atom.hs-boot b/GI/Gdk/Structs/Atom.hs-boot
--- a/GI/Gdk/Structs/Atom.hs-boot
+++ b/GI/Gdk/Structs/Atom.hs-boot
@@ -8,3 +8,4 @@
 import qualified Data.Map as Map
 
 newtype Atom = Atom (ForeignPtr Atom)
+data AtomNameMethodInfo
diff --git a/GI/Gdk/Structs/Color.hs b/GI/Gdk/Structs/Color.hs
--- a/GI/Gdk/Structs/Color.hs
+++ b/GI/Gdk/Structs/Color.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -13,27 +14,37 @@
 
 -- * Exported types
     Color(..)                               ,
+    newZeroColor                            ,
     noColor                                 ,
 
 
  -- * Methods
 -- ** colorCopy
+    ColorCopyMethodInfo                     ,
     colorCopy                               ,
 
 
 -- ** colorEqual
+    ColorEqualMethodInfo                    ,
     colorEqual                              ,
 
 
 -- ** colorFree
+    ColorFreeMethodInfo                     ,
     colorFree                               ,
 
 
 -- ** colorHash
+    ColorHashMethodInfo                     ,
     colorHash                               ,
 
 
+-- ** colorParse
+    colorParse                              ,
+
+
 -- ** colorToString
+    ColorToStringMethodInfo                 ,
     colorToString                           ,
 
 
@@ -77,6 +88,10 @@
 instance BoxedObject Color where
     boxedType _ = c_gdk_color_get_type
 
+-- | Construct a `Color` struct initialized to zero.
+newZeroColor :: MonadIO m => m Color
+newZeroColor = liftIO $ callocBoxedBytes 12 >>= wrapBoxed Color
+
 noColor :: Maybe Color
 noColor = Nothing
 
@@ -102,9 +117,8 @@
 
 -- method Color::copy
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Color"
 -- throws : False
 -- Skip return : False
@@ -116,8 +130,8 @@
 {-# DEPRECATED colorCopy ["(Since version 3.14)","Use #GdkRGBA"]#-}
 colorCopy ::
     (MonadIO m) =>
-    Color ->                                -- _obj
-    m Color
+    Color                                   -- _obj
+    -> m Color                              -- result
 colorCopy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_color_copy _obj'
@@ -126,11 +140,14 @@
     touchManagedPtr _obj
     return result'
 
+data ColorCopyMethodInfo
+instance (signature ~ (m Color), MonadIO m) => MethodInfo ColorCopyMethodInfo Color signature where
+    overloadedMethod _ = colorCopy
+
 -- method Color::equal
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "colorb", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "colorb", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "colorb", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -143,9 +160,9 @@
 {-# DEPRECATED colorEqual ["(Since version 3.14)","Use #GdkRGBA"]#-}
 colorEqual ::
     (MonadIO m) =>
-    Color ->                                -- _obj
-    Color ->                                -- colorb
-    m Bool
+    Color                                   -- _obj
+    -> Color                                -- colorb
+    -> m Bool                               -- result
 colorEqual _obj colorb = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let colorb' = unsafeManagedPtrGetPtr colorb
@@ -155,11 +172,14 @@
     touchManagedPtr colorb
     return result'
 
+data ColorEqualMethodInfo
+instance (signature ~ (Color -> m Bool), MonadIO m) => MethodInfo ColorEqualMethodInfo Color signature where
+    overloadedMethod _ = colorEqual
+
 -- method Color::free
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -171,19 +191,22 @@
 {-# DEPRECATED colorFree ["(Since version 3.14)","Use #GdkRGBA"]#-}
 colorFree ::
     (MonadIO m) =>
-    Color ->                                -- _obj
-    m ()
+    Color                                   -- _obj
+    -> m ()                                 -- result
 colorFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     gdk_color_free _obj'
     touchManagedPtr _obj
     return ()
 
+data ColorFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo ColorFreeMethodInfo Color signature where
+    overloadedMethod _ = colorFree
+
 -- method Color::hash
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUInt32
 -- throws : False
 -- Skip return : False
@@ -195,19 +218,22 @@
 {-# DEPRECATED colorHash ["(Since version 3.14)","Use #GdkRGBA"]#-}
 colorHash ::
     (MonadIO m) =>
-    Color ->                                -- _obj
-    m Word32
+    Color                                   -- _obj
+    -> m Word32                             -- result
 colorHash _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_color_hash _obj'
     touchManagedPtr _obj
     return result
 
+data ColorHashMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo ColorHashMethodInfo Color signature where
+    overloadedMethod _ = colorHash
+
 -- method Color::to_string
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Color", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -219,8 +245,8 @@
 {-# DEPRECATED colorToString ["(Since version 3.14)","Use #GdkRGBA"]#-}
 colorToString ::
     (MonadIO m) =>
-    Color ->                                -- _obj
-    m T.Text
+    Color                                   -- _obj
+    -> m T.Text                             -- result
 colorToString _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_color_to_string _obj'
@@ -229,5 +255,52 @@
     freeMem result
     touchManagedPtr _obj
     return result'
+
+data ColorToStringMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo ColorToStringMethodInfo Color signature where
+    overloadedMethod _ = colorToString
+
+-- method Color::parse
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "color", argType = TInterface "Gdk" "Color", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TBoolean
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_color_parse" gdk_color_parse :: 
+    CString ->                              -- spec : TBasicType TUTF8
+    Ptr Color ->                            -- color : TInterface "Gdk" "Color"
+    IO CInt
+
+{-# DEPRECATED colorParse ["(Since version 3.14)","Use #GdkRGBA"]#-}
+colorParse ::
+    (MonadIO m) =>
+    T.Text                                  -- spec
+    -> m (Bool,Color)                       -- result
+colorParse spec = liftIO $ do
+    spec' <- textToCString spec
+    color <- callocBoxedBytes 12 :: IO (Ptr Color)
+    result <- gdk_color_parse spec' color
+    let result' = (/= 0) result
+    color' <- (wrapBoxed Color) color
+    freeMem spec'
+    return (result', color')
+
+type family ResolveColorMethod (t :: Symbol) (o :: *) :: * where
+    ResolveColorMethod "copy" o = ColorCopyMethodInfo
+    ResolveColorMethod "equal" o = ColorEqualMethodInfo
+    ResolveColorMethod "free" o = ColorFreeMethodInfo
+    ResolveColorMethod "hash" o = ColorHashMethodInfo
+    ResolveColorMethod "toString" o = ColorToStringMethodInfo
+    ResolveColorMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveColorMethod t Color, MethodInfo info Color p) => IsLabelProxy t (Color -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveColorMethod t Color, MethodInfo info Color p) => IsLabel t (Color -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/Color.hs-boot b/GI/Gdk/Structs/Color.hs-boot
--- a/GI/Gdk/Structs/Color.hs-boot
+++ b/GI/Gdk/Structs/Color.hs-boot
@@ -9,3 +9,8 @@
 
 newtype Color = Color (ForeignPtr Color)
 instance BoxedObject Color where
+data ColorCopyMethodInfo
+data ColorEqualMethodInfo
+data ColorFreeMethodInfo
+data ColorHashMethodInfo
+data ColorToStringMethodInfo
diff --git a/GI/Gdk/Structs/EventAny.hs b/GI/Gdk/Structs/EventAny.hs
--- a/GI/Gdk/Structs/EventAny.hs
+++ b/GI/Gdk/Structs/EventAny.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
     EventAny(..)                            ,
+    newZeroEventAny                         ,
     noEventAny                              ,
 
 
@@ -45,6 +47,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventAny = EventAny (ForeignPtr EventAny)
+-- | Construct a `EventAny` struct initialized to zero.
+newZeroEventAny :: MonadIO m => m EventAny
+newZeroEventAny = liftIO $ callocBytes 24 >>= wrapPtr EventAny
+
 noEventAny :: Maybe EventAny
 noEventAny = Nothing
 
@@ -64,5 +70,16 @@
 eventAnyReadSendEvent s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 16) :: IO Int8
     return val
+
+type family ResolveEventAnyMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventAnyMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventAnyMethod t EventAny, MethodInfo info EventAny p) => IsLabelProxy t (EventAny -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventAnyMethod t EventAny, MethodInfo info EventAny p) => IsLabel t (EventAny -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventButton.hs b/GI/Gdk/Structs/EventButton.hs
--- a/GI/Gdk/Structs/EventButton.hs
+++ b/GI/Gdk/Structs/EventButton.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -44,6 +45,7 @@
 
 -- * Exported types
     EventButton(..)                         ,
+    newZeroEventButton                      ,
     noEventButton                           ,
 
 
@@ -111,6 +113,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventButton = EventButton (ForeignPtr EventButton)
+-- | Construct a `EventButton` struct initialized to zero.
+newZeroEventButton :: MonadIO m => m EventButton
+newZeroEventButton = liftIO $ callocBytes 80 >>= wrapPtr EventButton
+
 noEventButton :: Maybe EventButton
 noEventButton = Nothing
 
@@ -182,5 +188,16 @@
     val <- peek (ptr `plusPtr` 72) :: IO CDouble
     let val' = realToFrac val
     return val'
+
+type family ResolveEventButtonMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventButtonMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventButtonMethod t EventButton, MethodInfo info EventButton p) => IsLabelProxy t (EventButton -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventButtonMethod t EventButton, MethodInfo info EventButton p) => IsLabel t (EventButton -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventConfigure.hs b/GI/Gdk/Structs/EventConfigure.hs
--- a/GI/Gdk/Structs/EventConfigure.hs
+++ b/GI/Gdk/Structs/EventConfigure.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
     EventConfigure(..)                      ,
+    newZeroEventConfigure                   ,
     noEventConfigure                        ,
 
 
@@ -59,6 +61,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventConfigure = EventConfigure (ForeignPtr EventConfigure)
+-- | Construct a `EventConfigure` struct initialized to zero.
+newZeroEventConfigure :: MonadIO m => m EventConfigure
+newZeroEventConfigure = liftIO $ callocBytes 40 >>= wrapPtr EventConfigure
+
 noEventConfigure :: Maybe EventConfigure
 noEventConfigure = Nothing
 
@@ -98,5 +104,16 @@
 eventConfigureReadHeight s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 32) :: IO Int32
     return val
+
+type family ResolveEventConfigureMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventConfigureMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventConfigureMethod t EventConfigure, MethodInfo info EventConfigure p) => IsLabelProxy t (EventConfigure -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventConfigureMethod t EventConfigure, MethodInfo info EventConfigure p) => IsLabel t (EventConfigure -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventCrossing.hs b/GI/Gdk/Structs/EventCrossing.hs
--- a/GI/Gdk/Structs/EventCrossing.hs
+++ b/GI/Gdk/Structs/EventCrossing.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
     EventCrossing(..)                       ,
+    newZeroEventCrossing                    ,
     noEventCrossing                         ,
 
 
@@ -83,6 +85,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventCrossing = EventCrossing (ForeignPtr EventCrossing)
+-- | Construct a `EventCrossing` struct initialized to zero.
+newZeroEventCrossing :: MonadIO m => m EventCrossing
+newZeroEventCrossing = liftIO $ callocBytes 88 >>= wrapPtr EventCrossing
+
 noEventCrossing :: Maybe EventCrossing
 noEventCrossing = Nothing
 
@@ -161,5 +167,16 @@
     val <- peek (ptr `plusPtr` 84) :: IO CUInt
     let val' = wordToGFlags val
     return val'
+
+type family ResolveEventCrossingMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventCrossingMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventCrossingMethod t EventCrossing, MethodInfo info EventCrossing p) => IsLabelProxy t (EventCrossing -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventCrossingMethod t EventCrossing, MethodInfo info EventCrossing p) => IsLabel t (EventCrossing -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventDND.hs b/GI/Gdk/Structs/EventDND.hs
--- a/GI/Gdk/Structs/EventDND.hs
+++ b/GI/Gdk/Structs/EventDND.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
     EventDND(..)                            ,
+    newZeroEventDND                         ,
     noEventDND                              ,
 
 
@@ -59,6 +61,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventDND = EventDND (ForeignPtr EventDND)
+-- | Construct a `EventDND` struct initialized to zero.
+newZeroEventDND :: MonadIO m => m EventDND
+newZeroEventDND = liftIO $ callocBytes 40 >>= wrapPtr EventDND
+
 noEventDND :: Maybe EventDND
 noEventDND = Nothing
 
@@ -99,5 +105,16 @@
 eventDNDReadYRoot s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 38) :: IO Int16
     return val
+
+type family ResolveEventDNDMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventDNDMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventDNDMethod t EventDND, MethodInfo info EventDND p) => IsLabelProxy t (EventDND -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventDNDMethod t EventDND, MethodInfo info EventDND p) => IsLabel t (EventDND -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventExpose.hs b/GI/Gdk/Structs/EventExpose.hs
--- a/GI/Gdk/Structs/EventExpose.hs
+++ b/GI/Gdk/Structs/EventExpose.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
     EventExpose(..)                         ,
+    newZeroEventExpose                      ,
     noEventExpose                           ,
 
 
@@ -57,6 +59,10 @@
 import qualified GI.Cairo as Cairo
 
 newtype EventExpose = EventExpose (ForeignPtr EventExpose)
+-- | Construct a `EventExpose` struct initialized to zero.
+newZeroEventExpose :: MonadIO m => m EventExpose
+newZeroEventExpose = liftIO $ callocBytes 56 >>= wrapPtr EventExpose
+
 noEventExpose :: Maybe EventExpose
 noEventExpose = Nothing
 
@@ -93,5 +99,16 @@
 eventExposeReadCount s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 48) :: IO Int32
     return val
+
+type family ResolveEventExposeMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventExposeMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventExposeMethod t EventExpose, MethodInfo info EventExpose p) => IsLabelProxy t (EventExpose -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventExposeMethod t EventExpose, MethodInfo info EventExpose p) => IsLabel t (EventExpose -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventFocus.hs b/GI/Gdk/Structs/EventFocus.hs
--- a/GI/Gdk/Structs/EventFocus.hs
+++ b/GI/Gdk/Structs/EventFocus.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
     EventFocus(..)                          ,
+    newZeroEventFocus                       ,
     noEventFocus                            ,
 
 
@@ -47,6 +49,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventFocus = EventFocus (ForeignPtr EventFocus)
+-- | Construct a `EventFocus` struct initialized to zero.
+newZeroEventFocus :: MonadIO m => m EventFocus
+newZeroEventFocus = liftIO $ callocBytes 24 >>= wrapPtr EventFocus
+
 noEventFocus :: Maybe EventFocus
 noEventFocus = Nothing
 
@@ -71,5 +77,16 @@
 eventFocusReadIn s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 18) :: IO Int16
     return val
+
+type family ResolveEventFocusMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventFocusMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventFocusMethod t EventFocus, MethodInfo info EventFocus p) => IsLabelProxy t (EventFocus -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventFocusMethod t EventFocus, MethodInfo info EventFocus p) => IsLabel t (EventFocus -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventGrabBroken.hs b/GI/Gdk/Structs/EventGrabBroken.hs
--- a/GI/Gdk/Structs/EventGrabBroken.hs
+++ b/GI/Gdk/Structs/EventGrabBroken.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -16,6 +17,7 @@
 
 -- * Exported types
     EventGrabBroken(..)                     ,
+    newZeroEventGrabBroken                  ,
     noEventGrabBroken                       ,
 
 
@@ -59,6 +61,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventGrabBroken = EventGrabBroken (ForeignPtr EventGrabBroken)
+-- | Construct a `EventGrabBroken` struct initialized to zero.
+newZeroEventGrabBroken :: MonadIO m => m EventGrabBroken
+newZeroEventGrabBroken = liftIO $ callocBytes 40 >>= wrapPtr EventGrabBroken
+
 noEventGrabBroken :: Maybe EventGrabBroken
 noEventGrabBroken = Nothing
 
@@ -96,5 +102,16 @@
     val <- peek (ptr `plusPtr` 32) :: IO (Ptr Window)
     val' <- (newObject Window) val
     return val'
+
+type family ResolveEventGrabBrokenMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventGrabBrokenMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventGrabBrokenMethod t EventGrabBroken, MethodInfo info EventGrabBroken p) => IsLabelProxy t (EventGrabBroken -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventGrabBrokenMethod t EventGrabBroken, MethodInfo info EventGrabBroken p) => IsLabel t (EventGrabBroken -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventKey.hs b/GI/Gdk/Structs/EventKey.hs
--- a/GI/Gdk/Structs/EventKey.hs
+++ b/GI/Gdk/Structs/EventKey.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
     EventKey(..)                            ,
+    newZeroEventKey                         ,
     noEventKey                              ,
 
 
@@ -75,6 +77,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventKey = EventKey (ForeignPtr EventKey)
+-- | Construct a `EventKey` struct initialized to zero.
+newZeroEventKey :: MonadIO m => m EventKey
+newZeroEventKey = liftIO $ callocBytes 56 >>= wrapPtr EventKey
+
 noEventKey :: Maybe EventKey
 noEventKey = Nothing
 
@@ -136,5 +142,16 @@
 eventKeyReadIsModifier s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 52) :: IO Word32
     return val
+
+type family ResolveEventKeyMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventKeyMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventKeyMethod t EventKey, MethodInfo info EventKey p) => IsLabelProxy t (EventKey -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventKeyMethod t EventKey, MethodInfo info EventKey p) => IsLabel t (EventKey -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventMotion.hs b/GI/Gdk/Structs/EventMotion.hs
--- a/GI/Gdk/Structs/EventMotion.hs
+++ b/GI/Gdk/Structs/EventMotion.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
     EventMotion(..)                         ,
+    newZeroEventMotion                      ,
     noEventMotion                           ,
 
 
@@ -79,6 +81,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventMotion = EventMotion (ForeignPtr EventMotion)
+-- | Construct a `EventMotion` struct initialized to zero.
+newZeroEventMotion :: MonadIO m => m EventMotion
+newZeroEventMotion = liftIO $ callocBytes 80 >>= wrapPtr EventMotion
+
 noEventMotion :: Maybe EventMotion
 noEventMotion = Nothing
 
@@ -150,5 +156,16 @@
     val <- peek (ptr `plusPtr` 72) :: IO CDouble
     let val' = realToFrac val
     return val'
+
+type family ResolveEventMotionMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventMotionMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventMotionMethod t EventMotion, MethodInfo info EventMotion p) => IsLabelProxy t (EventMotion -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventMotionMethod t EventMotion, MethodInfo info EventMotion p) => IsLabel t (EventMotion -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventOwnerChange.hs b/GI/Gdk/Structs/EventOwnerChange.hs
--- a/GI/Gdk/Structs/EventOwnerChange.hs
+++ b/GI/Gdk/Structs/EventOwnerChange.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
     EventOwnerChange(..)                    ,
+    newZeroEventOwnerChange                 ,
     noEventOwnerChange                      ,
 
 
@@ -65,6 +67,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventOwnerChange = EventOwnerChange (ForeignPtr EventOwnerChange)
+-- | Construct a `EventOwnerChange` struct initialized to zero.
+newZeroEventOwnerChange :: MonadIO m => m EventOwnerChange
+newZeroEventOwnerChange = liftIO $ callocBytes 56 >>= wrapPtr EventOwnerChange
+
 noEventOwnerChange :: Maybe EventOwnerChange
 noEventOwnerChange = Nothing
 
@@ -113,5 +119,16 @@
 eventOwnerChangeReadSelectionTime s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 52) :: IO Word32
     return val
+
+type family ResolveEventOwnerChangeMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventOwnerChangeMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventOwnerChangeMethod t EventOwnerChange, MethodInfo info EventOwnerChange p) => IsLabelProxy t (EventOwnerChange -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventOwnerChangeMethod t EventOwnerChange, MethodInfo info EventOwnerChange p) => IsLabel t (EventOwnerChange -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventProperty.hs b/GI/Gdk/Structs/EventProperty.hs
--- a/GI/Gdk/Structs/EventProperty.hs
+++ b/GI/Gdk/Structs/EventProperty.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
     EventProperty(..)                       ,
+    newZeroEventProperty                    ,
     noEventProperty                         ,
 
 
@@ -55,6 +57,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventProperty = EventProperty (ForeignPtr EventProperty)
+-- | Construct a `EventProperty` struct initialized to zero.
+newZeroEventProperty :: MonadIO m => m EventProperty
+newZeroEventProperty = liftIO $ callocBytes 40 >>= wrapPtr EventProperty
+
 noEventProperty :: Maybe EventProperty
 noEventProperty = Nothing
 
@@ -92,5 +98,16 @@
     val <- peek (ptr `plusPtr` 36) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
+
+type family ResolveEventPropertyMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventPropertyMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventPropertyMethod t EventProperty, MethodInfo info EventProperty p) => IsLabelProxy t (EventProperty -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventPropertyMethod t EventProperty, MethodInfo info EventProperty p) => IsLabel t (EventProperty -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventProximity.hs b/GI/Gdk/Structs/EventProximity.hs
--- a/GI/Gdk/Structs/EventProximity.hs
+++ b/GI/Gdk/Structs/EventProximity.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
     EventProximity(..)                      ,
+    newZeroEventProximity                   ,
     noEventProximity                        ,
 
 
@@ -59,6 +61,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventProximity = EventProximity (ForeignPtr EventProximity)
+-- | Construct a `EventProximity` struct initialized to zero.
+newZeroEventProximity :: MonadIO m => m EventProximity
+newZeroEventProximity = liftIO $ callocBytes 32 >>= wrapPtr EventProximity
+
 noEventProximity :: Maybe EventProximity
 noEventProximity = Nothing
 
@@ -89,5 +95,16 @@
     val <- peek (ptr `plusPtr` 24) :: IO (Ptr Device)
     val' <- (newObject Device) val
     return val'
+
+type family ResolveEventProximityMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventProximityMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventProximityMethod t EventProximity, MethodInfo info EventProximity p) => IsLabelProxy t (EventProximity -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventProximityMethod t EventProximity, MethodInfo info EventProximity p) => IsLabel t (EventProximity -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventScroll.hs b/GI/Gdk/Structs/EventScroll.hs
--- a/GI/Gdk/Structs/EventScroll.hs
+++ b/GI/Gdk/Structs/EventScroll.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -19,6 +20,7 @@
 
 -- * Exported types
     EventScroll(..)                         ,
+    newZeroEventScroll                      ,
     noEventScroll                           ,
 
 
@@ -90,6 +92,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventScroll = EventScroll (ForeignPtr EventScroll)
+-- | Construct a `EventScroll` struct initialized to zero.
+newZeroEventScroll :: MonadIO m => m EventScroll
+newZeroEventScroll = liftIO $ callocBytes 88 >>= wrapPtr EventScroll
+
 noEventScroll :: Maybe EventScroll
 noEventScroll = Nothing
 
@@ -168,5 +174,16 @@
     val <- peek (ptr `plusPtr` 80) :: IO CDouble
     let val' = realToFrac val
     return val'
+
+type family ResolveEventScrollMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventScrollMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventScrollMethod t EventScroll, MethodInfo info EventScroll p) => IsLabelProxy t (EventScroll -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventScrollMethod t EventScroll, MethodInfo info EventScroll p) => IsLabel t (EventScroll -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventSelection.hs b/GI/Gdk/Structs/EventSelection.hs
--- a/GI/Gdk/Structs/EventSelection.hs
+++ b/GI/Gdk/Structs/EventSelection.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
     EventSelection(..)                      ,
+    newZeroEventSelection                   ,
     noEventSelection                        ,
 
 
@@ -64,6 +66,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventSelection = EventSelection (ForeignPtr EventSelection)
+-- | Construct a `EventSelection` struct initialized to zero.
+newZeroEventSelection :: MonadIO m => m EventSelection
+newZeroEventSelection = liftIO $ callocBytes 64 >>= wrapPtr EventSelection
+
 noEventSelection :: Maybe EventSelection
 noEventSelection = Nothing
 
@@ -115,5 +121,16 @@
     val <- peek (ptr `plusPtr` 56) :: IO (Ptr Window)
     val' <- (newObject Window) val
     return val'
+
+type family ResolveEventSelectionMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventSelectionMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventSelectionMethod t EventSelection, MethodInfo info EventSelection p) => IsLabelProxy t (EventSelection -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventSelectionMethod t EventSelection, MethodInfo info EventSelection p) => IsLabel t (EventSelection -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventSequence.hs b/GI/Gdk/Structs/EventSequence.hs
--- a/GI/Gdk/Structs/EventSequence.hs
+++ b/GI/Gdk/Structs/EventSequence.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -34,5 +35,16 @@
 
 noEventSequence :: Maybe EventSequence
 noEventSequence = Nothing
+
+type family ResolveEventSequenceMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventSequenceMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventSequenceMethod t EventSequence, MethodInfo info EventSequence p) => IsLabelProxy t (EventSequence -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventSequenceMethod t EventSequence, MethodInfo info EventSequence p) => IsLabel t (EventSequence -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventSetting.hs b/GI/Gdk/Structs/EventSetting.hs
--- a/GI/Gdk/Structs/EventSetting.hs
+++ b/GI/Gdk/Structs/EventSetting.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
     EventSetting(..)                        ,
+    newZeroEventSetting                     ,
     noEventSetting                          ,
 
 
@@ -51,6 +53,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventSetting = EventSetting (ForeignPtr EventSetting)
+-- | Construct a `EventSetting` struct initialized to zero.
+newZeroEventSetting :: MonadIO m => m EventSetting
+newZeroEventSetting = liftIO $ callocBytes 32 >>= wrapPtr EventSetting
+
 noEventSetting :: Maybe EventSetting
 noEventSetting = Nothing
 
@@ -82,5 +88,16 @@
     val <- peek (ptr `plusPtr` 24) :: IO CString
     val' <- cstringToText val
     return val'
+
+type family ResolveEventSettingMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventSettingMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventSettingMethod t EventSetting, MethodInfo info EventSetting p) => IsLabelProxy t (EventSetting -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventSettingMethod t EventSetting, MethodInfo info EventSetting p) => IsLabel t (EventSetting -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventTouch.hs b/GI/Gdk/Structs/EventTouch.hs
--- a/GI/Gdk/Structs/EventTouch.hs
+++ b/GI/Gdk/Structs/EventTouch.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -21,6 +22,7 @@
 
 -- * Exported types
     EventTouch(..)                          ,
+    newZeroEventTouch                       ,
     noEventTouch                            ,
 
 
@@ -92,6 +94,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventTouch = EventTouch (ForeignPtr EventTouch)
+-- | Construct a `EventTouch` struct initialized to zero.
+newZeroEventTouch :: MonadIO m => m EventTouch
+newZeroEventTouch = liftIO $ callocBytes 96 >>= wrapPtr EventTouch
+
 noEventTouch :: Maybe EventTouch
 noEventTouch = Nothing
 
@@ -170,5 +176,16 @@
     val <- peek (ptr `plusPtr` 88) :: IO CDouble
     let val' = realToFrac val
     return val'
+
+type family ResolveEventTouchMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventTouchMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventTouchMethod t EventTouch, MethodInfo info EventTouch p) => IsLabelProxy t (EventTouch -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventTouchMethod t EventTouch, MethodInfo info EventTouch p) => IsLabel t (EventTouch -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventTouchpadPinch.hs b/GI/Gdk/Structs/EventTouchpadPinch.hs
--- a/GI/Gdk/Structs/EventTouchpadPinch.hs
+++ b/GI/Gdk/Structs/EventTouchpadPinch.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
     EventTouchpadPinch(..)                  ,
+    newZeroEventTouchpadPinch               ,
     noEventTouchpadPinch                    ,
 
 
@@ -91,6 +93,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventTouchpadPinch = EventTouchpadPinch (ForeignPtr EventTouchpadPinch)
+-- | Construct a `EventTouchpadPinch` struct initialized to zero.
+newZeroEventTouchpadPinch :: MonadIO m => m EventTouchpadPinch
+newZeroEventTouchpadPinch = liftIO $ callocBytes 104 >>= wrapPtr EventTouchpadPinch
+
 noEventTouchpadPinch :: Maybe EventTouchpadPinch
 noEventTouchpadPinch = Nothing
 
@@ -180,5 +186,16 @@
     val <- peek (ptr `plusPtr` 96) :: IO CUInt
     let val' = wordToGFlags val
     return val'
+
+type family ResolveEventTouchpadPinchMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventTouchpadPinchMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventTouchpadPinchMethod t EventTouchpadPinch, MethodInfo info EventTouchpadPinch p) => IsLabelProxy t (EventTouchpadPinch -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventTouchpadPinchMethod t EventTouchpadPinch, MethodInfo info EventTouchpadPinch p) => IsLabel t (EventTouchpadPinch -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventTouchpadSwipe.hs b/GI/Gdk/Structs/EventTouchpadSwipe.hs
--- a/GI/Gdk/Structs/EventTouchpadSwipe.hs
+++ b/GI/Gdk/Structs/EventTouchpadSwipe.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
     EventTouchpadSwipe(..)                  ,
+    newZeroEventTouchpadSwipe               ,
     noEventTouchpadSwipe                    ,
 
 
@@ -83,6 +85,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventTouchpadSwipe = EventTouchpadSwipe (ForeignPtr EventTouchpadSwipe)
+-- | Construct a `EventTouchpadSwipe` struct initialized to zero.
+newZeroEventTouchpadSwipe :: MonadIO m => m EventTouchpadSwipe
+newZeroEventTouchpadSwipe = liftIO $ callocBytes 88 >>= wrapPtr EventTouchpadSwipe
+
 noEventTouchpadSwipe :: Maybe EventTouchpadSwipe
 noEventTouchpadSwipe = Nothing
 
@@ -160,5 +166,16 @@
     val <- peek (ptr `plusPtr` 80) :: IO CUInt
     let val' = wordToGFlags val
     return val'
+
+type family ResolveEventTouchpadSwipeMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventTouchpadSwipeMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventTouchpadSwipeMethod t EventTouchpadSwipe, MethodInfo info EventTouchpadSwipe p) => IsLabelProxy t (EventTouchpadSwipe -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventTouchpadSwipeMethod t EventTouchpadSwipe, MethodInfo info EventTouchpadSwipe p) => IsLabel t (EventTouchpadSwipe -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventVisibility.hs b/GI/Gdk/Structs/EventVisibility.hs
--- a/GI/Gdk/Structs/EventVisibility.hs
+++ b/GI/Gdk/Structs/EventVisibility.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
     EventVisibility(..)                     ,
+    newZeroEventVisibility                  ,
     noEventVisibility                       ,
 
 
@@ -47,6 +49,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventVisibility = EventVisibility (ForeignPtr EventVisibility)
+-- | Construct a `EventVisibility` struct initialized to zero.
+newZeroEventVisibility :: MonadIO m => m EventVisibility
+newZeroEventVisibility = liftIO $ callocBytes 24 >>= wrapPtr EventVisibility
+
 noEventVisibility :: Maybe EventVisibility
 noEventVisibility = Nothing
 
@@ -72,5 +78,16 @@
     val <- peek (ptr `plusPtr` 20) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
+
+type family ResolveEventVisibilityMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventVisibilityMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventVisibilityMethod t EventVisibility, MethodInfo info EventVisibility p) => IsLabelProxy t (EventVisibility -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventVisibilityMethod t EventVisibility, MethodInfo info EventVisibility p) => IsLabel t (EventVisibility -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/EventWindowState.hs b/GI/Gdk/Structs/EventWindowState.hs
--- a/GI/Gdk/Structs/EventWindowState.hs
+++ b/GI/Gdk/Structs/EventWindowState.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
     EventWindowState(..)                    ,
+    newZeroEventWindowState                 ,
     noEventWindowState                      ,
 
 
@@ -51,6 +53,10 @@
 import GI.Gdk.Callbacks
 
 newtype EventWindowState = EventWindowState (ForeignPtr EventWindowState)
+-- | Construct a `EventWindowState` struct initialized to zero.
+newZeroEventWindowState :: MonadIO m => m EventWindowState
+newZeroEventWindowState = liftIO $ callocBytes 32 >>= wrapPtr EventWindowState
+
 noEventWindowState :: Maybe EventWindowState
 noEventWindowState = Nothing
 
@@ -82,5 +88,16 @@
     val <- peek (ptr `plusPtr` 24) :: IO CUInt
     let val' = wordToGFlags val
     return val'
+
+type family ResolveEventWindowStateMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventWindowStateMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventWindowStateMethod t EventWindowState, MethodInfo info EventWindowState p) => IsLabelProxy t (EventWindowState -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventWindowStateMethod t EventWindowState, MethodInfo info EventWindowState p) => IsLabel t (EventWindowState -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/FrameTimings.hs b/GI/Gdk/Structs/FrameTimings.hs
--- a/GI/Gdk/Structs/FrameTimings.hs
+++ b/GI/Gdk/Structs/FrameTimings.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -22,34 +23,42 @@
 
  -- * Methods
 -- ** frameTimingsGetComplete
+    FrameTimingsGetCompleteMethodInfo       ,
     frameTimingsGetComplete                 ,
 
 
 -- ** frameTimingsGetFrameCounter
+    FrameTimingsGetFrameCounterMethodInfo   ,
     frameTimingsGetFrameCounter             ,
 
 
 -- ** frameTimingsGetFrameTime
+    FrameTimingsGetFrameTimeMethodInfo      ,
     frameTimingsGetFrameTime                ,
 
 
 -- ** frameTimingsGetPredictedPresentationTime
+    FrameTimingsGetPredictedPresentationTimeMethodInfo,
     frameTimingsGetPredictedPresentationTime,
 
 
 -- ** frameTimingsGetPresentationTime
+    FrameTimingsGetPresentationTimeMethodInfo,
     frameTimingsGetPresentationTime         ,
 
 
 -- ** frameTimingsGetRefreshInterval
+    FrameTimingsGetRefreshIntervalMethodInfo,
     frameTimingsGetRefreshInterval          ,
 
 
 -- ** frameTimingsRef
+    FrameTimingsRefMethodInfo               ,
     frameTimingsRef                         ,
 
 
 -- ** frameTimingsUnref
+    FrameTimingsUnrefMethodInfo             ,
     frameTimingsUnref                       ,
 
 
@@ -79,9 +88,8 @@
 
 -- method FrameTimings::get_complete
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -93,8 +101,8 @@
 
 frameTimingsGetComplete ::
     (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Bool
+    FrameTimings                            -- _obj
+    -> m Bool                               -- result
 frameTimingsGetComplete _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_frame_timings_get_complete _obj'
@@ -102,11 +110,14 @@
     touchManagedPtr _obj
     return result'
 
+data FrameTimingsGetCompleteMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo FrameTimingsGetCompleteMethodInfo FrameTimings signature where
+    overloadedMethod _ = frameTimingsGetComplete
+
 -- method FrameTimings::get_frame_counter
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt64
 -- throws : False
 -- Skip return : False
@@ -118,19 +129,22 @@
 
 frameTimingsGetFrameCounter ::
     (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Int64
+    FrameTimings                            -- _obj
+    -> m Int64                              -- result
 frameTimingsGetFrameCounter _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_frame_timings_get_frame_counter _obj'
     touchManagedPtr _obj
     return result
 
+data FrameTimingsGetFrameCounterMethodInfo
+instance (signature ~ (m Int64), MonadIO m) => MethodInfo FrameTimingsGetFrameCounterMethodInfo FrameTimings signature where
+    overloadedMethod _ = frameTimingsGetFrameCounter
+
 -- method FrameTimings::get_frame_time
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt64
 -- throws : False
 -- Skip return : False
@@ -142,19 +156,22 @@
 
 frameTimingsGetFrameTime ::
     (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Int64
+    FrameTimings                            -- _obj
+    -> m Int64                              -- result
 frameTimingsGetFrameTime _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_frame_timings_get_frame_time _obj'
     touchManagedPtr _obj
     return result
 
+data FrameTimingsGetFrameTimeMethodInfo
+instance (signature ~ (m Int64), MonadIO m) => MethodInfo FrameTimingsGetFrameTimeMethodInfo FrameTimings signature where
+    overloadedMethod _ = frameTimingsGetFrameTime
+
 -- method FrameTimings::get_predicted_presentation_time
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt64
 -- throws : False
 -- Skip return : False
@@ -166,19 +183,22 @@
 
 frameTimingsGetPredictedPresentationTime ::
     (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Int64
+    FrameTimings                            -- _obj
+    -> m Int64                              -- result
 frameTimingsGetPredictedPresentationTime _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_frame_timings_get_predicted_presentation_time _obj'
     touchManagedPtr _obj
     return result
 
+data FrameTimingsGetPredictedPresentationTimeMethodInfo
+instance (signature ~ (m Int64), MonadIO m) => MethodInfo FrameTimingsGetPredictedPresentationTimeMethodInfo FrameTimings signature where
+    overloadedMethod _ = frameTimingsGetPredictedPresentationTime
+
 -- method FrameTimings::get_presentation_time
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt64
 -- throws : False
 -- Skip return : False
@@ -190,19 +210,22 @@
 
 frameTimingsGetPresentationTime ::
     (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Int64
+    FrameTimings                            -- _obj
+    -> m Int64                              -- result
 frameTimingsGetPresentationTime _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_frame_timings_get_presentation_time _obj'
     touchManagedPtr _obj
     return result
 
+data FrameTimingsGetPresentationTimeMethodInfo
+instance (signature ~ (m Int64), MonadIO m) => MethodInfo FrameTimingsGetPresentationTimeMethodInfo FrameTimings signature where
+    overloadedMethod _ = frameTimingsGetPresentationTime
+
 -- method FrameTimings::get_refresh_interval
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TInt64
 -- throws : False
 -- Skip return : False
@@ -214,19 +237,22 @@
 
 frameTimingsGetRefreshInterval ::
     (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m Int64
+    FrameTimings                            -- _obj
+    -> m Int64                              -- result
 frameTimingsGetRefreshInterval _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_frame_timings_get_refresh_interval _obj'
     touchManagedPtr _obj
     return result
 
+data FrameTimingsGetRefreshIntervalMethodInfo
+instance (signature ~ (m Int64), MonadIO m) => MethodInfo FrameTimingsGetRefreshIntervalMethodInfo FrameTimings signature where
+    overloadedMethod _ = frameTimingsGetRefreshInterval
+
 -- method FrameTimings::ref
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "FrameTimings"
 -- throws : False
 -- Skip return : False
@@ -238,8 +264,8 @@
 
 frameTimingsRef ::
     (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m FrameTimings
+    FrameTimings                            -- _obj
+    -> m FrameTimings                       -- result
 frameTimingsRef _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_frame_timings_ref _obj'
@@ -248,11 +274,14 @@
     touchManagedPtr _obj
     return result'
 
+data FrameTimingsRefMethodInfo
+instance (signature ~ (m FrameTimings), MonadIO m) => MethodInfo FrameTimingsRefMethodInfo FrameTimings signature where
+    overloadedMethod _ = frameTimingsRef
+
 -- method FrameTimings::unref
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "FrameTimings", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -264,12 +293,35 @@
 
 frameTimingsUnref ::
     (MonadIO m) =>
-    FrameTimings ->                         -- _obj
-    m ()
+    FrameTimings                            -- _obj
+    -> m ()                                 -- result
 frameTimingsUnref _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     gdk_frame_timings_unref _obj'
     touchManagedPtr _obj
     return ()
+
+data FrameTimingsUnrefMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo FrameTimingsUnrefMethodInfo FrameTimings signature where
+    overloadedMethod _ = frameTimingsUnref
+
+type family ResolveFrameTimingsMethod (t :: Symbol) (o :: *) :: * where
+    ResolveFrameTimingsMethod "ref" o = FrameTimingsRefMethodInfo
+    ResolveFrameTimingsMethod "unref" o = FrameTimingsUnrefMethodInfo
+    ResolveFrameTimingsMethod "getComplete" o = FrameTimingsGetCompleteMethodInfo
+    ResolveFrameTimingsMethod "getFrameCounter" o = FrameTimingsGetFrameCounterMethodInfo
+    ResolveFrameTimingsMethod "getFrameTime" o = FrameTimingsGetFrameTimeMethodInfo
+    ResolveFrameTimingsMethod "getPredictedPresentationTime" o = FrameTimingsGetPredictedPresentationTimeMethodInfo
+    ResolveFrameTimingsMethod "getPresentationTime" o = FrameTimingsGetPresentationTimeMethodInfo
+    ResolveFrameTimingsMethod "getRefreshInterval" o = FrameTimingsGetRefreshIntervalMethodInfo
+    ResolveFrameTimingsMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveFrameTimingsMethod t FrameTimings, MethodInfo info FrameTimings p) => IsLabelProxy t (FrameTimings -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveFrameTimingsMethod t FrameTimings, MethodInfo info FrameTimings p) => IsLabel t (FrameTimings -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/FrameTimings.hs-boot b/GI/Gdk/Structs/FrameTimings.hs-boot
--- a/GI/Gdk/Structs/FrameTimings.hs-boot
+++ b/GI/Gdk/Structs/FrameTimings.hs-boot
@@ -9,3 +9,11 @@
 
 newtype FrameTimings = FrameTimings (ForeignPtr FrameTimings)
 instance BoxedObject FrameTimings where
+data FrameTimingsGetCompleteMethodInfo
+data FrameTimingsGetFrameCounterMethodInfo
+data FrameTimingsGetFrameTimeMethodInfo
+data FrameTimingsGetPredictedPresentationTimeMethodInfo
+data FrameTimingsGetPresentationTimeMethodInfo
+data FrameTimingsGetRefreshIntervalMethodInfo
+data FrameTimingsRefMethodInfo
+data FrameTimingsUnrefMethodInfo
diff --git a/GI/Gdk/Structs/Geometry.hs b/GI/Gdk/Structs/Geometry.hs
--- a/GI/Gdk/Structs/Geometry.hs
+++ b/GI/Gdk/Structs/Geometry.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -66,6 +67,7 @@
 
 -- * Exported types
     Geometry(..)                            ,
+    newZeroGeometry                         ,
     noGeometry                              ,
 
 
@@ -129,6 +131,10 @@
 import GI.Gdk.Callbacks
 
 newtype Geometry = Geometry (ForeignPtr Geometry)
+-- | Construct a `Geometry` struct initialized to zero.
+newZeroGeometry :: MonadIO m => m Geometry
+newZeroGeometry = liftIO $ callocBytes 56 >>= wrapPtr Geometry
+
 noGeometry :: Maybe Geometry
 noGeometry = Nothing
 
@@ -189,5 +195,16 @@
     val <- peek (ptr `plusPtr` 48) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
+
+type family ResolveGeometryMethod (t :: Symbol) (o :: *) :: * where
+    ResolveGeometryMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveGeometryMethod t Geometry, MethodInfo info Geometry p) => IsLabelProxy t (Geometry -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveGeometryMethod t Geometry, MethodInfo info Geometry p) => IsLabel t (Geometry -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/KeymapKey.hs b/GI/Gdk/Structs/KeymapKey.hs
--- a/GI/Gdk/Structs/KeymapKey.hs
+++ b/GI/Gdk/Structs/KeymapKey.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
     KeymapKey(..)                           ,
+    newZeroKeymapKey                        ,
     noKeymapKey                             ,
 
 
@@ -43,6 +45,10 @@
 import GI.Gdk.Callbacks
 
 newtype KeymapKey = KeymapKey (ForeignPtr KeymapKey)
+-- | Construct a `KeymapKey` struct initialized to zero.
+newZeroKeymapKey :: MonadIO m => m KeymapKey
+newZeroKeymapKey = liftIO $ callocBytes 12 >>= wrapPtr KeymapKey
+
 noKeymapKey :: Maybe KeymapKey
 noKeymapKey = Nothing
 
@@ -60,5 +66,16 @@
 keymapKeyReadLevel s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 8) :: IO Int32
     return val
+
+type family ResolveKeymapKeyMethod (t :: Symbol) (o :: *) :: * where
+    ResolveKeymapKeyMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveKeymapKeyMethod t KeymapKey, MethodInfo info KeymapKey p) => IsLabelProxy t (KeymapKey -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveKeymapKeyMethod t KeymapKey, MethodInfo info KeymapKey p) => IsLabel t (KeymapKey -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/Point.hs b/GI/Gdk/Structs/Point.hs
--- a/GI/Gdk/Structs/Point.hs
+++ b/GI/Gdk/Structs/Point.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
     Point(..)                               ,
+    newZeroPoint                            ,
     noPoint                                 ,
 
 
@@ -39,6 +41,10 @@
 import GI.Gdk.Callbacks
 
 newtype Point = Point (ForeignPtr Point)
+-- | Construct a `Point` struct initialized to zero.
+newZeroPoint :: MonadIO m => m Point
+newZeroPoint = liftIO $ callocBytes 8 >>= wrapPtr Point
+
 noPoint :: Maybe Point
 noPoint = Nothing
 
@@ -51,5 +57,16 @@
 pointReadY s = withManagedPtr s $ \ptr -> do
     val <- peek (ptr `plusPtr` 4) :: IO Int32
     return val
+
+type family ResolvePointMethod (t :: Symbol) (o :: *) :: * where
+    ResolvePointMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolvePointMethod t Point, MethodInfo info Point p) => IsLabelProxy t (Point -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolvePointMethod t Point, MethodInfo info Point p) => IsLabel t (Point -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/RGBA.hs b/GI/Gdk/Structs/RGBA.hs
--- a/GI/Gdk/Structs/RGBA.hs
+++ b/GI/Gdk/Structs/RGBA.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -13,31 +14,38 @@
 
 -- * Exported types
     RGBA(..)                                ,
+    newZeroRGBA                             ,
     noRGBA                                  ,
 
 
  -- * Methods
 -- ** rGBACopy
+    RGBACopyMethodInfo                      ,
     rGBACopy                                ,
 
 
 -- ** rGBAEqual
+    RGBAEqualMethodInfo                     ,
     rGBAEqual                               ,
 
 
 -- ** rGBAFree
+    RGBAFreeMethodInfo                      ,
     rGBAFree                                ,
 
 
 -- ** rGBAHash
+    RGBAHashMethodInfo                      ,
     rGBAHash                                ,
 
 
 -- ** rGBAParse
+    RGBAParseMethodInfo                     ,
     rGBAParse                               ,
 
 
 -- ** rGBAToString
+    RGBAToStringMethodInfo                  ,
     rGBAToString                            ,
 
 
@@ -81,6 +89,10 @@
 instance BoxedObject RGBA where
     boxedType _ = c_gdk_rgba_get_type
 
+-- | Construct a `RGBA` struct initialized to zero.
+newZeroRGBA :: MonadIO m => m RGBA
+newZeroRGBA = liftIO $ callocBoxedBytes 32 >>= wrapBoxed RGBA
+
 noRGBA :: Maybe RGBA
 noRGBA = Nothing
 
@@ -110,9 +122,8 @@
 
 -- method RGBA::copy
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "RGBA"
 -- throws : False
 -- Skip return : False
@@ -124,8 +135,8 @@
 
 rGBACopy ::
     (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    m RGBA
+    RGBA                                    -- _obj
+    -> m RGBA                               -- result
 rGBACopy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_rgba_copy _obj'
@@ -134,11 +145,14 @@
     touchManagedPtr _obj
     return result'
 
+data RGBACopyMethodInfo
+instance (signature ~ (m RGBA), MonadIO m) => MethodInfo RGBACopyMethodInfo RGBA signature where
+    overloadedMethod _ = rGBACopy
+
 -- method RGBA::equal
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "p2", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "p2", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "p2", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -151,9 +165,9 @@
 
 rGBAEqual ::
     (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    RGBA ->                                 -- p2
-    m Bool
+    RGBA                                    -- _obj
+    -> RGBA                                 -- p2
+    -> m Bool                               -- result
 rGBAEqual _obj p2 = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let p2' = unsafeManagedPtrGetPtr p2
@@ -163,11 +177,14 @@
     touchManagedPtr p2
     return result'
 
+data RGBAEqualMethodInfo
+instance (signature ~ (RGBA -> m Bool), MonadIO m) => MethodInfo RGBAEqualMethodInfo RGBA signature where
+    overloadedMethod _ = rGBAEqual
+
 -- method RGBA::free
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -179,19 +196,22 @@
 
 rGBAFree ::
     (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    m ()
+    RGBA                                    -- _obj
+    -> m ()                                 -- result
 rGBAFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     gdk_rgba_free _obj'
     touchManagedPtr _obj
     return ()
 
+data RGBAFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo RGBAFreeMethodInfo RGBA signature where
+    overloadedMethod _ = rGBAFree
+
 -- method RGBA::hash
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUInt32
 -- throws : False
 -- Skip return : False
@@ -203,19 +223,22 @@
 
 rGBAHash ::
     (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    m Word32
+    RGBA                                    -- _obj
+    -> m Word32                             -- result
 rGBAHash _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_rgba_hash _obj'
     touchManagedPtr _obj
     return result
 
+data RGBAHashMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo RGBAHashMethodInfo RGBA signature where
+    overloadedMethod _ = rGBAHash
+
 -- method RGBA::parse
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "spec", argType = TBasicType TUTF8, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -228,9 +251,9 @@
 
 rGBAParse ::
     (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    T.Text ->                               -- spec
-    m Bool
+    RGBA                                    -- _obj
+    -> T.Text                               -- spec
+    -> m Bool                               -- result
 rGBAParse _obj spec = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     spec' <- textToCString spec
@@ -240,11 +263,14 @@
     freeMem spec'
     return result'
 
+data RGBAParseMethodInfo
+instance (signature ~ (T.Text -> m Bool), MonadIO m) => MethodInfo RGBAParseMethodInfo RGBA signature where
+    overloadedMethod _ = rGBAParse
+
 -- method RGBA::to_string
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "RGBA", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUTF8
 -- throws : False
 -- Skip return : False
@@ -256,8 +282,8 @@
 
 rGBAToString ::
     (MonadIO m) =>
-    RGBA ->                                 -- _obj
-    m T.Text
+    RGBA                                    -- _obj
+    -> m T.Text                             -- result
 rGBAToString _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_rgba_to_string _obj'
@@ -266,5 +292,26 @@
     freeMem result
     touchManagedPtr _obj
     return result'
+
+data RGBAToStringMethodInfo
+instance (signature ~ (m T.Text), MonadIO m) => MethodInfo RGBAToStringMethodInfo RGBA signature where
+    overloadedMethod _ = rGBAToString
+
+type family ResolveRGBAMethod (t :: Symbol) (o :: *) :: * where
+    ResolveRGBAMethod "copy" o = RGBACopyMethodInfo
+    ResolveRGBAMethod "equal" o = RGBAEqualMethodInfo
+    ResolveRGBAMethod "free" o = RGBAFreeMethodInfo
+    ResolveRGBAMethod "hash" o = RGBAHashMethodInfo
+    ResolveRGBAMethod "parse" o = RGBAParseMethodInfo
+    ResolveRGBAMethod "toString" o = RGBAToStringMethodInfo
+    ResolveRGBAMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveRGBAMethod t RGBA, MethodInfo info RGBA p) => IsLabelProxy t (RGBA -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveRGBAMethod t RGBA, MethodInfo info RGBA p) => IsLabel t (RGBA -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/RGBA.hs-boot b/GI/Gdk/Structs/RGBA.hs-boot
--- a/GI/Gdk/Structs/RGBA.hs-boot
+++ b/GI/Gdk/Structs/RGBA.hs-boot
@@ -9,3 +9,9 @@
 
 newtype RGBA = RGBA (ForeignPtr RGBA)
 instance BoxedObject RGBA where
+data RGBACopyMethodInfo
+data RGBAEqualMethodInfo
+data RGBAFreeMethodInfo
+data RGBAHashMethodInfo
+data RGBAParseMethodInfo
+data RGBAToStringMethodInfo
diff --git a/GI/Gdk/Structs/Rectangle.hs b/GI/Gdk/Structs/Rectangle.hs
--- a/GI/Gdk/Structs/Rectangle.hs
+++ b/GI/Gdk/Structs/Rectangle.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -13,15 +14,18 @@
 
 -- * Exported types
     Rectangle(..)                           ,
+    newZeroRectangle                        ,
     noRectangle                             ,
 
 
  -- * Methods
 -- ** rectangleIntersect
+    RectangleIntersectMethodInfo            ,
     rectangleIntersect                      ,
 
 
 -- ** rectangleUnion
+    RectangleUnionMethodInfo                ,
     rectangleUnion                          ,
 
 
@@ -65,6 +69,10 @@
 instance BoxedObject Rectangle where
     boxedType _ = c_gdk_rectangle_get_type
 
+-- | Construct a `Rectangle` struct initialized to zero.
+newZeroRectangle :: MonadIO m => m Rectangle
+newZeroRectangle = liftIO $ callocBoxedBytes 16 >>= wrapBoxed Rectangle
+
 noRectangle :: Maybe Rectangle
 noRectangle = Nothing
 
@@ -90,9 +98,8 @@
 
 -- method Rectangle::intersect
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -106,9 +113,9 @@
 
 rectangleIntersect ::
     (MonadIO m) =>
-    Rectangle ->                            -- _obj
-    Rectangle ->                            -- src2
-    m (Bool,Rectangle)
+    Rectangle                               -- _obj
+    -> Rectangle                            -- src2
+    -> m (Bool,Rectangle)                   -- result
 rectangleIntersect _obj src2 = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let src2' = unsafeManagedPtrGetPtr src2
@@ -120,11 +127,14 @@
     touchManagedPtr src2
     return (result', dest')
 
+data RectangleIntersectMethodInfo
+instance (signature ~ (Rectangle -> m (Bool,Rectangle)), MonadIO m) => MethodInfo RectangleIntersectMethodInfo Rectangle signature where
+    overloadedMethod _ = rectangleIntersect
+
 -- method Rectangle::union
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "dest", argType = TInterface "Gdk" "Rectangle", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = True, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "src2", argType = TInterface "Gdk" "Rectangle", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -138,9 +148,9 @@
 
 rectangleUnion ::
     (MonadIO m) =>
-    Rectangle ->                            -- _obj
-    Rectangle ->                            -- src2
-    m (Rectangle)
+    Rectangle                               -- _obj
+    -> Rectangle                            -- src2
+    -> m (Rectangle)                        -- result
 rectangleUnion _obj src2 = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let src2' = unsafeManagedPtrGetPtr src2
@@ -150,5 +160,22 @@
     touchManagedPtr _obj
     touchManagedPtr src2
     return dest'
+
+data RectangleUnionMethodInfo
+instance (signature ~ (Rectangle -> m (Rectangle)), MonadIO m) => MethodInfo RectangleUnionMethodInfo Rectangle signature where
+    overloadedMethod _ = rectangleUnion
+
+type family ResolveRectangleMethod (t :: Symbol) (o :: *) :: * where
+    ResolveRectangleMethod "intersect" o = RectangleIntersectMethodInfo
+    ResolveRectangleMethod "union" o = RectangleUnionMethodInfo
+    ResolveRectangleMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveRectangleMethod t Rectangle, MethodInfo info Rectangle p) => IsLabelProxy t (Rectangle -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveRectangleMethod t Rectangle, MethodInfo info Rectangle p) => IsLabel t (Rectangle -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/Rectangle.hs-boot b/GI/Gdk/Structs/Rectangle.hs-boot
--- a/GI/Gdk/Structs/Rectangle.hs-boot
+++ b/GI/Gdk/Structs/Rectangle.hs-boot
@@ -9,3 +9,5 @@
 
 newtype Rectangle = Rectangle (ForeignPtr Rectangle)
 instance BoxedObject Rectangle where
+data RectangleIntersectMethodInfo
+data RectangleUnionMethodInfo
diff --git a/GI/Gdk/Structs/TimeCoord.hs b/GI/Gdk/Structs/TimeCoord.hs
--- a/GI/Gdk/Structs/TimeCoord.hs
+++ b/GI/Gdk/Structs/TimeCoord.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
     TimeCoord(..)                           ,
+    newZeroTimeCoord                        ,
     noTimeCoord                             ,
 
 
@@ -35,6 +37,10 @@
 import GI.Gdk.Callbacks
 
 newtype TimeCoord = TimeCoord (ForeignPtr TimeCoord)
+-- | Construct a `TimeCoord` struct initialized to zero.
+newZeroTimeCoord :: MonadIO m => m TimeCoord
+newZeroTimeCoord = liftIO $ callocBytes 1032 >>= wrapPtr TimeCoord
+
 noTimeCoord :: Maybe TimeCoord
 noTimeCoord = Nothing
 
@@ -44,5 +50,16 @@
     return val
 
 -- XXX Skipped getter for "TimeCoord:axes" :: Not implemented: "Don't know how to unpack C array of type TCArray False 128 (-1) (TBasicType TDouble)"
+
+type family ResolveTimeCoordMethod (t :: Symbol) (o :: *) :: * where
+    ResolveTimeCoordMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveTimeCoordMethod t TimeCoord, MethodInfo info TimeCoord p) => IsLabelProxy t (TimeCoord -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveTimeCoordMethod t TimeCoord, MethodInfo info TimeCoord p) => IsLabel t (TimeCoord -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/WindowAttr.hs b/GI/Gdk/Structs/WindowAttr.hs
--- a/GI/Gdk/Structs/WindowAttr.hs
+++ b/GI/Gdk/Structs/WindowAttr.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
     WindowAttr(..)                          ,
+    newZeroWindowAttr                       ,
     noWindowAttr                            ,
 
 
@@ -87,6 +89,10 @@
 import GI.Gdk.Callbacks
 
 newtype WindowAttr = WindowAttr (ForeignPtr WindowAttr)
+-- | Construct a `WindowAttr` struct initialized to zero.
+newZeroWindowAttr :: MonadIO m => m WindowAttr
+newZeroWindowAttr = liftIO $ callocBytes 80 >>= wrapPtr WindowAttr
+
 noWindowAttr :: Maybe WindowAttr
 noWindowAttr = Nothing
 
@@ -168,5 +174,16 @@
     val <- peek (ptr `plusPtr` 76) :: IO CUInt
     let val' = (toEnum . fromIntegral) val
     return val'
+
+type family ResolveWindowAttrMethod (t :: Symbol) (o :: *) :: * where
+    ResolveWindowAttrMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveWindowAttrMethod t WindowAttr, MethodInfo info WindowAttr p) => IsLabelProxy t (WindowAttr -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveWindowAttrMethod t WindowAttr, MethodInfo info WindowAttr p) => IsLabel t (WindowAttr -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Structs/WindowRedirect.hs b/GI/Gdk/Structs/WindowRedirect.hs
--- a/GI/Gdk/Structs/WindowRedirect.hs
+++ b/GI/Gdk/Structs/WindowRedirect.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -28,5 +29,16 @@
 newtype WindowRedirect = WindowRedirect (ForeignPtr WindowRedirect)
 noWindowRedirect :: Maybe WindowRedirect
 noWindowRedirect = Nothing
+
+type family ResolveWindowRedirectMethod (t :: Symbol) (o :: *) :: * where
+    ResolveWindowRedirectMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveWindowRedirectMethod t WindowRedirect, MethodInfo info WindowRedirect p) => IsLabelProxy t (WindowRedirect -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveWindowRedirectMethod t WindowRedirect, MethodInfo info WindowRedirect p) => IsLabel t (WindowRedirect -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Unions.hs b/GI/Gdk/Unions.hs
--- a/GI/Gdk/Unions.hs
+++ b/GI/Gdk/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/Gdk/Unions/Event.hs b/GI/Gdk/Unions/Event.hs
--- a/GI/Gdk/Unions/Event.hs
+++ b/GI/Gdk/Unions/Event.hs
@@ -1,4 +1,5 @@
 
+
 {- |
 Copyright  : Will Thompson, Iñaki García Etxebarria and Jonas Platte
 License    : LGPL-2.1
@@ -10,107 +11,148 @@
 
 -- * Exported types
     Event(..)                               ,
+    newZeroEvent                            ,
     noEvent                                 ,
 
 
  -- * Methods
 -- ** eventCopy
+    EventCopyMethodInfo                     ,
     eventCopy                               ,
 
 
 -- ** eventFree
+    EventFreeMethodInfo                     ,
     eventFree                               ,
 
 
+-- ** eventGet
+    eventGet                                ,
+
+
 -- ** eventGetAxis
+    EventGetAxisMethodInfo                  ,
     eventGetAxis                            ,
 
 
 -- ** eventGetButton
+    EventGetButtonMethodInfo                ,
     eventGetButton                          ,
 
 
 -- ** eventGetClickCount
+    EventGetClickCountMethodInfo            ,
     eventGetClickCount                      ,
 
 
 -- ** eventGetCoords
+    EventGetCoordsMethodInfo                ,
     eventGetCoords                          ,
 
 
 -- ** eventGetDevice
+    EventGetDeviceMethodInfo                ,
     eventGetDevice                          ,
 
 
 -- ** eventGetEventSequence
+    EventGetEventSequenceMethodInfo         ,
     eventGetEventSequence                   ,
 
 
 -- ** eventGetEventType
+    EventGetEventTypeMethodInfo             ,
     eventGetEventType                       ,
 
 
 -- ** eventGetKeycode
+    EventGetKeycodeMethodInfo               ,
     eventGetKeycode                         ,
 
 
 -- ** eventGetKeyval
+    EventGetKeyvalMethodInfo                ,
     eventGetKeyval                          ,
 
 
 -- ** eventGetRootCoords
+    EventGetRootCoordsMethodInfo            ,
     eventGetRootCoords                      ,
 
 
 -- ** eventGetScreen
+    EventGetScreenMethodInfo                ,
     eventGetScreen                          ,
 
 
 -- ** eventGetScrollDeltas
+    EventGetScrollDeltasMethodInfo          ,
     eventGetScrollDeltas                    ,
 
 
 -- ** eventGetScrollDirection
+    EventGetScrollDirectionMethodInfo       ,
     eventGetScrollDirection                 ,
 
 
 -- ** eventGetSourceDevice
+    EventGetSourceDeviceMethodInfo          ,
     eventGetSourceDevice                    ,
 
 
 -- ** eventGetState
+    EventGetStateMethodInfo                 ,
     eventGetState                           ,
 
 
 -- ** eventGetTime
+    EventGetTimeMethodInfo                  ,
     eventGetTime                            ,
 
 
 -- ** eventGetWindow
+    EventGetWindowMethodInfo                ,
     eventGetWindow                          ,
 
 
+-- ** eventHandlerSet
+    eventHandlerSet                         ,
+
+
 -- ** eventNew
     eventNew                                ,
 
 
+-- ** eventPeek
+    eventPeek                               ,
+
+
 -- ** eventPut
+    EventPutMethodInfo                      ,
     eventPut                                ,
 
 
+-- ** eventRequestMotions
+    eventRequestMotions                     ,
+
+
 -- ** eventSetDevice
+    EventSetDeviceMethodInfo                ,
     eventSetDevice                          ,
 
 
 -- ** eventSetScreen
+    EventSetScreenMethodInfo                ,
     eventSetScreen                          ,
 
 
 -- ** eventSetSourceDevice
+    EventSetSourceDeviceMethodInfo          ,
     eventSetSourceDevice                    ,
 
 
 -- ** eventTriggersContextMenu
+    EventTriggersContextMenuMethodInfo      ,
     eventTriggersContextMenu                ,
 
 
@@ -218,6 +260,7 @@
 
 import GI.Gdk.Types
 import GI.Gdk.Callbacks
+import qualified GI.GLib as GLib
 
 newtype Event = Event (ForeignPtr Event)
 foreign import ccall "gdk_event_get_type" c_gdk_event_get_type :: 
@@ -226,6 +269,10 @@
 instance BoxedObject Event where
     boxedType _ = c_gdk_event_get_type
 
+-- | Construct a `Event` struct initialized to zero.
+newZeroEvent :: MonadIO m => m Event
+newZeroEvent = liftIO $ callocBoxedBytes 104 >>= wrapBoxed Event
+
 noEvent :: Maybe Event
 noEvent = Nothing
 
@@ -363,9 +410,8 @@
 
 -- method Event::new
 -- method type : Constructor
--- Args : [Arg {argName = "type", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "type", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "type", argType = TInterface "Gdk" "EventType", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Event"
 -- throws : False
 -- Skip return : False
@@ -377,8 +423,8 @@
 
 eventNew ::
     (MonadIO m) =>
-    EventType ->                            -- type
-    m Event
+    EventType                               -- type_
+    -> m Event                              -- result
 eventNew type_ = liftIO $ do
     let type_' = (fromIntegral . fromEnum) type_
     result <- gdk_event_new type_'
@@ -388,9 +434,8 @@
 
 -- method Event::copy
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Event"
 -- throws : False
 -- Skip return : False
@@ -402,8 +447,8 @@
 
 eventCopy ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m Event
+    Event                                   -- _obj
+    -> m Event                              -- result
 eventCopy _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_event_copy _obj'
@@ -412,11 +457,14 @@
     touchManagedPtr _obj
     return result'
 
+data EventCopyMethodInfo
+instance (signature ~ (m Event), MonadIO m) => MethodInfo EventCopyMethodInfo Event signature where
+    overloadedMethod _ = eventCopy
+
 -- method Event::free
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -428,19 +476,22 @@
 
 eventFree ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m ()
+    Event                                   -- _obj
+    -> m ()                                 -- result
 eventFree _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     gdk_event_free _obj'
     touchManagedPtr _obj
     return ()
 
+data EventFreeMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo EventFreeMethodInfo Event signature where
+    overloadedMethod _ = eventFree
+
 -- method Event::get_axis
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "axis_use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "value", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "axis_use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "value", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "axis_use", argType = TInterface "Gdk" "AxisUse", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -454,14 +505,14 @@
 
 eventGetAxis ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    AxisUse ->                              -- axis_use
-    m (Bool,Double)
-eventGetAxis _obj axis_use = liftIO $ do
+    Event                                   -- _obj
+    -> AxisUse                              -- axisUse
+    -> m (Bool,Double)                      -- result
+eventGetAxis _obj axisUse = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    let axis_use' = (fromIntegral . fromEnum) axis_use
+    let axisUse' = (fromIntegral . fromEnum) axisUse
     value <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_event_get_axis _obj' axis_use' value
+    result <- gdk_event_get_axis _obj' axisUse' value
     let result' = (/= 0) result
     value' <- peek value
     let value'' = realToFrac value'
@@ -469,11 +520,14 @@
     freeMem value
     return (result', value'')
 
+data EventGetAxisMethodInfo
+instance (signature ~ (AxisUse -> m (Bool,Double)), MonadIO m) => MethodInfo EventGetAxisMethodInfo Event signature where
+    overloadedMethod _ = eventGetAxis
+
 -- method Event::get_button
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "button", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "button", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -486,8 +540,8 @@
 
 eventGetButton ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Word32)
+    Event                                   -- _obj
+    -> m (Bool,Word32)                      -- result
 eventGetButton _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     button <- allocMem :: IO (Ptr Word32)
@@ -498,11 +552,14 @@
     freeMem button
     return (result', button')
 
+data EventGetButtonMethodInfo
+instance (signature ~ (m (Bool,Word32)), MonadIO m) => MethodInfo EventGetButtonMethodInfo Event signature where
+    overloadedMethod _ = eventGetButton
+
 -- method Event::get_click_count
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "click_count", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "click_count", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -515,23 +572,26 @@
 
 eventGetClickCount ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Word32)
+    Event                                   -- _obj
+    -> m (Bool,Word32)                      -- result
 eventGetClickCount _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    click_count <- allocMem :: IO (Ptr Word32)
-    result <- gdk_event_get_click_count _obj' click_count
+    clickCount <- allocMem :: IO (Ptr Word32)
+    result <- gdk_event_get_click_count _obj' clickCount
     let result' = (/= 0) result
-    click_count' <- peek click_count
+    clickCount' <- peek clickCount
     touchManagedPtr _obj
-    freeMem click_count
-    return (result', click_count')
+    freeMem clickCount
+    return (result', clickCount')
 
+data EventGetClickCountMethodInfo
+instance (signature ~ (m (Bool,Word32)), MonadIO m) => MethodInfo EventGetClickCountMethodInfo Event signature where
+    overloadedMethod _ = eventGetClickCount
+
 -- method Event::get_coords
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_win", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y_win", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x_win", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y_win", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -545,28 +605,31 @@
 
 eventGetCoords ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Double,Double)
+    Event                                   -- _obj
+    -> m (Bool,Double,Double)               -- result
 eventGetCoords _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    x_win <- allocMem :: IO (Ptr CDouble)
-    y_win <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_event_get_coords _obj' x_win y_win
+    xWin <- allocMem :: IO (Ptr CDouble)
+    yWin <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_event_get_coords _obj' xWin yWin
     let result' = (/= 0) result
-    x_win' <- peek x_win
-    let x_win'' = realToFrac x_win'
-    y_win' <- peek y_win
-    let y_win'' = realToFrac y_win'
+    xWin' <- peek xWin
+    let xWin'' = realToFrac xWin'
+    yWin' <- peek yWin
+    let yWin'' = realToFrac yWin'
     touchManagedPtr _obj
-    freeMem x_win
-    freeMem y_win
-    return (result', x_win'', y_win'')
+    freeMem xWin
+    freeMem yWin
+    return (result', xWin'', yWin'')
 
+data EventGetCoordsMethodInfo
+instance (signature ~ (m (Bool,Double,Double)), MonadIO m) => MethodInfo EventGetCoordsMethodInfo Event signature where
+    overloadedMethod _ = eventGetCoords
+
 -- method Event::get_device
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Device"
 -- throws : False
 -- Skip return : False
@@ -578,8 +641,8 @@
 
 eventGetDevice ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m Device
+    Event                                   -- _obj
+    -> m Device                             -- result
 eventGetDevice _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_event_get_device _obj'
@@ -588,11 +651,14 @@
     touchManagedPtr _obj
     return result'
 
+data EventGetDeviceMethodInfo
+instance (signature ~ (m Device), MonadIO m) => MethodInfo EventGetDeviceMethodInfo Event signature where
+    overloadedMethod _ = eventGetDevice
+
 -- method Event::get_event_sequence
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "EventSequence"
 -- throws : False
 -- Skip return : False
@@ -604,8 +670,8 @@
 
 eventGetEventSequence ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m EventSequence
+    Event                                   -- _obj
+    -> m EventSequence                      -- result
 eventGetEventSequence _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_event_get_event_sequence _obj'
@@ -614,11 +680,14 @@
     touchManagedPtr _obj
     return result'
 
+data EventGetEventSequenceMethodInfo
+instance (signature ~ (m EventSequence), MonadIO m) => MethodInfo EventGetEventSequenceMethodInfo Event signature where
+    overloadedMethod _ = eventGetEventSequence
+
 -- method Event::get_event_type
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "EventType"
 -- throws : False
 -- Skip return : False
@@ -630,8 +699,8 @@
 
 eventGetEventType ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m EventType
+    Event                                   -- _obj
+    -> m EventType                          -- result
 eventGetEventType _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_event_get_event_type _obj'
@@ -639,11 +708,14 @@
     touchManagedPtr _obj
     return result'
 
+data EventGetEventTypeMethodInfo
+instance (signature ~ (m EventType), MonadIO m) => MethodInfo EventGetEventTypeMethodInfo Event signature where
+    overloadedMethod _ = eventGetEventType
+
 -- method Event::get_keycode
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keycode", argType = TBasicType TUInt16, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keycode", argType = TBasicType TUInt16, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -656,8 +728,8 @@
 
 eventGetKeycode ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Word16)
+    Event                                   -- _obj
+    -> m (Bool,Word16)                      -- result
 eventGetKeycode _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     keycode <- allocMem :: IO (Ptr Word16)
@@ -668,11 +740,14 @@
     freeMem keycode
     return (result', keycode')
 
+data EventGetKeycodeMethodInfo
+instance (signature ~ (m (Bool,Word16)), MonadIO m) => MethodInfo EventGetKeycodeMethodInfo Event signature where
+    overloadedMethod _ = eventGetKeycode
+
 -- method Event::get_keyval
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "keyval", argType = TBasicType TUInt32, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -685,8 +760,8 @@
 
 eventGetKeyval ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Word32)
+    Event                                   -- _obj
+    -> m (Bool,Word32)                      -- result
 eventGetKeyval _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     keyval <- allocMem :: IO (Ptr Word32)
@@ -697,11 +772,14 @@
     freeMem keyval
     return (result', keyval')
 
+data EventGetKeyvalMethodInfo
+instance (signature ~ (m (Bool,Word32)), MonadIO m) => MethodInfo EventGetKeyvalMethodInfo Event signature where
+    overloadedMethod _ = eventGetKeyval
+
 -- method Event::get_root_coords
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "x_root", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "y_root", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "x_root", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "y_root", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -715,28 +793,31 @@
 
 eventGetRootCoords ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Double,Double)
+    Event                                   -- _obj
+    -> m (Bool,Double,Double)               -- result
 eventGetRootCoords _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    x_root <- allocMem :: IO (Ptr CDouble)
-    y_root <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_event_get_root_coords _obj' x_root y_root
+    xRoot <- allocMem :: IO (Ptr CDouble)
+    yRoot <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_event_get_root_coords _obj' xRoot yRoot
     let result' = (/= 0) result
-    x_root' <- peek x_root
-    let x_root'' = realToFrac x_root'
-    y_root' <- peek y_root
-    let y_root'' = realToFrac y_root'
+    xRoot' <- peek xRoot
+    let xRoot'' = realToFrac xRoot'
+    yRoot' <- peek yRoot
+    let yRoot'' = realToFrac yRoot'
     touchManagedPtr _obj
-    freeMem x_root
-    freeMem y_root
-    return (result', x_root'', y_root'')
+    freeMem xRoot
+    freeMem yRoot
+    return (result', xRoot'', yRoot'')
 
+data EventGetRootCoordsMethodInfo
+instance (signature ~ (m (Bool,Double,Double)), MonadIO m) => MethodInfo EventGetRootCoordsMethodInfo Event signature where
+    overloadedMethod _ = eventGetRootCoords
+
 -- method Event::get_screen
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Screen"
 -- throws : False
 -- Skip return : False
@@ -748,8 +829,8 @@
 
 eventGetScreen ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m Screen
+    Event                                   -- _obj
+    -> m Screen                             -- result
 eventGetScreen _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_event_get_screen _obj'
@@ -758,11 +839,14 @@
     touchManagedPtr _obj
     return result'
 
+data EventGetScreenMethodInfo
+instance (signature ~ (m Screen), MonadIO m) => MethodInfo EventGetScreenMethodInfo Event signature where
+    overloadedMethod _ = eventGetScreen
+
 -- method Event::get_scroll_deltas
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "delta_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything},Arg {argName = "delta_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "delta_x", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything},Arg {argCName = "delta_y", argType = TBasicType TDouble, direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -776,28 +860,31 @@
 
 eventGetScrollDeltas ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,Double,Double)
+    Event                                   -- _obj
+    -> m (Bool,Double,Double)               -- result
 eventGetScrollDeltas _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
-    delta_x <- allocMem :: IO (Ptr CDouble)
-    delta_y <- allocMem :: IO (Ptr CDouble)
-    result <- gdk_event_get_scroll_deltas _obj' delta_x delta_y
+    deltaX <- allocMem :: IO (Ptr CDouble)
+    deltaY <- allocMem :: IO (Ptr CDouble)
+    result <- gdk_event_get_scroll_deltas _obj' deltaX deltaY
     let result' = (/= 0) result
-    delta_x' <- peek delta_x
-    let delta_x'' = realToFrac delta_x'
-    delta_y' <- peek delta_y
-    let delta_y'' = realToFrac delta_y'
+    deltaX' <- peek deltaX
+    let deltaX'' = realToFrac deltaX'
+    deltaY' <- peek deltaY
+    let deltaY'' = realToFrac deltaY'
     touchManagedPtr _obj
-    freeMem delta_x
-    freeMem delta_y
-    return (result', delta_x'', delta_y'')
+    freeMem deltaX
+    freeMem deltaY
+    return (result', deltaX'', deltaY'')
 
+data EventGetScrollDeltasMethodInfo
+instance (signature ~ (m (Bool,Double,Double)), MonadIO m) => MethodInfo EventGetScrollDeltasMethodInfo Event signature where
+    overloadedMethod _ = eventGetScrollDeltas
+
 -- method Event::get_scroll_direction
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "direction", argType = TInterface "Gdk" "ScrollDirection", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "direction", argType = TInterface "Gdk" "ScrollDirection", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -810,8 +897,8 @@
 
 eventGetScrollDirection ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,ScrollDirection)
+    Event                                   -- _obj
+    -> m (Bool,ScrollDirection)             -- result
 eventGetScrollDirection _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     direction <- allocMem :: IO (Ptr CUInt)
@@ -823,11 +910,14 @@
     freeMem direction
     return (result', direction'')
 
+data EventGetScrollDirectionMethodInfo
+instance (signature ~ (m (Bool,ScrollDirection)), MonadIO m) => MethodInfo EventGetScrollDirectionMethodInfo Event signature where
+    overloadedMethod _ = eventGetScrollDirection
+
 -- method Event::get_source_device
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Device"
 -- throws : False
 -- Skip return : False
@@ -839,8 +929,8 @@
 
 eventGetSourceDevice ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m Device
+    Event                                   -- _obj
+    -> m Device                             -- result
 eventGetSourceDevice _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_event_get_source_device _obj'
@@ -849,11 +939,14 @@
     touchManagedPtr _obj
     return result'
 
+data EventGetSourceDeviceMethodInfo
+instance (signature ~ (m Device), MonadIO m) => MethodInfo EventGetSourceDeviceMethodInfo Event signature where
+    overloadedMethod _ = eventGetSourceDevice
+
 -- method Event::get_state
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferEverything}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "state", argType = TInterface "Gdk" "ModifierType", direction = DirectionOut, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferEverything}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -866,8 +959,8 @@
 
 eventGetState ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m (Bool,[ModifierType])
+    Event                                   -- _obj
+    -> m (Bool,[ModifierType])              -- result
 eventGetState _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     state <- allocMem :: IO (Ptr CUInt)
@@ -879,11 +972,14 @@
     freeMem state
     return (result', state'')
 
+data EventGetStateMethodInfo
+instance (signature ~ (m (Bool,[ModifierType])), MonadIO m) => MethodInfo EventGetStateMethodInfo Event signature where
+    overloadedMethod _ = eventGetState
+
 -- method Event::get_time
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TUInt32
 -- throws : False
 -- Skip return : False
@@ -895,19 +991,22 @@
 
 eventGetTime ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m Word32
+    Event                                   -- _obj
+    -> m Word32                             -- result
 eventGetTime _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_event_get_time _obj'
     touchManagedPtr _obj
     return result
 
+data EventGetTimeMethodInfo
+instance (signature ~ (m Word32), MonadIO m) => MethodInfo EventGetTimeMethodInfo Event signature where
+    overloadedMethod _ = eventGetTime
+
 -- method Event::get_window
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TInterface "Gdk" "Window"
 -- throws : False
 -- Skip return : False
@@ -919,8 +1018,8 @@
 
 eventGetWindow ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m Window
+    Event                                   -- _obj
+    -> m Window                             -- result
 eventGetWindow _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_event_get_window _obj'
@@ -929,11 +1028,14 @@
     touchManagedPtr _obj
     return result'
 
+data EventGetWindowMethodInfo
+instance (signature ~ (m Window), MonadIO m) => MethodInfo EventGetWindowMethodInfo Event signature where
+    overloadedMethod _ = eventGetWindow
+
 -- method Event::put
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -945,19 +1047,22 @@
 
 eventPut ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m ()
+    Event                                   -- _obj
+    -> m ()                                 -- result
 eventPut _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     gdk_event_put _obj'
     touchManagedPtr _obj
     return ()
 
+data EventPutMethodInfo
+instance (signature ~ (m ()), MonadIO m) => MethodInfo EventPutMethodInfo Event signature where
+    overloadedMethod _ = eventPut
+
 -- method Event::set_device
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -970,9 +1075,9 @@
 
 eventSetDevice ::
     (MonadIO m, DeviceK a) =>
-    Event ->                                -- _obj
-    a ->                                    -- device
-    m ()
+    Event                                   -- _obj
+    -> a                                    -- device
+    -> m ()                                 -- result
 eventSetDevice _obj device = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let device' = unsafeManagedPtrCastPtr device
@@ -981,11 +1086,14 @@
     touchManagedPtr device
     return ()
 
+data EventSetDeviceMethodInfo
+instance (signature ~ (a -> m ()), MonadIO m, DeviceK a) => MethodInfo EventSetDeviceMethodInfo Event signature where
+    overloadedMethod _ = eventSetDevice
+
 -- method Event::set_screen
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "screen", argType = TInterface "Gdk" "Screen", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -998,9 +1106,9 @@
 
 eventSetScreen ::
     (MonadIO m, ScreenK a) =>
-    Event ->                                -- _obj
-    a ->                                    -- screen
-    m ()
+    Event                                   -- _obj
+    -> a                                    -- screen
+    -> m ()                                 -- result
 eventSetScreen _obj screen = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let screen' = unsafeManagedPtrCastPtr screen
@@ -1009,11 +1117,14 @@
     touchManagedPtr screen
     return ()
 
+data EventSetScreenMethodInfo
+instance (signature ~ (a -> m ()), MonadIO m, ScreenK a) => MethodInfo EventSetScreenMethodInfo Event signature where
+    overloadedMethod _ = eventSetScreen
+
 -- method Event::set_source_device
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing},Arg {argName = "device", argType = TInterface "Gdk" "Device", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TVoid
 -- throws : False
 -- Skip return : False
@@ -1026,9 +1137,9 @@
 
 eventSetSourceDevice ::
     (MonadIO m, DeviceK a) =>
-    Event ->                                -- _obj
-    a ->                                    -- device
-    m ()
+    Event                                   -- _obj
+    -> a                                    -- device
+    -> m ()                                 -- result
 eventSetSourceDevice _obj device = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     let device' = unsafeManagedPtrCastPtr device
@@ -1037,11 +1148,14 @@
     touchManagedPtr device
     return ()
 
+data EventSetSourceDeviceMethodInfo
+instance (signature ~ (a -> m ()), MonadIO m, DeviceK a) => MethodInfo EventSetSourceDeviceMethodInfo Event signature where
+    overloadedMethod _ = eventSetSourceDevice
+
 -- method Event::triggers_context_menu
 -- method type : OrdinaryMethod
--- Args : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
+-- Args : [Arg {argCName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
 -- Lengths : []
--- hInArgs : [Arg {argName = "_obj", argType = TInterface "Gdk" "Event", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, transfer = TransferNothing}]
 -- returnType : TBasicType TBoolean
 -- throws : False
 -- Skip return : False
@@ -1053,13 +1167,143 @@
 
 eventTriggersContextMenu ::
     (MonadIO m) =>
-    Event ->                                -- _obj
-    m Bool
+    Event                                   -- _obj
+    -> m Bool                               -- result
 eventTriggersContextMenu _obj = liftIO $ do
     let _obj' = unsafeManagedPtrGetPtr _obj
     result <- gdk_event_triggers_context_menu _obj'
     let result' = (/= 0) result
     touchManagedPtr _obj
     return result'
+
+data EventTriggersContextMenuMethodInfo
+instance (signature ~ (m Bool), MonadIO m) => MethodInfo EventTriggersContextMenuMethodInfo Event signature where
+    overloadedMethod _ = eventTriggersContextMenu
+
+-- method Event::get
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Event"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_get" gdk_event_get :: 
+    IO (Ptr Event)
+
+
+eventGet ::
+    (MonadIO m) =>
+    m Event                                 -- result
+eventGet  = liftIO $ do
+    result <- gdk_event_get
+    checkUnexpectedReturnNULL "gdk_event_get" result
+    result' <- (wrapBoxed Event) result
+    return result'
+
+-- method Event::handler_set
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "func", argType = TInterface "Gdk" "EventFunc", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeNotified, argClosure = 1, argDestroy = 2, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "data", argType = TBasicType TVoid, direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeInvalid, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing},Arg {argCName = "notify", argType = TInterface "GLib" "DestroyNotify", direction = DirectionIn, mayBeNull = False, argScope = ScopeTypeAsync, argClosure = -1, argDestroy = -1, argCallerAllocates = False, transfer = TransferNothing}]
+-- Lengths : []
+-- returnType : TBasicType TVoid
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_handler_set" gdk_event_handler_set :: 
+    FunPtr EventFuncC ->                    -- func : TInterface "Gdk" "EventFunc"
+    Ptr () ->                               -- data : TBasicType TVoid
+    FunPtr GLib.DestroyNotifyC ->           -- notify : TInterface "GLib" "DestroyNotify"
+    IO ()
+
+
+eventHandlerSet ::
+    (MonadIO m) =>
+    EventFunc                               -- func
+    -> m ()                                 -- result
+eventHandlerSet func = liftIO $ do
+    func' <- mkEventFunc (eventFuncWrapper Nothing func)
+    let data_ = castFunPtrToPtr func'
+    let notify = safeFreeFunPtrPtr
+    gdk_event_handler_set func' data_ notify
+    return ()
+
+-- method Event::peek
+-- method type : MemberFunction
+-- Args : []
+-- Lengths : []
+-- returnType : TInterface "Gdk" "Event"
+-- throws : False
+-- Skip return : False
+
+foreign import ccall "gdk_event_peek" gdk_event_peek :: 
+    IO (Ptr Event)
+
+
+eventPeek ::
+    (MonadIO m) =>
+    m Event                                 -- result
+eventPeek  = liftIO $ do
+    result <- gdk_event_peek
+    checkUnexpectedReturnNULL "gdk_event_peek" result
+    result' <- (wrapBoxed Event) result
+    return result'
+
+-- method Event::request_motions
+-- method type : MemberFunction
+-- Args : [Arg {argCName = "event", argType = TInterface "Gdk" "EventMotion", 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 "gdk_event_request_motions" gdk_event_request_motions :: 
+    Ptr EventMotion ->                      -- event : TInterface "Gdk" "EventMotion"
+    IO ()
+
+
+eventRequestMotions ::
+    (MonadIO m) =>
+    EventMotion                             -- event
+    -> m ()                                 -- result
+eventRequestMotions event = liftIO $ do
+    let event' = unsafeManagedPtrGetPtr event
+    gdk_event_request_motions event'
+    touchManagedPtr event
+    return ()
+
+type family ResolveEventMethod (t :: Symbol) (o :: *) :: * where
+    ResolveEventMethod "copy" o = EventCopyMethodInfo
+    ResolveEventMethod "free" o = EventFreeMethodInfo
+    ResolveEventMethod "put" o = EventPutMethodInfo
+    ResolveEventMethod "triggersContextMenu" o = EventTriggersContextMenuMethodInfo
+    ResolveEventMethod "getAxis" o = EventGetAxisMethodInfo
+    ResolveEventMethod "getButton" o = EventGetButtonMethodInfo
+    ResolveEventMethod "getClickCount" o = EventGetClickCountMethodInfo
+    ResolveEventMethod "getCoords" o = EventGetCoordsMethodInfo
+    ResolveEventMethod "getDevice" o = EventGetDeviceMethodInfo
+    ResolveEventMethod "getEventSequence" o = EventGetEventSequenceMethodInfo
+    ResolveEventMethod "getEventType" o = EventGetEventTypeMethodInfo
+    ResolveEventMethod "getKeycode" o = EventGetKeycodeMethodInfo
+    ResolveEventMethod "getKeyval" o = EventGetKeyvalMethodInfo
+    ResolveEventMethod "getRootCoords" o = EventGetRootCoordsMethodInfo
+    ResolveEventMethod "getScreen" o = EventGetScreenMethodInfo
+    ResolveEventMethod "getScrollDeltas" o = EventGetScrollDeltasMethodInfo
+    ResolveEventMethod "getScrollDirection" o = EventGetScrollDirectionMethodInfo
+    ResolveEventMethod "getSourceDevice" o = EventGetSourceDeviceMethodInfo
+    ResolveEventMethod "getState" o = EventGetStateMethodInfo
+    ResolveEventMethod "getTime" o = EventGetTimeMethodInfo
+    ResolveEventMethod "getWindow" o = EventGetWindowMethodInfo
+    ResolveEventMethod "setDevice" o = EventSetDeviceMethodInfo
+    ResolveEventMethod "setScreen" o = EventSetScreenMethodInfo
+    ResolveEventMethod "setSourceDevice" o = EventSetSourceDeviceMethodInfo
+    ResolveEventMethod l o = MethodResolutionFailed l o
+
+instance (info ~ ResolveEventMethod t Event, MethodInfo info Event p) => IsLabelProxy t (Event -> p) where
+    fromLabelProxy _ = overloadedMethod (MethodProxy :: MethodProxy info)
+
+#if MIN_VERSION_base(4,9,0)
+instance (info ~ ResolveEventMethod t Event, MethodInfo info Event p) => IsLabel t (Event -> p) where
+    fromLabel _ = overloadedMethod (MethodProxy :: MethodProxy info)
+#endif
 
 
diff --git a/GI/Gdk/Unions/Event.hs-boot b/GI/Gdk/Unions/Event.hs-boot
--- a/GI/Gdk/Unions/Event.hs-boot
+++ b/GI/Gdk/Unions/Event.hs-boot
@@ -9,3 +9,27 @@
 
 newtype Event = Event (ForeignPtr Event)
 instance BoxedObject Event where
+data EventCopyMethodInfo
+data EventFreeMethodInfo
+data EventGetAxisMethodInfo
+data EventGetButtonMethodInfo
+data EventGetClickCountMethodInfo
+data EventGetCoordsMethodInfo
+data EventGetDeviceMethodInfo
+data EventGetEventSequenceMethodInfo
+data EventGetEventTypeMethodInfo
+data EventGetKeycodeMethodInfo
+data EventGetKeyvalMethodInfo
+data EventGetRootCoordsMethodInfo
+data EventGetScreenMethodInfo
+data EventGetScrollDeltasMethodInfo
+data EventGetScrollDirectionMethodInfo
+data EventGetSourceDeviceMethodInfo
+data EventGetStateMethodInfo
+data EventGetTimeMethodInfo
+data EventGetWindowMethodInfo
+data EventPutMethodInfo
+data EventSetDeviceMethodInfo
+data EventSetScreenMethodInfo
+data EventSetSourceDeviceMethodInfo
+data EventTriggersContextMenuMethodInfo
diff --git a/gi-gdk.cabal b/gi-gdk.cabal
--- a/gi-gdk.cabal
+++ b/gi-gdk.cabal
@@ -1,6 +1,6 @@
 -- Autogenerated, do not edit.
 name:               gi-gdk
-version:            0.3.18.12
+version:            0.3.18.13
 synopsis:           Gdk bindings
 description:        Bindings for Gdk, 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.Gdk.Types
                         GI.Gdk
@@ -76,13 +76,13 @@
                         GI.Gdk.Unions.Event
     pkgconfig-depends:  gdk-3.0 >= 3.18
     build-depends: base >= 4.7 && <5,
-        haskell-gi-base >= 0.12 && < 1,
-        gi-glib >= 0.2.46.12 && < 0.2.47,
-        gi-gobject >= 0.2.46.12 && < 0.2.47,
-        gi-gdkpixbuf >= 0.2.32.12 && < 0.2.33,
-        gi-gio >= 0.2.46.12 && < 0.2.47,
-        gi-pango >= 0.1.38.12 && < 0.1.39,
-        gi-cairo >= 0.1.14.12 && < 0.1.15,
+        haskell-gi-base >= 0.13 && < 1,
+        gi-glib >= 0.2.46.13 && < 0.2.47,
+        gi-gobject >= 0.2.46.13 && < 0.2.47,
+        gi-gdkpixbuf >= 0.2.32.13 && < 0.2.33,
+        gi-gio >= 0.2.46.13 && < 0.2.47,
+        gi-pango >= 0.1.38.13 && < 0.1.39,
+        gi-cairo >= 0.1.14.13 && < 0.1.15,
         bytestring >= 0.10,
         containers >= 0.5,
         text >= 1.0,
