    -- GENERATED by C->Haskell Compiler, version 0.13.13 (gtk2hs branch) "Bin IO", 27 May 2012 (Haskell)
    -- Edit the ORIGINAL .chs file instead!

    {-# LINE 1 "./Graphics/UI/Gtk/Signals.chs" #-}
    {-# OPTIONS_HADDOCK hide #-}
    {-# OPTIONS_GHC -fno-warn-unused-imports #-}
    -- -*-haskell-*-
    -- -------------------- automatically generated file - do not edit ------------
    --  Callback installers for the GIMP Toolkit (GTK) Binding for Haskell
    --
    --  Author : Axel Simon
    --
    --  Created: 1 July 2000
    --
    --  Copyright (C) 2000-2005 Axel Simon
    --
    --  This library is free software; you can redistribute it and/or
    --  modify it under the terms of the GNU Lesser General Public
    --  License as published by the Free Software Foundation; either
    --  version 2.1 of the License, or (at your option) any later version.
    --
    --  This library is distributed in the hope that it will be useful,
    --  but WITHOUT ANY WARRANTY; without even the implied warranty of
    --  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    --  Lesser General Public License for more details.
    --
    -- #hide

    -- These functions are used to connect signals to widgets. They are auto-
    -- matically created through HookGenerator.hs which takes a list of possible
    -- function signatures that are included in the GTK sources (gtkmarshal.list).
    --
    -- The object system in the second version of GTK is based on GObject from
    -- GLIB. This base class is rather primitive in that it only implements
    -- ref and unref methods (and others that are not interesting to us). If
    -- the marshall list mentions OBJECT it refers to an instance of this
    -- GObject which is automatically wrapped with a ref and unref call.
    -- Structures which are not derived from GObject have to be passed as
    -- BOXED which gives the signal connect function a possibility to do the
    -- conversion into a proper ForeignPtr type. In special cases the signal
    -- connect function use a PTR type which will then be mangled in the
    -- user function directly. The latter is needed if a signal delivers a
    -- pointer to a string and its length in a separate integer.
    --
    module Graphics.UI.Gtk.Signals (
      module System.Glib.Signals,

      connect_BOXED__BOOL,
      connect_PTR__BOOL,
      connect_BOXED_BOXED__BOOL,
      connect_ENUM__BOOL,
      connect_ENUM_DOUBLE__BOOL,
      connect_INT__BOOL,
      connect_OBJECT_BOXED__BOOL,
      connect_INT_INT__BOOL,
      connect_INT_INT_INT__BOOL,
      connect_WORD__BOOL,
      connect_NONE__BOOL,
      connect_BOOL__BOOL,
      connect_NONE__ENUM,
      connect_ENUM__ENUM,
      connect_PTR__INT,
      connect_BOOL__NONE,
      connect_INT__NONE,
      connect_INT_INT__NONE,
      connect_NONE__NONE,
      connect_DOUBLE__NONE,
      connect_BOXED__NONE,
      connect_BOXED_BOXED__NONE,
      connect_BOXED_BOXED_PTR__NONE,
      connect_BOXED_OBJECT__NONE,
      connect_BOXED_WORD__NONE,
      connect_ENUM__NONE,
      connect_ENUM_INT__NONE,
      connect_ENUM_INT_BOOL__NONE,
      connect_OBJECT__NONE,
      connect_MOBJECT__NONE,
      connect_OBJECT_BOXED_BOXED__NONE,
      connect_OBJECT_OBJECT__NONE,
      connect_PTR__NONE,
      connect_PTR_WORD__NONE,
      connect_GLIBSTRING__NONE,
      connect_GLIBSTRING_GLIBSTRING__NONE,
      connect_WORD_WORD__NONE,
      connect_WORD_GLIBSTRING__NONE,
      connect_BOXED_PTR_INT__NONE,
      connect_INT_BOOL__NONE,
      connect_OBJECT_GLIBSTRING__NONE,
      connect_GLIBSTRING__BOOL,
      connect_OBJECT_PTR_BOXED__BOOL,
      connect_PTR_BOXED_BOXED__BOOL,
      connect_PTR_INT_PTR__NONE,
      connect_PTR_WORD_WORD__NONE,
      connect_OBJECT_PTR_WORD_WORD__NONE,
      connect_OBJECT_INT_INT_PTR_WORD_WORD__NONE,
      connect_OBJECT_INT_INT_WORD__BOOL,
      connect_OBJECT_WORD__NONE,
      connect_OBJECT_ENUM__BOOL,
      connect_BOXED_GLIBSTRING__NONE,
      connect_OBJECT_INT__NONE,
      connect_ENUM_BOOL__BOOL,
      connect_BOXED_INT__NONE,
      connect_OBJECT_INT_INT_BOOL_OBJECT__BOOL,
      connect_INT_GLIBSTRING_INT__NONE,
      connect_GLIBSTRING_INT_ENUM_INT__NONE,
      connect_OBJECT__BOOL,
      connect_OBJECT_INT_OBJECT__NONE,
      connect_OBJECT_OBJECT_OBJECT__NONE,
      connect_OBJECT_OBJECT_OBJECT__BOOL,
      connect_ENUM_PTR__NONE,

      ) where

    import Control.Monad    (liftM)

    import System.Glib.FFI
    import System.Glib.UTFString   (peekUTFString,maybePeekUTFString,newUTFString)
    import qualified System.Glib.UTFString as Glib
    import System.Glib.GError      (failOnGError)
    import System.Glib.Signals
    {-# LINE 116 "./Graphics/UI/Gtk/Signals.chs" #-}
    import System.Glib.GObject
    {-# LINE 117 "./Graphics/UI/Gtk/Signals.chs" #-}
    import Graphics.UI.Gtk.General.Threading

    {-# LINE 121 "./Graphics/UI/Gtk/Signals.chs" #-}

    -- Here are the generators that turn a Haskell function into
    -- a C function pointer. The fist Argument is always the widget,
    -- the last one is the user g_pointer. Both are ignored.

    connect_BOXED__BOOL ::
      GObjectClass obj => SignalName ->
      (Ptr a' -> IO a) ->
      ConnectAfter -> obj ->
      (a -> IO Bool) ->
      IO (ConnectId obj)
    connect_BOXED__BOOL :: forall obj a' a.
    GObjectClass obj =>
    SignalName
    -> (Ptr a' -> IO a)
    -> ConnectAfter
    -> obj
    -> (a -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_BOXED__BOOL SignalName
    signal Ptr a' -> IO a
    boxedPre1 ConnectAfter
    after obj
    obj a -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr () -> IO Bool
            action :: Ptr GObject -> Ptr () -> IO ConnectAfter
    action Ptr GObject
    _ Ptr ()
    box1 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              Ptr a' -> IO a
    boxedPre1 (Ptr () -> Ptr a'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box1) IO a -> (a -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a
    box1' ->
              a -> IO ConnectAfter
    user a
    box1'

    connect_PTR__BOOL ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Ptr a -> IO Bool) ->
      IO (ConnectId obj)
    connect_PTR__BOOL :: forall obj a.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr a -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_PTR__BOOL SignalName
    signal ConnectAfter
    after obj
    obj Ptr a -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr () -> IO Bool
            action :: Ptr GObject -> Ptr () -> IO ConnectAfter
    action Ptr GObject
    _ Ptr ()
    ptr1 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              Ptr a -> IO ConnectAfter
    user (Ptr () -> Ptr a
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr1)

    connect_BOXED_BOXED__BOOL ::
      GObjectClass obj => SignalName ->
      (Ptr a' -> IO a) -> (Ptr b' -> IO b) ->
      ConnectAfter -> obj ->
      (a -> b -> IO Bool) ->
      IO (ConnectId obj)
    connect_BOXED_BOXED__BOOL :: forall obj a' a b' b.
    GObjectClass obj =>
    SignalName
    -> (Ptr a' -> IO a)
    -> (Ptr b' -> IO b)
    -> ConnectAfter
    -> obj
    -> (a -> b -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_BOXED_BOXED__BOOL SignalName
    signal Ptr a' -> IO a
    boxedPre1 Ptr b' -> IO b
    boxedPre2 ConnectAfter
    after obj
    obj a -> b -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Ptr () -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Ptr () -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr () -> Ptr () -> IO Bool
            action :: Ptr GObject -> Ptr () -> Ptr () -> IO ConnectAfter
    action Ptr GObject
    _ Ptr ()
    box1 Ptr ()
    box2 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              Ptr b' -> IO b
    boxedPre2 (Ptr () -> Ptr b'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box2) IO b -> (b -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b
    box2' ->
              Ptr a' -> IO a
    boxedPre1 (Ptr () -> Ptr a'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box1) IO a -> (a -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a
    box1' ->
              a -> b -> IO ConnectAfter
    user a
    box1' b
    box2'

    connect_ENUM__BOOL ::
      (Enum a, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a -> IO Bool) ->
      IO (ConnectId obj)
    connect_ENUM__BOOL :: forall a obj.
    (Enum a, GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_ENUM__BOOL SignalName
    signal ConnectAfter
    after obj
    obj a -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Int -> IO Bool
            action :: Ptr GObject -> Int -> IO ConnectAfter
    action Ptr GObject
    _ Int
    enum1 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              a -> IO ConnectAfter
    user (Int -> a
    forall a. Enum a => Int -> a
    toEnum Int
    enum1)

    connect_ENUM_DOUBLE__BOOL ::
      (Enum a, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a -> Double -> IO Bool) ->
      IO (ConnectId obj)
    connect_ENUM_DOUBLE__BOOL :: forall a obj.
    (Enum a, GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a -> Double -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_ENUM_DOUBLE__BOOL SignalName
    signal ConnectAfter
    after obj
    obj a -> Double -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> Double -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> Double -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Int -> Double -> IO Bool
            action :: Ptr GObject -> Int -> Double -> IO ConnectAfter
    action Ptr GObject
    _ Int
    enum1 Double
    double2 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              a -> Double -> IO ConnectAfter
    user (Int -> a
    forall a. Enum a => Int -> a
    toEnum Int
    enum1) Double
    double2

    connect_INT__BOOL ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Int -> IO Bool) ->
      IO (ConnectId obj)
    connect_INT__BOOL :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Int -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_INT__BOOL SignalName
    signal ConnectAfter
    after obj
    obj Int -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Int -> IO Bool
            action :: Ptr GObject -> Int -> IO ConnectAfter
    action Ptr GObject
    _ Int
    int1 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              Int -> IO ConnectAfter
    user Int
    int1

    connect_OBJECT_BOXED__BOOL ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      (Ptr b' -> IO b) ->
      ConnectAfter -> obj ->
      (a' -> b -> IO Bool) ->
      IO (ConnectId obj)
    connect_OBJECT_BOXED__BOOL :: forall a' obj b' b.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> (Ptr b' -> IO b)
    -> ConnectAfter
    -> obj
    -> (a' -> b -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_OBJECT_BOXED__BOOL SignalName
    signal Ptr b' -> IO b
    boxedPre2 ConnectAfter
    after obj
    obj a' -> b -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> Ptr () -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Ptr () -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr GObject -> Ptr () -> IO Bool
            action :: Ptr GObject -> Ptr GObject -> Ptr () -> IO ConnectAfter
    action Ptr GObject
    _ Ptr GObject
    obj1 Ptr ()
    box2 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              Ptr b' -> IO b
    boxedPre2 (Ptr () -> Ptr b'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box2) IO b -> (b -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b
    box2' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> b -> IO ConnectAfter
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') b
    box2'

    connect_INT_INT__BOOL ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Int -> Int -> IO Bool) ->
      IO (ConnectId obj)
    connect_INT_INT__BOOL :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Int -> Int -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_INT_INT__BOOL SignalName
    signal ConnectAfter
    after obj
    obj Int -> Int -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> Int -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> Int -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Int -> Int -> IO Bool
            action :: Ptr GObject -> Int -> Int -> IO ConnectAfter
    action Ptr GObject
    _ Int
    int1 Int
    int2 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              Int -> Int -> IO ConnectAfter
    user Int
    int1 Int
    int2

    connect_INT_INT_INT__BOOL ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Int -> Int -> Int -> IO Bool) ->
      IO (ConnectId obj)
    connect_INT_INT_INT__BOOL :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Int -> Int -> Int -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_INT_INT_INT__BOOL SignalName
    signal ConnectAfter
    after obj
    obj Int -> Int -> Int -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> Int -> Int -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> Int -> Int -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Int -> Int -> Int -> IO Bool
            action :: Ptr GObject -> Int -> Int -> Int -> IO ConnectAfter
    action Ptr GObject
    _ Int
    int1 Int
    int2 Int
    int3 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              Int -> Int -> Int -> IO ConnectAfter
    user Int
    int1 Int
    int2 Int
    int3

    connect_WORD__BOOL ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Word -> IO Bool) ->
      IO (ConnectId obj)
    connect_WORD__BOOL :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Word -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_WORD__BOOL SignalName
    signal ConnectAfter
    after obj
    obj Word -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Word -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Word -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Word -> IO Bool
            action :: Ptr GObject -> Word -> IO ConnectAfter
    action Ptr GObject
    _ Word
    int1 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              Word -> IO ConnectAfter
    user Word
    int1

    connect_NONE__BOOL ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (IO Bool) ->
      IO (ConnectId obj)
    connect_NONE__BOOL :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter -> obj -> IO ConnectAfter -> IO (ConnectId obj)
    connect_NONE__BOOL SignalName
    signal ConnectAfter
    after obj
    obj IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> IO ConnectAfter
    action
      where action :: Ptr GObject -> IO Bool
            action :: Ptr GObject -> IO ConnectAfter
    action Ptr GObject
    _ =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              IO ConnectAfter
    user

    connect_BOOL__BOOL ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Bool -> IO Bool) ->
      IO (ConnectId obj)
    connect_BOOL__BOOL :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (ConnectAfter -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_BOOL__BOOL SignalName
    signal ConnectAfter
    after obj
    obj ConnectAfter -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> ConnectAfter -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> ConnectAfter -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Bool -> IO Bool
            action :: Ptr GObject -> ConnectAfter -> IO ConnectAfter
    action Ptr GObject
    _ ConnectAfter
    bool1 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              ConnectAfter -> IO ConnectAfter
    user ConnectAfter
    bool1

    connect_NONE__ENUM ::
      (Enum a, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (IO a) ->
      IO (ConnectId obj)
    connect_NONE__ENUM :: forall a obj.
    (Enum a, GObjectClass obj) =>
    SignalName -> ConnectAfter -> obj -> IO a -> IO (ConnectId obj)
    connect_NONE__ENUM SignalName
    signal ConnectAfter
    after obj
    obj IO a
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> IO Int)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> IO Int
    action
      where action :: Ptr GObject -> IO Int
            action :: Ptr GObject -> IO Int
    action Ptr GObject
    _ =
              IO Int -> IO Int
    forall a. IO a -> IO a
    failOnGError (IO Int -> IO Int) -> IO Int -> IO Int
    forall a b. (a -> b) -> a -> b
    $
              (a -> Int) -> IO a -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM a -> Int
    forall a. Enum a => a -> Int
    fromEnum (IO a -> IO Int) -> IO a -> IO Int
    forall a b. (a -> b) -> a -> b
    $
              IO a
    user

    connect_ENUM__ENUM ::
      (Enum a, Enum b, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a -> IO b) ->
      IO (ConnectId obj)
    connect_ENUM__ENUM :: forall a b obj.
    (Enum a, Enum b, GObjectClass obj) =>
    SignalName
    -> ConnectAfter -> obj -> (a -> IO b) -> IO (ConnectId obj)
    connect_ENUM__ENUM SignalName
    signal ConnectAfter
    after obj
    obj a -> IO b
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> IO Int)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> IO Int
    action
      where action :: Ptr GObject -> Int -> IO Int
            action :: Ptr GObject -> Int -> IO Int
    action Ptr GObject
    _ Int
    enum1 =
              IO Int -> IO Int
    forall a. IO a -> IO a
    failOnGError (IO Int -> IO Int) -> IO Int -> IO Int
    forall a b. (a -> b) -> a -> b
    $
              (b -> Int) -> IO b -> IO Int
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM b -> Int
    forall a. Enum a => a -> Int
    fromEnum (IO b -> IO Int) -> IO b -> IO Int
    forall a b. (a -> b) -> a -> b
    $
              a -> IO b
    user (Int -> a
    forall a. Enum a => Int -> a
    toEnum Int
    enum1)

    connect_PTR__INT ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Ptr a -> IO Int) ->
      IO (ConnectId obj)
    connect_PTR__INT :: forall obj a.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter -> obj -> (Ptr a -> IO Int) -> IO (ConnectId obj)
    connect_PTR__INT SignalName
    signal ConnectAfter
    after obj
    obj Ptr a -> IO Int
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> IO Int)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> IO Int
    action
      where action :: Ptr GObject -> Ptr () -> IO Int
            action :: Ptr GObject -> Ptr () -> IO Int
    action Ptr GObject
    _ Ptr ()
    ptr1 =
              IO Int -> IO Int
    forall a. IO a -> IO a
    failOnGError (IO Int -> IO Int) -> IO Int -> IO Int
    forall a b. (a -> b) -> a -> b
    $
              Ptr a -> IO Int
    user (Ptr () -> Ptr a
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr1)

    connect_BOOL__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Bool -> IO ()) ->
      IO (ConnectId obj)
    connect_BOOL__NONE :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (ConnectAfter -> IO ())
    -> IO (ConnectId obj)
    connect_BOOL__NONE SignalName
    signal ConnectAfter
    after obj
    obj ConnectAfter -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> ConnectAfter -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> ConnectAfter -> IO ()
    action
      where action :: Ptr GObject -> Bool -> IO ()
            action :: Ptr GObject -> ConnectAfter -> IO ()
    action Ptr GObject
    _ ConnectAfter
    bool1 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              ConnectAfter -> IO ()
    user ConnectAfter
    bool1

    connect_INT__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Int -> IO ()) ->
      IO (ConnectId obj)
    connect_INT__NONE :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter -> obj -> (Int -> IO ()) -> IO (ConnectId obj)
    connect_INT__NONE SignalName
    signal ConnectAfter
    after obj
    obj Int -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> IO ()
    action
      where action :: Ptr GObject -> Int -> IO ()
            action :: Ptr GObject -> Int -> IO ()
    action Ptr GObject
    _ Int
    int1 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Int -> IO ()
    user Int
    int1

    connect_INT_INT__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Int -> Int -> IO ()) ->
      IO (ConnectId obj)
    connect_INT_INT__NONE :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Int -> Int -> IO ())
    -> IO (ConnectId obj)
    connect_INT_INT__NONE SignalName
    signal ConnectAfter
    after obj
    obj Int -> Int -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> Int -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> Int -> IO ()
    action
      where action :: Ptr GObject -> Int -> Int -> IO ()
            action :: Ptr GObject -> Int -> Int -> IO ()
    action Ptr GObject
    _ Int
    int1 Int
    int2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Int -> Int -> IO ()
    user Int
    int1 Int
    int2

    connect_NONE__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (IO ()) ->
      IO (ConnectId obj)
    connect_NONE__NONE :: forall obj.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> IO () -> IO (ConnectId obj)
    connect_NONE__NONE SignalName
    signal ConnectAfter
    after obj
    obj IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> IO ()
    action
      where action :: Ptr GObject -> IO ()
            action :: Ptr GObject -> IO ()
    action Ptr GObject
    _ =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              IO ()
    user

    connect_DOUBLE__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Double -> IO ()) ->
      IO (ConnectId obj)
    connect_DOUBLE__NONE :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter -> obj -> (Double -> IO ()) -> IO (ConnectId obj)
    connect_DOUBLE__NONE SignalName
    signal ConnectAfter
    after obj
    obj Double -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Double -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Double -> IO ()
    action
      where action :: Ptr GObject -> Double -> IO ()
            action :: Ptr GObject -> Double -> IO ()
    action Ptr GObject
    _ Double
    double1 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Double -> IO ()
    user Double
    double1

    connect_BOXED__NONE ::
      GObjectClass obj => SignalName ->
      (Ptr a' -> IO a) ->
      ConnectAfter -> obj ->
      (a -> IO ()) ->
      IO (ConnectId obj)
    connect_BOXED__NONE :: forall obj a' a.
    GObjectClass obj =>
    SignalName
    -> (Ptr a' -> IO a)
    -> ConnectAfter
    -> obj
    -> (a -> IO ())
    -> IO (ConnectId obj)
    connect_BOXED__NONE SignalName
    signal Ptr a' -> IO a
    boxedPre1 ConnectAfter
    after obj
    obj a -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> IO ()
            action :: Ptr GObject -> Ptr () -> IO ()
    action Ptr GObject
    _ Ptr ()
    box1 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr a' -> IO a
    boxedPre1 (Ptr () -> Ptr a'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box1) IO a -> (a -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a
    box1' ->
              a -> IO ()
    user a
    box1'

    connect_BOXED_BOXED__NONE ::
      GObjectClass obj => SignalName ->
      (Ptr a' -> IO a) -> (Ptr b' -> IO b) ->
      ConnectAfter -> obj ->
      (a -> b -> IO ()) ->
      IO (ConnectId obj)
    connect_BOXED_BOXED__NONE :: forall obj a' a b' b.
    GObjectClass obj =>
    SignalName
    -> (Ptr a' -> IO a)
    -> (Ptr b' -> IO b)
    -> ConnectAfter
    -> obj
    -> (a -> b -> IO ())
    -> IO (ConnectId obj)
    connect_BOXED_BOXED__NONE SignalName
    signal Ptr a' -> IO a
    boxedPre1 Ptr b' -> IO b
    boxedPre2 ConnectAfter
    after obj
    obj a -> b -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Ptr () -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Ptr () -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> Ptr () -> IO ()
            action :: Ptr GObject -> Ptr () -> Ptr () -> IO ()
    action Ptr GObject
    _ Ptr ()
    box1 Ptr ()
    box2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr b' -> IO b
    boxedPre2 (Ptr () -> Ptr b'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box2) IO b -> (b -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b
    box2' ->
              Ptr a' -> IO a
    boxedPre1 (Ptr () -> Ptr a'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box1) IO a -> (a -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a
    box1' ->
              a -> b -> IO ()
    user a
    box1' b
    box2'

    connect_BOXED_BOXED_PTR__NONE ::
      GObjectClass obj => SignalName ->
      (Ptr a' -> IO a) -> (Ptr b' -> IO b) ->
      ConnectAfter -> obj ->
      (a -> b -> Ptr c -> IO ()) ->
      IO (ConnectId obj)
    connect_BOXED_BOXED_PTR__NONE :: forall obj a' a b' b c.
    GObjectClass obj =>
    SignalName
    -> (Ptr a' -> IO a)
    -> (Ptr b' -> IO b)
    -> ConnectAfter
    -> obj
    -> (a -> b -> Ptr c -> IO ())
    -> IO (ConnectId obj)
    connect_BOXED_BOXED_PTR__NONE SignalName
    signal Ptr a' -> IO a
    boxedPre1 Ptr b' -> IO b
    boxedPre2 ConnectAfter
    after obj
    obj a -> b -> Ptr c -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Ptr () -> Ptr () -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Ptr () -> Ptr () -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> Ptr () -> Ptr () -> IO ()
            action :: Ptr GObject -> Ptr () -> Ptr () -> Ptr () -> IO ()
    action Ptr GObject
    _ Ptr ()
    box1 Ptr ()
    box2 Ptr ()
    ptr3 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr b' -> IO b
    boxedPre2 (Ptr () -> Ptr b'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box2) IO b -> (b -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b
    box2' ->
              Ptr a' -> IO a
    boxedPre1 (Ptr () -> Ptr a'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box1) IO a -> (a -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a
    box1' ->
              a -> b -> Ptr c -> IO ()
    user a
    box1' b
    box2' (Ptr () -> Ptr c
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr3)

    connect_BOXED_OBJECT__NONE ::
      (GObjectClass b', GObjectClass obj) => SignalName ->
      (Ptr a' -> IO a) ->
      ConnectAfter -> obj ->
      (a -> b' -> IO ()) ->
      IO (ConnectId obj)
    connect_BOXED_OBJECT__NONE :: forall b' obj a' a.
    (GObjectClass b', GObjectClass obj) =>
    SignalName
    -> (Ptr a' -> IO a)
    -> ConnectAfter
    -> obj
    -> (a -> b' -> IO ())
    -> IO (ConnectId obj)
    connect_BOXED_OBJECT__NONE SignalName
    signal Ptr a' -> IO a
    boxedPre1 ConnectAfter
    after obj
    obj a -> b' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Ptr GObject -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Ptr GObject -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> Ptr GObject -> IO ()
            action :: Ptr GObject -> Ptr () -> Ptr GObject -> IO ()
    action Ptr GObject
    _ Ptr ()
    box1 Ptr GObject
    obj2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj2) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj2' ->
              Ptr a' -> IO a
    boxedPre1 (Ptr () -> Ptr a'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box1) IO a -> (a -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a
    box1' ->
              a -> b' -> IO ()
    user a
    box1' (GObject -> b'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj2')

    connect_BOXED_WORD__NONE ::
      GObjectClass obj => SignalName ->
      (Ptr a' -> IO a) ->
      ConnectAfter -> obj ->
      (a -> Word -> IO ()) ->
      IO (ConnectId obj)
    connect_BOXED_WORD__NONE :: forall obj a' a.
    GObjectClass obj =>
    SignalName
    -> (Ptr a' -> IO a)
    -> ConnectAfter
    -> obj
    -> (a -> Word -> IO ())
    -> IO (ConnectId obj)
    connect_BOXED_WORD__NONE SignalName
    signal Ptr a' -> IO a
    boxedPre1 ConnectAfter
    after obj
    obj a -> Word -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Word -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Word -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> Word -> IO ()
            action :: Ptr GObject -> Ptr () -> Word -> IO ()
    action Ptr GObject
    _ Ptr ()
    box1 Word
    int2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr a' -> IO a
    boxedPre1 (Ptr () -> Ptr a'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box1) IO a -> (a -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a
    box1' ->
              a -> Word -> IO ()
    user a
    box1' Word
    int2

    connect_ENUM__NONE ::
      (Enum a, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a -> IO ()) ->
      IO (ConnectId obj)
    connect_ENUM__NONE :: forall a obj.
    (Enum a, GObjectClass obj) =>
    SignalName
    -> ConnectAfter -> obj -> (a -> IO ()) -> IO (ConnectId obj)
    connect_ENUM__NONE SignalName
    signal ConnectAfter
    after obj
    obj a -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> IO ()
    action
      where action :: Ptr GObject -> Int -> IO ()
            action :: Ptr GObject -> Int -> IO ()
    action Ptr GObject
    _ Int
    enum1 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              a -> IO ()
    user (Int -> a
    forall a. Enum a => Int -> a
    toEnum Int
    enum1)

    connect_ENUM_INT__NONE ::
      (Enum a, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a -> Int -> IO ()) ->
      IO (ConnectId obj)
    connect_ENUM_INT__NONE :: forall a obj.
    (Enum a, GObjectClass obj) =>
    SignalName
    -> ConnectAfter -> obj -> (a -> Int -> IO ()) -> IO (ConnectId obj)
    connect_ENUM_INT__NONE SignalName
    signal ConnectAfter
    after obj
    obj a -> Int -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> Int -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> Int -> IO ()
    action
      where action :: Ptr GObject -> Int -> Int -> IO ()
            action :: Ptr GObject -> Int -> Int -> IO ()
    action Ptr GObject
    _ Int
    enum1 Int
    int2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              a -> Int -> IO ()
    user (Int -> a
    forall a. Enum a => Int -> a
    toEnum Int
    enum1) Int
    int2

    connect_ENUM_INT_BOOL__NONE ::
      (Enum a, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a -> Int -> Bool -> IO ()) ->
      IO (ConnectId obj)
    connect_ENUM_INT_BOOL__NONE :: forall a obj.
    (Enum a, GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a -> Int -> ConnectAfter -> IO ())
    -> IO (ConnectId obj)
    connect_ENUM_INT_BOOL__NONE SignalName
    signal ConnectAfter
    after obj
    obj a -> Int -> ConnectAfter -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> Int -> ConnectAfter -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> Int -> ConnectAfter -> IO ()
    action
      where action :: Ptr GObject -> Int -> Int -> Bool -> IO ()
            action :: Ptr GObject -> Int -> Int -> ConnectAfter -> IO ()
    action Ptr GObject
    _ Int
    enum1 Int
    int2 ConnectAfter
    bool3 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              a -> Int -> ConnectAfter -> IO ()
    user (Int -> a
    forall a. Enum a => Int -> a
    toEnum Int
    enum1) Int
    int2 ConnectAfter
    bool3

    connect_OBJECT__NONE ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> IO ()) ->
      IO (ConnectId obj)
    connect_OBJECT__NONE :: forall a' obj.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> ConnectAfter -> obj -> (a' -> IO ()) -> IO (ConnectId obj)
    connect_OBJECT__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> IO ()
            action :: Ptr GObject -> Ptr GObject -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> IO ()
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1')

    connect_MOBJECT__NONE ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (Maybe a' -> IO ()) ->
      IO (ConnectId obj)
    connect_MOBJECT__NONE :: forall a' obj.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> ConnectAfter -> obj -> (Maybe a' -> IO ()) -> IO (ConnectId obj)
    connect_MOBJECT__NONE SignalName
    signal ConnectAfter
    after obj
    obj Maybe a' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> IO ()
            action :: Ptr GObject -> Ptr GObject -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              (IO (Ptr GObject) -> IO GObject)
    -> IO (Ptr GObject) -> IO (Maybe GObject)
    forall a. (IO (Ptr a) -> IO a) -> IO (Ptr a) -> IO (Maybe a)
    maybeNull ((ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop)) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO (Maybe GObject) -> (Maybe GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \Maybe GObject
    obj1' ->
              Maybe a' -> IO ()
    user ((GObject -> a') -> Maybe GObject -> Maybe a'
    forall (m :: * -> *) a1 r. Monad m => (a1 -> r) -> m a1 -> m r
    liftM GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject Maybe GObject
    obj1')

    connect_OBJECT_BOXED_BOXED__NONE ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      (Ptr b' -> IO b) -> (Ptr c' -> IO c) ->
      ConnectAfter -> obj ->
      (a' -> b -> c -> IO ()) ->
      IO (ConnectId obj)
    connect_OBJECT_BOXED_BOXED__NONE :: forall a' obj b' b c' c.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> (Ptr b' -> IO b)
    -> (Ptr c' -> IO c)
    -> ConnectAfter
    -> obj
    -> (a' -> b -> c -> IO ())
    -> IO (ConnectId obj)
    connect_OBJECT_BOXED_BOXED__NONE SignalName
    signal Ptr b' -> IO b
    boxedPre2 Ptr c' -> IO c
    boxedPre3 ConnectAfter
    after obj
    obj a' -> b -> c -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> Ptr () -> Ptr () -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Ptr () -> Ptr () -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> Ptr () -> Ptr () -> IO ()
            action :: Ptr GObject -> Ptr GObject -> Ptr () -> Ptr () -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 Ptr ()
    box2 Ptr ()
    box3 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr c' -> IO c
    boxedPre3 (Ptr () -> Ptr c'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box3) IO c -> (c -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \c
    box3' ->
              Ptr b' -> IO b
    boxedPre2 (Ptr () -> Ptr b'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box2) IO b -> (b -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b
    box2' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> b -> c -> IO ()
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') b
    box2' c
    box3'

    connect_OBJECT_OBJECT__NONE ::
      (GObjectClass a', GObjectClass b', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> b' -> IO ()) ->
      IO (ConnectId obj)
    connect_OBJECT_OBJECT__NONE :: forall a' b' obj.
    (GObjectClass a', GObjectClass b', GObjectClass obj) =>
    SignalName
    -> ConnectAfter -> obj -> (a' -> b' -> IO ()) -> IO (ConnectId obj)
    connect_OBJECT_OBJECT__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> b' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ()
            action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 Ptr GObject
    obj2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj2) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj2' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> b' -> IO ()
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') (GObject -> b'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj2')

    connect_PTR__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Ptr a -> IO ()) ->
      IO (ConnectId obj)
    connect_PTR__NONE :: forall obj a.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter -> obj -> (Ptr a -> IO ()) -> IO (ConnectId obj)
    connect_PTR__NONE SignalName
    signal ConnectAfter
    after obj
    obj Ptr a -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> IO ()
            action :: Ptr GObject -> Ptr () -> IO ()
    action Ptr GObject
    _ Ptr ()
    ptr1 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr a -> IO ()
    user (Ptr () -> Ptr a
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr1)

    connect_PTR_WORD__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Ptr a -> Word -> IO ()) ->
      IO (ConnectId obj)
    connect_PTR_WORD__NONE :: forall obj a.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr a -> Word -> IO ())
    -> IO (ConnectId obj)
    connect_PTR_WORD__NONE SignalName
    signal ConnectAfter
    after obj
    obj Ptr a -> Word -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Word -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Word -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> Word -> IO ()
            action :: Ptr GObject -> Ptr () -> Word -> IO ()
    action Ptr GObject
    _ Ptr ()
    ptr1 Word
    int2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr a -> Word -> IO ()
    user (Ptr () -> Ptr a
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr1) Word
    int2

    connect_GLIBSTRING__NONE ::
      (Glib.GlibString a', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> IO ()) ->
      IO (ConnectId obj)
    connect_GLIBSTRING__NONE :: forall a' obj.
    (GlibString a', GObjectClass obj) =>
    SignalName
    -> ConnectAfter -> obj -> (a' -> IO ()) -> IO (ConnectId obj)
    connect_GLIBSTRING__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> CString -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> CString -> IO ()
    action
      where action :: Ptr GObject -> CString -> IO ()
            action :: Ptr GObject -> CString -> IO ()
    action Ptr GObject
    _ CString
    str1 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              CString -> IO a'
    forall s. GlibString s => CString -> IO s
    peekUTFString CString
    str1 IO a' -> (a' -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a'
    str1' ->
              a' -> IO ()
    user a'
    str1'

    connect_GLIBSTRING_GLIBSTRING__NONE ::
      (Glib.GlibString a', Glib.GlibString b', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> b' -> IO ()) ->
      IO (ConnectId obj)
    connect_GLIBSTRING_GLIBSTRING__NONE :: forall a' b' obj.
    (GlibString a', GlibString b', GObjectClass obj) =>
    SignalName
    -> ConnectAfter -> obj -> (a' -> b' -> IO ()) -> IO (ConnectId obj)
    connect_GLIBSTRING_GLIBSTRING__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> b' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> CString -> CString -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> CString -> CString -> IO ()
    action
      where action :: Ptr GObject -> CString -> CString -> IO ()
            action :: Ptr GObject -> CString -> CString -> IO ()
    action Ptr GObject
    _ CString
    str1 CString
    str2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              CString -> IO b'
    forall s. GlibString s => CString -> IO s
    peekUTFString CString
    str2 IO b' -> (b' -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b'
    str2' ->
              CString -> IO a'
    forall s. GlibString s => CString -> IO s
    peekUTFString CString
    str1 IO a' -> (a' -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a'
    str1' ->
              a' -> b' -> IO ()
    user a'
    str1' b'
    str2'

    connect_WORD_WORD__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Word -> Word -> IO ()) ->
      IO (ConnectId obj)
    connect_WORD_WORD__NONE :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Word -> Word -> IO ())
    -> IO (ConnectId obj)
    connect_WORD_WORD__NONE SignalName
    signal ConnectAfter
    after obj
    obj Word -> Word -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Word -> Word -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Word -> Word -> IO ()
    action
      where action :: Ptr GObject -> Word -> Word -> IO ()
            action :: Ptr GObject -> Word -> Word -> IO ()
    action Ptr GObject
    _ Word
    int1 Word
    int2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Word -> Word -> IO ()
    user Word
    int1 Word
    int2

    connect_WORD_GLIBSTRING__NONE ::
      (Glib.GlibString b', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (Word -> b' -> IO ()) ->
      IO (ConnectId obj)
    connect_WORD_GLIBSTRING__NONE :: forall b' obj.
    (GlibString b', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Word -> b' -> IO ())
    -> IO (ConnectId obj)
    connect_WORD_GLIBSTRING__NONE SignalName
    signal ConnectAfter
    after obj
    obj Word -> b' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Word -> CString -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Word -> CString -> IO ()
    action
      where action :: Ptr GObject -> Word -> CString -> IO ()
            action :: Ptr GObject -> Word -> CString -> IO ()
    action Ptr GObject
    _ Word
    int1 CString
    str2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              CString -> IO b'
    forall s. GlibString s => CString -> IO s
    peekUTFString CString
    str2 IO b' -> (b' -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b'
    str2' ->
              Word -> b' -> IO ()
    user Word
    int1 b'
    str2'

    connect_BOXED_PTR_INT__NONE ::
      GObjectClass obj => SignalName ->
      (Ptr a' -> IO a) ->
      ConnectAfter -> obj ->
      (a -> Ptr b -> Int -> IO ()) ->
      IO (ConnectId obj)
    connect_BOXED_PTR_INT__NONE :: forall obj a' a b.
    GObjectClass obj =>
    SignalName
    -> (Ptr a' -> IO a)
    -> ConnectAfter
    -> obj
    -> (a -> Ptr b -> Int -> IO ())
    -> IO (ConnectId obj)
    connect_BOXED_PTR_INT__NONE SignalName
    signal Ptr a' -> IO a
    boxedPre1 ConnectAfter
    after obj
    obj a -> Ptr b -> Int -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Ptr () -> Int -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Ptr () -> Int -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> Ptr () -> Int -> IO ()
            action :: Ptr GObject -> Ptr () -> Ptr () -> Int -> IO ()
    action Ptr GObject
    _ Ptr ()
    box1 Ptr ()
    ptr2 Int
    int3 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr a' -> IO a
    boxedPre1 (Ptr () -> Ptr a'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box1) IO a -> (a -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a
    box1' ->
              a -> Ptr b -> Int -> IO ()
    user a
    box1' (Ptr () -> Ptr b
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr2) Int
    int3

    connect_INT_BOOL__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Int -> Bool -> IO ()) ->
      IO (ConnectId obj)
    connect_INT_BOOL__NONE :: forall obj.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Int -> ConnectAfter -> IO ())
    -> IO (ConnectId obj)
    connect_INT_BOOL__NONE SignalName
    signal ConnectAfter
    after obj
    obj Int -> ConnectAfter -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> ConnectAfter -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> ConnectAfter -> IO ()
    action
      where action :: Ptr GObject -> Int -> Bool -> IO ()
            action :: Ptr GObject -> Int -> ConnectAfter -> IO ()
    action Ptr GObject
    _ Int
    int1 ConnectAfter
    bool2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Int -> ConnectAfter -> IO ()
    user Int
    int1 ConnectAfter
    bool2

    connect_OBJECT_GLIBSTRING__NONE ::
      (GObjectClass a', Glib.GlibString b', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> b' -> IO ()) ->
      IO (ConnectId obj)
    connect_OBJECT_GLIBSTRING__NONE :: forall a' b' obj.
    (GObjectClass a', GlibString b', GObjectClass obj) =>
    SignalName
    -> ConnectAfter -> obj -> (a' -> b' -> IO ()) -> IO (ConnectId obj)
    connect_OBJECT_GLIBSTRING__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> b' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> CString -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> CString -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> CString -> IO ()
            action :: Ptr GObject -> Ptr GObject -> CString -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 CString
    str2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              CString -> IO b'
    forall s. GlibString s => CString -> IO s
    peekUTFString CString
    str2 IO b' -> (b' -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b'
    str2' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> b' -> IO ()
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') b'
    str2'

    connect_GLIBSTRING__BOOL ::
      (Glib.GlibString a', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> IO Bool) ->
      IO (ConnectId obj)
    connect_GLIBSTRING__BOOL :: forall a' obj.
    (GlibString a', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_GLIBSTRING__BOOL SignalName
    signal ConnectAfter
    after obj
    obj a' -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> CString -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> CString -> IO ConnectAfter
    action
      where action :: Ptr GObject -> CString -> IO Bool
            action :: Ptr GObject -> CString -> IO ConnectAfter
    action Ptr GObject
    _ CString
    str1 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              CString -> IO a'
    forall s. GlibString s => CString -> IO s
    peekUTFString CString
    str1 IO a' -> (a' -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a'
    str1' ->
              a' -> IO ConnectAfter
    user a'
    str1'

    connect_OBJECT_PTR_BOXED__BOOL ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      (Ptr c' -> IO c) ->
      ConnectAfter -> obj ->
      (a' -> Ptr b -> c -> IO Bool) ->
      IO (ConnectId obj)
    connect_OBJECT_PTR_BOXED__BOOL :: forall a' obj c' c b.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> (Ptr c' -> IO c)
    -> ConnectAfter
    -> obj
    -> (a' -> Ptr b -> c -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_OBJECT_PTR_BOXED__BOOL SignalName
    signal Ptr c' -> IO c
    boxedPre3 ConnectAfter
    after obj
    obj a' -> Ptr b -> c -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject
        -> Ptr GObject -> Ptr () -> Ptr () -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Ptr () -> Ptr () -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr GObject -> Ptr () -> Ptr () -> IO Bool
            action :: Ptr GObject -> Ptr GObject -> Ptr () -> Ptr () -> IO ConnectAfter
    action Ptr GObject
    _ Ptr GObject
    obj1 Ptr ()
    ptr2 Ptr ()
    box3 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              Ptr c' -> IO c
    boxedPre3 (Ptr () -> Ptr c'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box3) IO c -> (c -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \c
    box3' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> Ptr b -> c -> IO ConnectAfter
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') (Ptr () -> Ptr b
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr2) c
    box3'

    connect_PTR_BOXED_BOXED__BOOL ::
      GObjectClass obj => SignalName ->
      (Ptr b' -> IO b) -> (Ptr c' -> IO c) ->
      ConnectAfter -> obj ->
      (Ptr a -> b -> c -> IO Bool) ->
      IO (ConnectId obj)
    connect_PTR_BOXED_BOXED__BOOL :: forall obj b' b c' c a.
    GObjectClass obj =>
    SignalName
    -> (Ptr b' -> IO b)
    -> (Ptr c' -> IO c)
    -> ConnectAfter
    -> obj
    -> (Ptr a -> b -> c -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_PTR_BOXED_BOXED__BOOL SignalName
    signal Ptr b' -> IO b
    boxedPre2 Ptr c' -> IO c
    boxedPre3 ConnectAfter
    after obj
    obj Ptr a -> b -> c -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Ptr () -> Ptr () -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Ptr () -> Ptr () -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr () -> Ptr () -> Ptr () -> IO Bool
            action :: Ptr GObject -> Ptr () -> Ptr () -> Ptr () -> IO ConnectAfter
    action Ptr GObject
    _ Ptr ()
    ptr1 Ptr ()
    box2 Ptr ()
    box3 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              Ptr c' -> IO c
    boxedPre3 (Ptr () -> Ptr c'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box3) IO c -> (c -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \c
    box3' ->
              Ptr b' -> IO b
    boxedPre2 (Ptr () -> Ptr b'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box2) IO b -> (b -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b
    box2' ->
              Ptr a -> b -> c -> IO ConnectAfter
    user (Ptr () -> Ptr a
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr1) b
    box2' c
    box3'

    connect_PTR_INT_PTR__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Ptr a -> Int -> Ptr c -> IO ()) ->
      IO (ConnectId obj)
    connect_PTR_INT_PTR__NONE :: forall obj a c.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr a -> Int -> Ptr c -> IO ())
    -> IO (ConnectId obj)
    connect_PTR_INT_PTR__NONE SignalName
    signal ConnectAfter
    after obj
    obj Ptr a -> Int -> Ptr c -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Int -> Ptr () -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Int -> Ptr () -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> Int -> Ptr () -> IO ()
            action :: Ptr GObject -> Ptr () -> Int -> Ptr () -> IO ()
    action Ptr GObject
    _ Ptr ()
    ptr1 Int
    int2 Ptr ()
    ptr3 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr a -> Int -> Ptr c -> IO ()
    user (Ptr () -> Ptr a
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr1) Int
    int2 (Ptr () -> Ptr c
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr3)

    connect_PTR_WORD_WORD__NONE ::
      GObjectClass obj => SignalName ->
      ConnectAfter -> obj ->
      (Ptr a -> Word -> Word -> IO ()) ->
      IO (ConnectId obj)
    connect_PTR_WORD_WORD__NONE :: forall obj a.
    GObjectClass obj =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr a -> Word -> Word -> IO ())
    -> IO (ConnectId obj)
    connect_PTR_WORD_WORD__NONE SignalName
    signal ConnectAfter
    after obj
    obj Ptr a -> Word -> Word -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Word -> Word -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Word -> Word -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> Word -> Word -> IO ()
            action :: Ptr GObject -> Ptr () -> Word -> Word -> IO ()
    action Ptr GObject
    _ Ptr ()
    ptr1 Word
    int2 Word
    int3 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr a -> Word -> Word -> IO ()
    user (Ptr () -> Ptr a
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr1) Word
    int2 Word
    int3

    connect_OBJECT_PTR_WORD_WORD__NONE ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> Ptr b -> Word -> Word -> IO ()) ->
      IO (ConnectId obj)
    connect_OBJECT_PTR_WORD_WORD__NONE :: forall a' obj b.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> Ptr b -> Word -> Word -> IO ())
    -> IO (ConnectId obj)
    connect_OBJECT_PTR_WORD_WORD__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> Ptr b -> Word -> Word -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> Ptr () -> Word -> Word -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Ptr () -> Word -> Word -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> Ptr () -> Word -> Word -> IO ()
            action :: Ptr GObject -> Ptr GObject -> Ptr () -> Word -> Word -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 Ptr ()
    ptr2 Word
    int3 Word
    int4 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> Ptr b -> Word -> Word -> IO ()
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') (Ptr () -> Ptr b
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr2) Word
    int3 Word
    int4

    connect_OBJECT_INT_INT_PTR_WORD_WORD__NONE ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> Int -> Int -> Ptr d -> Word -> Word -> IO ()) ->
      IO (ConnectId obj)
    connect_OBJECT_INT_INT_PTR_WORD_WORD__NONE :: forall a' obj d.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> Int -> Int -> Ptr d -> Word -> Word -> IO ())
    -> IO (ConnectId obj)
    connect_OBJECT_INT_INT_PTR_WORD_WORD__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> Int -> Int -> Ptr d -> Word -> Word -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject
        -> Ptr GObject -> Int -> Int -> Ptr () -> Word -> Word -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject
    -> Ptr GObject -> Int -> Int -> Ptr () -> Word -> Word -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> Int -> Int -> Ptr () -> Word -> Word -> IO ()
            action :: Ptr GObject
    -> Ptr GObject -> Int -> Int -> Ptr () -> Word -> Word -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 Int
    int2 Int
    int3 Ptr ()
    ptr4 Word
    int5 Word
    int6 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> Int -> Int -> Ptr d -> Word -> Word -> IO ()
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') Int
    int2 Int
    int3 (Ptr () -> Ptr d
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr4) Word
    int5 Word
    int6

    connect_OBJECT_INT_INT_WORD__BOOL ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> Int -> Int -> Word -> IO Bool) ->
      IO (ConnectId obj)
    connect_OBJECT_INT_INT_WORD__BOOL :: forall a' obj.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> Int -> Int -> Word -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_OBJECT_INT_INT_WORD__BOOL SignalName
    signal ConnectAfter
    after obj
    obj a' -> Int -> Int -> Word -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject
        -> Ptr GObject -> Int -> Int -> Word -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Int -> Int -> Word -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr GObject -> Int -> Int -> Word -> IO Bool
            action :: Ptr GObject -> Ptr GObject -> Int -> Int -> Word -> IO ConnectAfter
    action Ptr GObject
    _ Ptr GObject
    obj1 Int
    int2 Int
    int3 Word
    int4 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> Int -> Int -> Word -> IO ConnectAfter
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') Int
    int2 Int
    int3 Word
    int4

    connect_OBJECT_WORD__NONE ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> Word -> IO ()) ->
      IO (ConnectId obj)
    connect_OBJECT_WORD__NONE :: forall a' obj.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> Word -> IO ())
    -> IO (ConnectId obj)
    connect_OBJECT_WORD__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> Word -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> Word -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Word -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> Word -> IO ()
            action :: Ptr GObject -> Ptr GObject -> Word -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 Word
    int2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> Word -> IO ()
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') Word
    int2

    connect_OBJECT_ENUM__BOOL ::
      (GObjectClass a', Enum b, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> b -> IO Bool) ->
      IO (ConnectId obj)
    connect_OBJECT_ENUM__BOOL :: forall a' b obj.
    (GObjectClass a', Enum b, GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> b -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_OBJECT_ENUM__BOOL SignalName
    signal ConnectAfter
    after obj
    obj a' -> b -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> Int -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Int -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr GObject -> Int -> IO Bool
            action :: Ptr GObject -> Ptr GObject -> Int -> IO ConnectAfter
    action Ptr GObject
    _ Ptr GObject
    obj1 Int
    enum2 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> b -> IO ConnectAfter
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') (Int -> b
    forall a. Enum a => Int -> a
    toEnum Int
    enum2)

    connect_BOXED_GLIBSTRING__NONE ::
      (Glib.GlibString b', GObjectClass obj) => SignalName ->
      (Ptr a' -> IO a) ->
      ConnectAfter -> obj ->
      (a -> b' -> IO ()) ->
      IO (ConnectId obj)
    connect_BOXED_GLIBSTRING__NONE :: forall b' obj a' a.
    (GlibString b', GObjectClass obj) =>
    SignalName
    -> (Ptr a' -> IO a)
    -> ConnectAfter
    -> obj
    -> (a -> b' -> IO ())
    -> IO (ConnectId obj)
    connect_BOXED_GLIBSTRING__NONE SignalName
    signal Ptr a' -> IO a
    boxedPre1 ConnectAfter
    after obj
    obj a -> b' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> CString -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> CString -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> CString -> IO ()
            action :: Ptr GObject -> Ptr () -> CString -> IO ()
    action Ptr GObject
    _ Ptr ()
    box1 CString
    str2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              CString -> IO b'
    forall s. GlibString s => CString -> IO s
    peekUTFString CString
    str2 IO b' -> (b' -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b'
    str2' ->
              Ptr a' -> IO a
    boxedPre1 (Ptr () -> Ptr a'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box1) IO a -> (a -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a
    box1' ->
              a -> b' -> IO ()
    user a
    box1' b'
    str2'

    connect_OBJECT_INT__NONE ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> Int -> IO ()) ->
      IO (ConnectId obj)
    connect_OBJECT_INT__NONE :: forall a' obj.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> Int -> IO ())
    -> IO (ConnectId obj)
    connect_OBJECT_INT__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> Int -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> Int -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Int -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> Int -> IO ()
            action :: Ptr GObject -> Ptr GObject -> Int -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 Int
    int2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> Int -> IO ()
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') Int
    int2

    connect_ENUM_BOOL__BOOL ::
      (Enum a, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a -> Bool -> IO Bool) ->
      IO (ConnectId obj)
    connect_ENUM_BOOL__BOOL :: forall a obj.
    (Enum a, GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a -> ConnectAfter -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_ENUM_BOOL__BOOL SignalName
    signal ConnectAfter
    after obj
    obj a -> ConnectAfter -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> ConnectAfter -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> ConnectAfter -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Int -> Bool -> IO Bool
            action :: Ptr GObject -> Int -> ConnectAfter -> IO ConnectAfter
    action Ptr GObject
    _ Int
    enum1 ConnectAfter
    bool2 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              a -> ConnectAfter -> IO ConnectAfter
    user (Int -> a
    forall a. Enum a => Int -> a
    toEnum Int
    enum1) ConnectAfter
    bool2

    connect_BOXED_INT__NONE ::
      GObjectClass obj => SignalName ->
      (Ptr a' -> IO a) ->
      ConnectAfter -> obj ->
      (a -> Int -> IO ()) ->
      IO (ConnectId obj)
    connect_BOXED_INT__NONE :: forall obj a' a.
    GObjectClass obj =>
    SignalName
    -> (Ptr a' -> IO a)
    -> ConnectAfter
    -> obj
    -> (a -> Int -> IO ())
    -> IO (ConnectId obj)
    connect_BOXED_INT__NONE SignalName
    signal Ptr a' -> IO a
    boxedPre1 ConnectAfter
    after obj
    obj a -> Int -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr () -> Int -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr () -> Int -> IO ()
    action
      where action :: Ptr GObject -> Ptr () -> Int -> IO ()
            action :: Ptr GObject -> Ptr () -> Int -> IO ()
    action Ptr GObject
    _ Ptr ()
    box1 Int
    int2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              Ptr a' -> IO a
    boxedPre1 (Ptr () -> Ptr a'
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    box1) IO a -> (a -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a
    box1' ->
              a -> Int -> IO ()
    user a
    box1' Int
    int2

    connect_OBJECT_INT_INT_BOOL_OBJECT__BOOL ::
      (GObjectClass a', GObjectClass e', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> Int -> Int -> Bool -> e' -> IO Bool) ->
      IO (ConnectId obj)
    connect_OBJECT_INT_INT_BOOL_OBJECT__BOOL :: forall a' e' obj.
    (GObjectClass a', GObjectClass e', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> Int -> Int -> ConnectAfter -> e' -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_OBJECT_INT_INT_BOOL_OBJECT__BOOL SignalName
    signal ConnectAfter
    after obj
    obj a' -> Int -> Int -> ConnectAfter -> e' -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject
        -> Ptr GObject
        -> Int
        -> Int
        -> ConnectAfter
        -> Ptr GObject
        -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject
    -> Ptr GObject
    -> Int
    -> Int
    -> ConnectAfter
    -> Ptr GObject
    -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr GObject -> Int -> Int -> Bool -> Ptr GObject -> IO Bool
            action :: Ptr GObject
    -> Ptr GObject
    -> Int
    -> Int
    -> ConnectAfter
    -> Ptr GObject
    -> IO ConnectAfter
    action Ptr GObject
    _ Ptr GObject
    obj1 Int
    int2 Int
    int3 ConnectAfter
    bool4 Ptr GObject
    obj5 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj5) IO GObject -> (GObject -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj5' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnrefFromMainloop) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> Int -> Int -> ConnectAfter -> e' -> IO ConnectAfter
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') Int
    int2 Int
    int3 ConnectAfter
    bool4 (GObject -> e'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj5')

    connect_INT_GLIBSTRING_INT__NONE ::
      (Glib.GlibString b', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (Int -> b' -> Int -> IO ()) ->
      IO (ConnectId obj)
    connect_INT_GLIBSTRING_INT__NONE :: forall b' obj.
    (GlibString b', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (Int -> b' -> Int -> IO ())
    -> IO (ConnectId obj)
    connect_INT_GLIBSTRING_INT__NONE SignalName
    signal ConnectAfter
    after obj
    obj Int -> b' -> Int -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> CString -> Int -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> CString -> Int -> IO ()
    action
      where action :: Ptr GObject -> Int -> CString -> Int -> IO ()
            action :: Ptr GObject -> Int -> CString -> Int -> IO ()
    action Ptr GObject
    _ Int
    int1 CString
    str2 Int
    int3 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              CString -> IO b'
    forall s. GlibString s => CString -> IO s
    peekUTFString CString
    str2 IO b' -> (b' -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \b'
    str2' ->
              Int -> b' -> Int -> IO ()
    user Int
    int1 b'
    str2' Int
    int3

    connect_GLIBSTRING_INT_ENUM_INT__NONE ::
      (Glib.GlibString a', Enum c, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> Int -> c -> Int -> IO ()) ->
      IO (ConnectId obj)
    connect_GLIBSTRING_INT_ENUM_INT__NONE :: forall a' c obj.
    (GlibString a', Enum c, GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> Int -> c -> Int -> IO ())
    -> IO (ConnectId obj)
    connect_GLIBSTRING_INT_ENUM_INT__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> Int -> c -> Int -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> CString -> Int -> Int -> Int -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> CString -> Int -> Int -> Int -> IO ()
    action
      where action :: Ptr GObject -> CString -> Int -> Int -> Int -> IO ()
            action :: Ptr GObject -> CString -> Int -> Int -> Int -> IO ()
    action Ptr GObject
    _ CString
    str1 Int
    int2 Int
    enum3 Int
    int4 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              CString -> IO a'
    forall s. GlibString s => CString -> IO s
    peekUTFString CString
    str1 IO a' -> (a' -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \a'
    str1' ->
              a' -> Int -> c -> Int -> IO ()
    user a'
    str1' Int
    int2 (Int -> c
    forall a. Enum a => Int -> a
    toEnum Int
    enum3) Int
    int4

    connect_OBJECT__BOOL ::
      (GObjectClass a', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> IO Bool) ->
      IO (ConnectId obj)
    connect_OBJECT__BOOL :: forall a' obj.
    (GObjectClass a', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_OBJECT__BOOL SignalName
    signal ConnectAfter
    after obj
    obj a' -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr GObject -> IO Bool
            action :: Ptr GObject -> Ptr GObject -> IO ConnectAfter
    action Ptr GObject
    _ Ptr GObject
    obj1 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnref) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> IO ConnectAfter
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1')

    connect_OBJECT_INT_OBJECT__NONE ::
      (GObjectClass a', GObjectClass c', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> Int -> c' -> IO ()) ->
      IO (ConnectId obj)
    connect_OBJECT_INT_OBJECT__NONE :: forall a' c' obj.
    (GObjectClass a', GObjectClass c', GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> Int -> c' -> IO ())
    -> IO (ConnectId obj)
    connect_OBJECT_INT_OBJECT__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> Int -> c' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Ptr GObject -> Int -> Ptr GObject -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Int -> Ptr GObject -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> Int -> Ptr GObject -> IO ()
            action :: Ptr GObject -> Ptr GObject -> Int -> Ptr GObject -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 Int
    int2 Ptr GObject
    obj3 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnref) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj3) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj3' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnref) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> Int -> c' -> IO ()
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') Int
    int2 (GObject -> c'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj3')

    connect_OBJECT_OBJECT_OBJECT__NONE ::
      (GObjectClass a', GObjectClass b', GObjectClass c', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> b' -> c' -> IO ()) ->
      IO (ConnectId obj)
    connect_OBJECT_OBJECT_OBJECT__NONE :: forall a' b' c' obj.
    (GObjectClass a', GObjectClass b', GObjectClass c',
     GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> b' -> c' -> IO ())
    -> IO (ConnectId obj)
    connect_OBJECT_OBJECT_OBJECT__NONE SignalName
    signal ConnectAfter
    after obj
    obj a' -> b' -> c' -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject
        -> Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ()
    action
      where action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ()
            action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ()
    action Ptr GObject
    _ Ptr GObject
    obj1 Ptr GObject
    obj2 Ptr GObject
    obj3 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnref) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj3) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj3' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnref) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj2) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj2' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnref) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ()) -> IO ()
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> b' -> c' -> IO ()
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') (GObject -> b'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj2') (GObject -> c'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj3')

    connect_OBJECT_OBJECT_OBJECT__BOOL ::
      (GObjectClass a', GObjectClass b', GObjectClass c', GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a' -> b' -> c' -> IO Bool) ->
      IO (ConnectId obj)
    connect_OBJECT_OBJECT_OBJECT__BOOL :: forall a' b' c' obj.
    (GObjectClass a', GObjectClass b', GObjectClass c',
     GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a' -> b' -> c' -> IO ConnectAfter)
    -> IO (ConnectId obj)
    connect_OBJECT_OBJECT_OBJECT__BOOL SignalName
    signal ConnectAfter
    after obj
    obj a' -> b' -> c' -> IO ConnectAfter
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject
        -> Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ConnectAfter)
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject
    -> Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ConnectAfter
    action
      where action :: Ptr GObject -> Ptr GObject -> Ptr GObject -> Ptr GObject -> IO Bool
            action :: Ptr GObject
    -> Ptr GObject -> Ptr GObject -> Ptr GObject -> IO ConnectAfter
    action Ptr GObject
    _ Ptr GObject
    obj1 Ptr GObject
    obj2 Ptr GObject
    obj3 =
              IO ConnectAfter -> IO ConnectAfter
    forall a. IO a -> IO a
    failOnGError (IO ConnectAfter -> IO ConnectAfter)
    -> IO ConnectAfter -> IO ConnectAfter
    forall a b. (a -> b) -> a -> b
    $
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnref) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj3) IO GObject -> (GObject -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj3' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnref) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj2) IO GObject -> (GObject -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj2' ->
              (ForeignPtr GObject -> GObject, FinalizerPtr GObject)
    -> IO (Ptr GObject) -> IO GObject
    forall obj.
    GObjectClass obj =>
    (ForeignPtr obj -> obj, FinalizerPtr obj) -> IO (Ptr obj) -> IO obj
    makeNewGObject (ForeignPtr GObject -> GObject
    GObject, FinalizerPtr GObject
    forall a. FinalizerPtr a
    objectUnref) (Ptr GObject -> IO (Ptr GObject)
    forall a. a -> IO a
    forall (m :: * -> *) a. Monad m => a -> m a
    return Ptr GObject
    obj1) IO GObject -> (GObject -> IO ConnectAfter) -> IO ConnectAfter
    forall a b. IO a -> (a -> IO b) -> IO b
    forall (m :: * -> *) a b. Monad m => m a -> (a -> m b) -> m b
    >>= \GObject
    obj1' ->
              a' -> b' -> c' -> IO ConnectAfter
    user (GObject -> a'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj1') (GObject -> b'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj2') (GObject -> c'
    forall o. GObjectClass o => GObject -> o
    unsafeCastGObject GObject
    obj3')

    connect_ENUM_PTR__NONE ::
      (Enum a, GObjectClass obj) => SignalName ->
      ConnectAfter -> obj ->
      (a -> Ptr b -> IO ()) ->
      IO (ConnectId obj)
    connect_ENUM_PTR__NONE :: forall a obj b.
    (Enum a, GObjectClass obj) =>
    SignalName
    -> ConnectAfter
    -> obj
    -> (a -> Ptr b -> IO ())
    -> IO (ConnectId obj)
    connect_ENUM_PTR__NONE SignalName
    signal ConnectAfter
    after obj
    obj a -> Ptr b -> IO ()
    user =
      SignalName
    -> ConnectAfter
    -> obj
    -> (Ptr GObject -> Int -> Ptr () -> IO ())
    -> IO (ConnectId obj)
    forall obj handler.
    GObjectClass obj =>
    SignalName -> ConnectAfter -> obj -> handler -> IO (ConnectId obj)
    connectGeneric SignalName
    signal ConnectAfter
    after obj
    obj Ptr GObject -> Int -> Ptr () -> IO ()
    action
      where action :: Ptr GObject -> Int -> Ptr () -> IO ()
            action :: Ptr GObject -> Int -> Ptr () -> IO ()
    action Ptr GObject
    _ Int
    enum1 Ptr ()
    ptr2 =
              IO () -> IO ()
    forall a. IO a -> IO a
    failOnGError (IO () -> IO ()) -> IO () -> IO ()
    forall a b. (a -> b) -> a -> b
    $
              a -> Ptr b -> IO ()
    user (Int -> a
    forall a. Enum a => Int -> a
    toEnum Int
    enum1) (Ptr () -> Ptr b
    forall a b. Ptr a -> Ptr b
    castPtr Ptr ()
    ptr2)