module GdkEvent: sig .. end
val unsafe_copy : Gpointer.boxed -> [< Gdk.Tags.event_type ] Gdk.event
val copy : ([< Gdk.Tags.event_type ] as 'a) Gdk.event -> 'a Gdk.event
val get_type : 'a Gdk.event -> 'a
val get_window : 'a Gdk.event -> Gdk.window
val get_send_event : 'a Gdk.event -> bool
type timed = [ `BUTTON_PRESS
       | `BUTTON_RELEASE
       | `DRAG_ENTER
       | `DRAG_LEAVE
       | `DRAG_MOTION
       | `DRAG_STATUS
       | `DROP_FINISHED
       | `DROP_START
       | `ENTER_NOTIFY
       | `KEY_PRESS
       | `KEY_RELEASE
       | `LEAVE_NOTIFY
       | `MOTION_NOTIFY
       | `PROPERTY_NOTIFY
       | `PROXIMITY_IN
       | `PROXIMITY_OUT
       | `SCROLL
       | `SELECTION_CLEAR
       | `SELECTION_NOTIFY
       | `SELECTION_REQUEST
       | `THREE_BUTTON_PRESS
       | `TWO_BUTTON_PRESS ] 
val get_time : [< timed ] Gdk.event -> int32
val create : ([< Gdk.Tags.event_type ] as 'a) -> 'a Gdk.event
val set_window : 'a Gdk.event -> Gdk.window -> unit
type any = Gdk.Tags.event_type Gdk.event 
val unsafe_cast : [< Gdk.Tags.event_type ] Gdk.event -> [< Gdk.Tags.event_type ] Gdk.event
val cast : kind:([< Gdk.Tags.event_type ] as 'a) list -> any -> 'a Gdk.event
module Expose: sig .. end
module Visibility: sig .. end
module Motion: sig .. end
module Button: sig .. end
module Scroll: sig .. end
module Key: sig .. end
module Crossing: sig .. end
module Focus: sig .. end
module Configure: sig .. end
module Property: sig .. end
module Selection: sig .. end
module Proximity: sig .. end
module Client: sig .. end
module Setting: sig .. end
module WindowState: sig .. end