sig
  val enum :
    Tsdl.Sdl.scancode ->
    [ `A
    | `Ac_back
    | `Ac_bookmarks
    | `Ac_forward
    | `Ac_home
    | `Ac_refresh
    | `Ac_search
    | `Ac_stop
    | `Again
    | `Alterase
    | `Apostrophe
    | `App1
    | `App2
    | `Application
    | `Audiomute
    | `Audionext
    | `Audioplay
    | `Audioprev
    | `Audiostop
    | `B
    | `Backslash
    | `Backspace
    | `Brightnessdown
    | `Brightnessup
    | `C
    | `Calculator
    | `Cancel
    | `Capslock
    | `Clear
    | `Clearagain
    | `Comma
    | `Computer
    | `Copy
    | `Crsel
    | `Currencysubunit
    | `Currencyunit
    | `Cut
    | `D
    | `Decimalseparator
    | `Delete
    | `Displayswitch
    | `Down
    | `E
    | `Eject
    | `End
    | `Equals
    | `Escape
    | `Execute
    | `Exsel
    | `F
    | `F1
    | `F10
    | `F11
    | `F12
    | `F13
    | `F14
    | `F15
    | `F16
    | `F17
    | `F18
    | `F19
    | `F2
    | `F20
    | `F21
    | `F22
    | `F23
    | `F24
    | `F3
    | `F4
    | `F5
    | `F6
    | `F7
    | `F8
    | `F9
    | `Find
    | `G
    | `Grave
    | `H
    | `Help
    | `Home
    | `I
    | `Insert
    | `International1
    | `International2
    | `International3
    | `International4
    | `International5
    | `International6
    | `International7
    | `International8
    | `International9
    | `J
    | `K
    | `K0
    | `K1
    | `K2
    | `K3
    | `K4
    | `K5
    | `K6
    | `K7
    | `K8
    | `K9
    | `Kbdillumdown
    | `Kbdillumtoggle
    | `Kbdillumup
    | `Kp_0
    | `Kp_00
    | `Kp_000
    | `Kp_1
    | `Kp_2
    | `Kp_3
    | `Kp_4
    | `Kp_5
    | `Kp_6
    | `Kp_7
    | `Kp_8
    | `Kp_9
    | `Kp_a
    | `Kp_ampersand
    | `Kp_at
    | `Kp_b
    | `Kp_backspace
    | `Kp_binary
    | `Kp_c
    | `Kp_clear
    | `Kp_clearentry
    | `Kp_colon
    | `Kp_comma
    | `Kp_d
    | `Kp_dblampersand
    | `Kp_dblverticalbar
    | `Kp_decimal
    | `Kp_divide
    | `Kp_e
    | `Kp_enter
    | `Kp_equals
    | `Kp_equalsas400
    | `Kp_exclam
    | `Kp_f
    | `Kp_greater
    | `Kp_hash
    | `Kp_hexadecimal
    | `Kp_leftbrace
    | `Kp_leftparen
    | `Kp_less
    | `Kp_memadd
    | `Kp_memclear
    | `Kp_memdivide
    | `Kp_memmultiply
    | `Kp_memrecall
    | `Kp_memstore
    | `Kp_memsubtract
    | `Kp_minus
    | `Kp_multiply
    | `Kp_octal
    | `Kp_percent
    | `Kp_period
    | `Kp_plus
    | `Kp_plusminus
    | `Kp_power
    | `Kp_rightbrace
    | `Kp_rightparen
    | `Kp_space
    | `Kp_tab
    | `Kp_verticalbar
    | `Kp_xor
    | `L
    | `Lalt
    | `Lang1
    | `Lang2
    | `Lang3
    | `Lang4
    | `Lang5
    | `Lang6
    | `Lang7
    | `Lang8
    | `Lang9
    | `Lctrl
    | `Left
    | `Leftbracket
    | `Lgui
    | `Lshift
    | `M
    | `Mail
    | `Mediaselect
    | `Menu
    | `Minus
    | `Mode
    | `Mute
    | `N
    | `Nonusbackslash
    | `Nonushash
    | `Numlockclear
    | `O
    | `Oper
    | `Out
    | `P
    | `Pagedown
    | `Pageup
    | `Paste
    | `Pause
    | `Period
    | `Power
    | `Printscreen
    | `Prior
    | `Q
    | `R
    | `Ralt
    | `Rctrl
    | `Return
    | `Return2
    | `Rgui
    | `Right
    | `Rightbracket
    | `Rshift
    | `S
    | `Scrolllock
    | `Select
    | `Semicolon
    | `Separator
    | `Slash
    | `Sleep
    | `Space
    | `Stop
    | `Sysreq
    | `T
    | `Tab
    | `Thousandsseparator
    | `U
    | `Undo
    | `Unknown
    | `Up
    | `V
    | `Volumedown
    | `Volumeup
    | `W
    | `Www
    | `X
    | `Y
    | `Z ]
  val num_scancodes : int
  val unknown : Tsdl.Sdl.scancode
  val a : Tsdl.Sdl.scancode
  val b : Tsdl.Sdl.scancode
  val c : Tsdl.Sdl.scancode
  val d : Tsdl.Sdl.scancode
  val e : Tsdl.Sdl.scancode
  val f : Tsdl.Sdl.scancode
  val g : Tsdl.Sdl.scancode
  val h : Tsdl.Sdl.scancode
  val i : Tsdl.Sdl.scancode
  val j : Tsdl.Sdl.scancode
  val k : Tsdl.Sdl.scancode
  val l : Tsdl.Sdl.scancode
  val m : Tsdl.Sdl.scancode
  val n : Tsdl.Sdl.scancode
  val o : Tsdl.Sdl.scancode
  val p : Tsdl.Sdl.scancode
  val q : Tsdl.Sdl.scancode
  val r : Tsdl.Sdl.scancode
  val s : Tsdl.Sdl.scancode
  val t : Tsdl.Sdl.scancode
  val u : Tsdl.Sdl.scancode
  val v : Tsdl.Sdl.scancode
  val w : Tsdl.Sdl.scancode
  val x : Tsdl.Sdl.scancode
  val y : Tsdl.Sdl.scancode
  val z : Tsdl.Sdl.scancode
  val k1 : Tsdl.Sdl.scancode
  val k2 : Tsdl.Sdl.scancode
  val k3 : Tsdl.Sdl.scancode
  val k4 : Tsdl.Sdl.scancode
  val k5 : Tsdl.Sdl.scancode
  val k6 : Tsdl.Sdl.scancode
  val k7 : Tsdl.Sdl.scancode
  val k8 : Tsdl.Sdl.scancode
  val k9 : Tsdl.Sdl.scancode
  val k0 : Tsdl.Sdl.scancode
  val return : Tsdl.Sdl.scancode
  val escape : Tsdl.Sdl.scancode
  val backspace : Tsdl.Sdl.scancode
  val tab : Tsdl.Sdl.scancode
  val space : Tsdl.Sdl.scancode
  val minus : Tsdl.Sdl.scancode
  val equals : Tsdl.Sdl.scancode
  val leftbracket : Tsdl.Sdl.scancode
  val rightbracket : Tsdl.Sdl.scancode
  val backslash : Tsdl.Sdl.scancode
  val nonushash : Tsdl.Sdl.scancode
  val semicolon : Tsdl.Sdl.scancode
  val apostrophe : Tsdl.Sdl.scancode
  val grave : Tsdl.Sdl.scancode
  val comma : Tsdl.Sdl.scancode
  val period : Tsdl.Sdl.scancode
  val slash : Tsdl.Sdl.scancode
  val capslock : Tsdl.Sdl.scancode
  val f1 : Tsdl.Sdl.scancode
  val f2 : Tsdl.Sdl.scancode
  val f3 : Tsdl.Sdl.scancode
  val f4 : Tsdl.Sdl.scancode
  val f5 : Tsdl.Sdl.scancode
  val f6 : Tsdl.Sdl.scancode
  val f7 : Tsdl.Sdl.scancode
  val f8 : Tsdl.Sdl.scancode
  val f9 : Tsdl.Sdl.scancode
  val f10 : Tsdl.Sdl.scancode
  val f11 : Tsdl.Sdl.scancode
  val f12 : Tsdl.Sdl.scancode
  val printscreen : Tsdl.Sdl.scancode
  val scrolllock : Tsdl.Sdl.scancode
  val pause : Tsdl.Sdl.scancode
  val insert : Tsdl.Sdl.scancode
  val home : Tsdl.Sdl.scancode
  val pageup : Tsdl.Sdl.scancode
  val delete : Tsdl.Sdl.scancode
  val kend : Tsdl.Sdl.scancode
  val pagedown : Tsdl.Sdl.scancode
  val right : Tsdl.Sdl.scancode
  val left : Tsdl.Sdl.scancode
  val down : Tsdl.Sdl.scancode
  val up : Tsdl.Sdl.scancode
  val numlockclear : Tsdl.Sdl.scancode
  val kp_divide : Tsdl.Sdl.scancode
  val kp_multiply : Tsdl.Sdl.scancode
  val kp_minus : Tsdl.Sdl.scancode
  val kp_plus : Tsdl.Sdl.scancode
  val kp_enter : Tsdl.Sdl.scancode
  val kp_1 : Tsdl.Sdl.scancode
  val kp_2 : Tsdl.Sdl.scancode
  val kp_3 : Tsdl.Sdl.scancode
  val kp_4 : Tsdl.Sdl.scancode
  val kp_5 : Tsdl.Sdl.scancode
  val kp_6 : Tsdl.Sdl.scancode
  val kp_7 : Tsdl.Sdl.scancode
  val kp_8 : Tsdl.Sdl.scancode
  val kp_9 : Tsdl.Sdl.scancode
  val kp_0 : Tsdl.Sdl.scancode
  val kp_period : Tsdl.Sdl.scancode
  val nonusbackslash : Tsdl.Sdl.scancode
  val application : Tsdl.Sdl.scancode
  val kp_equals : Tsdl.Sdl.scancode
  val f13 : Tsdl.Sdl.scancode
  val f14 : Tsdl.Sdl.scancode
  val f15 : Tsdl.Sdl.scancode
  val f16 : Tsdl.Sdl.scancode
  val f17 : Tsdl.Sdl.scancode
  val f18 : Tsdl.Sdl.scancode
  val f19 : Tsdl.Sdl.scancode
  val f20 : Tsdl.Sdl.scancode
  val f21 : Tsdl.Sdl.scancode
  val f22 : Tsdl.Sdl.scancode
  val f23 : Tsdl.Sdl.scancode
  val f24 : Tsdl.Sdl.scancode
  val execute : Tsdl.Sdl.scancode
  val help : Tsdl.Sdl.scancode
  val menu : Tsdl.Sdl.scancode
  val select : Tsdl.Sdl.scancode
  val stop : Tsdl.Sdl.scancode
  val again : Tsdl.Sdl.scancode
  val undo : Tsdl.Sdl.scancode
  val cut : Tsdl.Sdl.scancode
  val copy : Tsdl.Sdl.scancode
  val paste : Tsdl.Sdl.scancode
  val find : Tsdl.Sdl.scancode
  val mute : Tsdl.Sdl.scancode
  val volumeup : Tsdl.Sdl.scancode
  val volumedown : Tsdl.Sdl.scancode
  val kp_comma : Tsdl.Sdl.scancode
  val kp_equalsas400 : Tsdl.Sdl.scancode
  val international1 : Tsdl.Sdl.scancode
  val international2 : Tsdl.Sdl.scancode
  val international3 : Tsdl.Sdl.scancode
  val international4 : Tsdl.Sdl.scancode
  val international5 : Tsdl.Sdl.scancode
  val international6 : Tsdl.Sdl.scancode
  val international7 : Tsdl.Sdl.scancode
  val international8 : Tsdl.Sdl.scancode
  val international9 : Tsdl.Sdl.scancode
  val lang1 : Tsdl.Sdl.scancode
  val lang2 : Tsdl.Sdl.scancode
  val lang3 : Tsdl.Sdl.scancode
  val lang4 : Tsdl.Sdl.scancode
  val lang5 : Tsdl.Sdl.scancode
  val lang6 : Tsdl.Sdl.scancode
  val lang7 : Tsdl.Sdl.scancode
  val lang8 : Tsdl.Sdl.scancode
  val lang9 : Tsdl.Sdl.scancode
  val alterase : Tsdl.Sdl.scancode
  val sysreq : Tsdl.Sdl.scancode
  val cancel : Tsdl.Sdl.scancode
  val clear : Tsdl.Sdl.scancode
  val prior : Tsdl.Sdl.scancode
  val return2 : Tsdl.Sdl.scancode
  val separator : Tsdl.Sdl.scancode
  val out : Tsdl.Sdl.scancode
  val oper : Tsdl.Sdl.scancode
  val clearagain : Tsdl.Sdl.scancode
  val crsel : Tsdl.Sdl.scancode
  val exsel : Tsdl.Sdl.scancode
  val kp_00 : Tsdl.Sdl.scancode
  val kp_000 : Tsdl.Sdl.scancode
  val thousandsseparator : Tsdl.Sdl.scancode
  val decimalseparator : Tsdl.Sdl.scancode
  val currencyunit : Tsdl.Sdl.scancode
  val currencysubunit : Tsdl.Sdl.scancode
  val kp_leftparen : Tsdl.Sdl.scancode
  val kp_rightparen : Tsdl.Sdl.scancode
  val kp_leftbrace : Tsdl.Sdl.scancode
  val kp_rightbrace : Tsdl.Sdl.scancode
  val kp_tab : Tsdl.Sdl.scancode
  val kp_backspace : Tsdl.Sdl.scancode
  val kp_a : Tsdl.Sdl.scancode
  val kp_b : Tsdl.Sdl.scancode
  val kp_c : Tsdl.Sdl.scancode
  val kp_d : Tsdl.Sdl.scancode
  val kp_e : Tsdl.Sdl.scancode
  val kp_f : Tsdl.Sdl.scancode
  val kp_xor : Tsdl.Sdl.scancode
  val kp_power : Tsdl.Sdl.scancode
  val kp_percent : Tsdl.Sdl.scancode
  val kp_less : Tsdl.Sdl.scancode
  val kp_greater : Tsdl.Sdl.scancode
  val kp_ampersand : Tsdl.Sdl.scancode
  val kp_dblampersand : Tsdl.Sdl.scancode
  val kp_verticalbar : Tsdl.Sdl.scancode
  val kp_dblverticalbar : Tsdl.Sdl.scancode
  val kp_colon : Tsdl.Sdl.scancode
  val kp_hash : Tsdl.Sdl.scancode
  val kp_space : Tsdl.Sdl.scancode
  val kp_at : Tsdl.Sdl.scancode
  val kp_exclam : Tsdl.Sdl.scancode
  val kp_memstore : Tsdl.Sdl.scancode
  val kp_memrecall : Tsdl.Sdl.scancode
  val kp_memclear : Tsdl.Sdl.scancode
  val kp_memadd : Tsdl.Sdl.scancode
  val kp_memsubtract : Tsdl.Sdl.scancode
  val kp_memmultiply : Tsdl.Sdl.scancode
  val kp_memdivide : Tsdl.Sdl.scancode
  val kp_plusminus : Tsdl.Sdl.scancode
  val kp_clear : Tsdl.Sdl.scancode
  val kp_clearentry : Tsdl.Sdl.scancode
  val kp_binary : Tsdl.Sdl.scancode
  val kp_octal : Tsdl.Sdl.scancode
  val kp_decimal : Tsdl.Sdl.scancode
  val kp_hexadecimal : Tsdl.Sdl.scancode
  val lctrl : Tsdl.Sdl.scancode
  val lshift : Tsdl.Sdl.scancode
  val lalt : Tsdl.Sdl.scancode
  val lgui : Tsdl.Sdl.scancode
  val rctrl : Tsdl.Sdl.scancode
  val rshift : Tsdl.Sdl.scancode
  val ralt : Tsdl.Sdl.scancode
  val rgui : Tsdl.Sdl.scancode
  val mode : Tsdl.Sdl.scancode
  val audionext : Tsdl.Sdl.scancode
  val audioprev : Tsdl.Sdl.scancode
  val audiostop : Tsdl.Sdl.scancode
  val audioplay : Tsdl.Sdl.scancode
  val audiomute : Tsdl.Sdl.scancode
  val mediaselect : Tsdl.Sdl.scancode
  val www : Tsdl.Sdl.scancode
  val mail : Tsdl.Sdl.scancode
  val calculator : Tsdl.Sdl.scancode
  val computer : Tsdl.Sdl.scancode
  val ac_search : Tsdl.Sdl.scancode
  val ac_home : Tsdl.Sdl.scancode
  val ac_back : Tsdl.Sdl.scancode
  val ac_forward : Tsdl.Sdl.scancode
  val ac_stop : Tsdl.Sdl.scancode
  val ac_refresh : Tsdl.Sdl.scancode
  val ac_bookmarks : Tsdl.Sdl.scancode
  val brightnessdown : Tsdl.Sdl.scancode
  val brightnessup : Tsdl.Sdl.scancode
  val displayswitch : Tsdl.Sdl.scancode
  val kbdillumtoggle : Tsdl.Sdl.scancode
  val kbdillumdown : Tsdl.Sdl.scancode
  val kbdillumup : Tsdl.Sdl.scancode
  val eject : Tsdl.Sdl.scancode
  val sleep : Tsdl.Sdl.scancode
  val app1 : Tsdl.Sdl.scancode
  val app2 : Tsdl.Sdl.scancode
end