sig
  type device_number = int
  external connect_sig_key_down :
    CL_InputDevice.t -> dev_num:CL_InputEventQueue.device_number -> unit
    = "caml_CL_InputDevice_sig_key_down_connect"
  external connect_sig_key_up :
    CL_InputDevice.t -> dev_num:CL_InputEventQueue.device_number -> unit
    = "caml_CL_InputDevice_sig_key_up_connect"
  external connect_sig_pointer_move :
    CL_InputDevice.t -> dev_num:CL_InputEventQueue.device_number -> unit
    = "caml_CL_InputDevice_sig_pointer_move_connect"
  external connect_sig_axis_move :
    CL_InputDevice.t -> dev_num:CL_InputEventQueue.device_number -> unit
    = "caml_CL_InputDevice_sig_axis_move_connect"
  external disconnect_sig_key_down : CL_InputDevice.t -> unit
    = "caml_CL_InputDevice_sig_key_down_disconnect"
  external disconnect_sig_key_up : CL_InputDevice.t -> unit
    = "caml_CL_InputDevice_sig_key_up_disconnect"
  external disconnect_sig_pointer_move : CL_InputDevice.t -> unit
    = "caml_CL_InputDevice_sig_pointer_move_disconnect"
  external disconnect_sig_axis_move : CL_InputDevice.t -> unit
    = "caml_CL_InputDevice_sig_axis_move_disconnect"
  type event =
      CL_InputEvent.t * CL_InputEventQueue.device_number *
      CL_InputDevice.kind
  val get_input_events : unit -> CL_InputEventQueue.event list
end