sig
  type t = [ `KEY_PRESS | `KEY_RELEASE ] Gdk.event
  val cast : GdkEvent.any -> GdkEvent.Key.t
  val time : [< GdkEvent.timed ] Gdk.event -> int32
  external state : GdkEvent.Key.t -> int = "ml_GdkEventKey_state"
  external keyval : GdkEvent.Key.t -> Gdk.keysym = "ml_GdkEventKey_keyval"
  external string : GdkEvent.Key.t -> string = "ml_GdkEventKey_string"
  external hardware_keycode : GdkEvent.Key.t -> int
    = "ml_GdkEventKey_hardware_keycode"
  external group : GdkEvent.Key.t -> int = "ml_GdkEventKey_group"
  val state : GdkEvent.Key.t -> Gdk.Tags.modifier list
end