sig
  type color
  type colormap
  type visual
  type screen = [ `gdkscreen ] Gobject.obj
  type region
  type gc
  type window = [ `drawable | `gdkwindow ] Gobject.obj
  type pixmap = [ `drawable | `gdkpixmap ] Gobject.obj
  type bitmap = [ `drawable | `gdkbitmap | `gdkpixmap ] Gobject.obj
  type font
  type image = [ `gdkimage ] Gobject.obj
  type atom
  type keysym = int
  type +'a event
  type drag_context = [ `dragcontext ] Gobject.obj
  type cursor
  type xid = int32
  type device
  type display
  exception Error of string
  module Tags :
    sig
      type event_type =
          [ `BUTTON_PRESS
          | `BUTTON_RELEASE
          | `CLIENT_EVENT
          | `CONFIGURE
          | `DELETE
          | `DESTROY
          | `DRAG_ENTER
          | `DRAG_LEAVE
          | `DRAG_MOTION
          | `DRAG_STATUS
          | `DROP_FINISHED
          | `DROP_START
          | `ENTER_NOTIFY
          | `EXPOSE
          | `FOCUS_CHANGE
          | `KEY_PRESS
          | `KEY_RELEASE
          | `LEAVE_NOTIFY
          | `MAP
          | `MOTION_NOTIFY
          | `NOTHING
          | `NO_EXPOSE
          | `PROPERTY_NOTIFY
          | `PROXIMITY_IN
          | `PROXIMITY_OUT
          | `SCROLL
          | `SELECTION_CLEAR
          | `SELECTION_NOTIFY
          | `SELECTION_REQUEST
          | `SETTING
          | `THREE_BUTTON_PRESS
          | `TWO_BUTTON_PRESS
          | `UNMAP
          | `VISIBILITY_NOTIFY
          | `WINDOW_STATE ]
      type event_mask =
          [ `ALL_EVENTS
          | `BUTTON1_MOTION
          | `BUTTON2_MOTION
          | `BUTTON3_MOTION
          | `BUTTON_MOTION
          | `BUTTON_PRESS
          | `BUTTON_RELEASE
          | `ENTER_NOTIFY
          | `EXPOSURE
          | `FOCUS_CHANGE
          | `KEY_PRESS
          | `KEY_RELEASE
          | `LEAVE_NOTIFY
          | `POINTER_MOTION
          | `POINTER_MOTION_HINT
          | `PROPERTY_CHANGE
          | `PROXIMITY_IN
          | `PROXIMITY_OUT
          | `SCROLL
          | `STRUCTURE
          | `SUBSTRUCTURE
          | `VISIBILITY_NOTIFY ]
      type extension_mode = [ `ALL | `CURSOR | `NONE ]
      type visibility_state = [ `FULLY_OBSCURED | `PARTIAL | `UNOBSCURED ]
      type input_source = [ `CURSOR | `ERASER | `MOUSE | `PEN ]
      type scroll_direction = [ `DOWN | `LEFT | `RIGHT | `UP ]
      type notify_type =
          [ `ANCESTOR
          | `INFERIOR
          | `NONLINEAR
          | `NONLINEAR_VIRTUAL
          | `UNKNOWN
          | `VIRTUAL ]
      type crossing_mode = [ `GRAB | `NORMAL | `UNGRAB ]
      type setting_action = [ `CHANGED | `DELETED | `NEW ]
      type window_state = [ `ICONIFIED | `MAXIMIZED | `STICKY | `WITHDRAWN ]
      type modifier =
          [ `BUTTON1
          | `BUTTON2
          | `BUTTON3
          | `BUTTON4
          | `BUTTON5
          | `CONTROL
          | `LOCK
          | `MOD1
          | `MOD2
          | `MOD3
          | `MOD4
          | `MOD5
          | `SHIFT ]
      type drag_action =
          [ `ASK | `COPY | `DEFAULT | `LINK | `MOVE | `PRIVATE ]
      type rgb_dither = [ `MAX | `NONE | `NORMAL ]
      type property_state = [ `DELETE | `NEW_VALUE ]
      type property_mode = [ `APPEND | `PRE;| `PRE;