sig
  type t =
      Unknown
    | Return
    | Escape
    | Backspace
    | Tab
    | Space
    | Exclaim
    | QuoteDBL
    | Hash
    | Percent
    | Dollar
    | Ampersand
    | Quote
    | LeftParen
    | RightParen
    | Asterisk
    | Plus
    | Comma
    | Minus
    | Period
    | Slash
    | Num0
    | Num1
    | Num2
    | Num3
    | Num4
    | Num5
    | Num6
    | Num7
    | Num8
    | Num9
    | Colon
    | SemiColon
    | Less
    | Equals
    | Greater
    | Question
    | At
    | LeftBracket
    | BackSlash
    | RightBracket
    | Caret
    | Underscore
    | BackQuote
    | A
    | B
    | C
    | D
    | E
    | F
    | G
    | H
    | I
    | J
    | K
    | L
    | M
    | N
    | O
    | P
    | Q
    | R
    | S
    | T
    | U
    | V
    | W
    | X
    | Y
    | Z
    | CapsLock
    | F1
    | F2
    | F3
    | F4
    | F5
    | F6
    | F7
    | F8
    | F9
    | F10
    | F11
    | F12
    | PrintScreen
    | ScrollLock
    | Pause
    | Insert
    | Home
    | PageUp
    | Delete
    | End
    | PageDown
    | Right
    | Left
    | Down
    | Up
    | NumLockClear
    | KP_Divide
    | KP_Multiply
    | KP_Minus
    | KP_Plus
    | KP_Enter
    | KP_1
    | KP_2
    | KP_3
    | KP_4
    | KP_5
    | KP_6
    | KP_7
    | KP_8
    | KP_9
    | KP_0
    | KP_Period
    | Application
    | Power
    | KP_Equals
    | F13
    | F14
    | F15
    | F16
    | F17
    | F18
    | F19
    | F20
    | F21
    | F22
    | F23
    | F24
    | Execute
    | Help
    | Menu
    | Select
    | Stop
    | Again
    | Undo
    | Cut
    | Copy
    | Paste
    | Find
    | Mute
    | VolumeUp
    | VolumeDown
    | KP_Comma
    | KP_EqualsAs400
    | ALTERASE
    | SYSREQ
    | CANCEL
    | CLEAR
    | PRIOR
    | RETURN2
    | SEPARATOR
    | OUT
    | OPER
    | CLEARAGAIN
    | CRSEL
    | EXSEL
    | KP_00
    | KP_000
    | ThousandsSeparator
    | DecimalSeparator
    | CurrencyUnit
    | CurrencySubunit
    | KP_LeftParen
    | KP_RightParen
    | KP_LeftBrace
    | KP_RightBrace
    | KP_Tab
    | KP_Backspace
    | KP_A
    | KP_B
    | KP_C
    | KP_D
    | KP_E
    | KP_F
    | KP_Xor
    | KP_Power
    | KP_Percent
    | KP_Less
    | KP_Greater
    | KP_Ampersand
    | KP_DBLAmpersand
    | KP_VerticalBar
    | KP_DBLVerticalBar
    | KP_Colon
    | KP_Hash
    | KP_Space
    | KP_At
    | KP_Exclam
    | KP_MemStore
    | KP_MemRecall
    | KP_MemClear
    | KP_MemAdd
    | KP_MemSubtract
    | KP_MemMultiply
    | KP_MemDivide
    | KP_PlusMinus
    | KP_Clear
    | KP_Clearentry
    | KP_Binary
    | KP_Octal
    | KP_Decimal
    | KP_Hexadecimal
    | LCtrl
    | LShift
    | LAlt
    | LGui
    | RCtrl
    | RShift
    | RAlt
    | RGUI
    | MODE
    | AudioNext
    | AudioPrev
    | AudioStop
    | AudioPlay
    | AudioMute
    | MediaSelect
    | WWW
    | Mail
    | Calculator
    | Computer
    | AC_Search
    | AC_Home
    | AC_Back
    | AC_Forward
    | AC_Stop
    | AC_Refresh
    | AC_Bookmarks
    | BrightnessDown
    | BrightnessUp
    | DisplaySwitch
    | KBDIllumToggle
    | KBDIllumDown
    | KBDIllumUp
    | Eject
    | Sleep
  val to_string : Sdlkeycode.t -> string
  val of_string : string -> Sdlkeycode.t
end