sig
  val marshal :
    (Gtk.widget Gtk.obj -> 'a) ->
    '-> [> `OBJECT of 'Gobject.obj option ] list -> 'a
  val marshal_opt :
    (Gtk.widget Gtk.obj option -> 'a) ->
    '-> [> `OBJECT of 'Gobject.obj option ] list -> 'a
  module Event :
    sig
      val marshal :
        ([< Gdk.Tags.event_type ] Gdk.event -> bool) ->
        Gobject.Closure.argv -> unit
      val any :
        ([> `widget ], Gdk.Tags.event_type Gdk.event -> bool) GtkSignal.t
      val button_press :
        ([> `widget ], GdkEvent.Button.t -> bool) GtkSignal.t
      val button_release :
        ([> `widget ], GdkEvent.Button.t -> bool) GtkSignal.t
      val motion_notify :
        ([> `widget ], GdkEvent.Motion.t -> bool) GtkSignal.t
      val delete : ([> `widget ], [ `DELETE ] Gdk.event -> bool) GtkSignal.t
      val destroy :
        ([> `widget ], [ `DESTROY ] Gdk.event -> bool) GtkSignal.t
      val expose : ([> `widget ], GdkEvent.Expose.t -> bool) GtkSignal.t
      val key_press : ([> `widget ], GdkEvent.Key.t -> bool) GtkSignal.t
      val key_release : ([> `widget ], GdkEvent.Key.t -> bool) GtkSignal.t
      val enter_notify :
        ([> `widget ], GdkEvent.Crossing.t -> bool) GtkSignal.t
      val leave_notify :
        ([> `widget ], GdkEvent.Crossing.t -> bool) GtkSignal.t
      val configure :
        ([> `widget ], GdkEvent.Configure.t -> bool) GtkSignal.t
      val focus_in : ([> `widget ], GdkEvent.Focus.t -> bool) GtkSignal.t
      val focus_out : ([> `widget ], GdkEvent.Focus.t -> bool) GtkSignal.t
      val map : ([> `widget ], [ `MAP ] Gdk.event -> bool) GtkSignal.t
      val unmap : ([> `widget ], [ `UNMAP ] Gdk.event -> bool) GtkSignal.t
      val property_notify :
        ([> `widget ], GdkEvent.Property.t -> bool) GtkSignal.t
      val scroll : ([> `widget ], GdkEvent.Scroll.t -> bool) GtkSignal.t
      val selection_clear :
        ([> `widget ], GdkEvent.Selection.t -> bool) GtkSignal.t
      val selection_request :
        ([> `widget ], GdkEvent.Selection.t -> bool) GtkSignal.t
      val selection_notify :
        ([> `widget ], GdkEvent.Selection.t -> bool) GtkSignal.t
      val proximity_in :
        ([> `widget ], GdkEvent.Proximity.t -> bool) GtkSignal.t
      val proximity_out :
        ([> `widget ], GdkEvent.Proximity.t -> bool) GtkSignal.t
      val client : ([> `widget ], GdkEvent.Client.t -> bool) GtkSignal.t
      val visibility_notify :
        ([> `widget ], GdkEvent.Visibility.t -> bool) GtkSignal.t
      val window_state :
        ([> `widget ], GdkEvent.WindowState.t -> bool) GtkSignal.t
    end
end