sig
  type keys = Stdlib.Set.Make(Stdlib.Uchar).t
  type config = {
    width : int;
    height : int;
    display_width : int;
    display_height : int;
    mouse_x : int;
    mouse_y : int;
    pmouse_x : int;
    pmouse_y : int;
    mouse_scroll : int;
    mouse_pressed : bool;
    mouse_button : [ `Center | `Left | `Right ];
    key : char;
    keys : Config.keys;
    key_unicode : Stdlib.Uchar.t;
    key_pressed : bool;
    frame_count : int;
    frame_rate : float;
  }
  val check_key : Config.config -> char -> bool
  val check_key_uchar : Config.config -> Stdlib.Uchar.t -> bool
  val get_keys : Config.config -> char list
  val get_keys_uchar : Config.config -> Stdlib.Uchar.t list
  exception Exit
end