    {-# LINE 1 "Graphics/UI/SDL/Keysym.hsc" #-}

    {-# LINE 5 "Graphics/UI/SDL/Keysym.hsc" #-}
    -----------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.UI.SDL.Keysym
    -- Copyright   :  (c) David Himmelstrup 2005
    -- License     :  BSD-like
    --
    -- Maintainer  :  lemmih@gmail.com
    -- Stability   :  provisional
    -- Portability :  portable
    --
    -----------------------------------------------------------------------------
    module Graphics.UI.SDL.Keysym where

    import Foreign (Word16, Word32,
                   Storable(poke, sizeOf, alignment, peekByteOff, pokeByteOff, peek))
    import Data.Char (chr, ord)
    import Prelude hiding (Enum(..))

    import Graphics.UI.SDL.Utilities (Enum(..), toBitmask, fromBitmask)

    data Keysym
      = Keysym
        { Keysym -> SDLKey
    symKey :: SDLKey,
          Keysym -> [Modifier]
    symModifiers :: [Modifier],
          Keysym -> Char
    symUnicode :: Char}
        deriving (Int -> Keysym -> ShowS
    [Keysym] -> ShowS
    Keysym -> String
    (Int -> Keysym -> ShowS)
    -> (Keysym -> String) -> ([Keysym] -> ShowS) -> Show Keysym
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Keysym -> ShowS
    showsPrec :: Int -> Keysym -> ShowS
    $cshow :: Keysym -> String
    show :: Keysym -> String
    $cshowList :: [Keysym] -> ShowS
    showList :: [Keysym] -> ShowS
    Show,Keysym -> Keysym -> Bool
    (Keysym -> Keysym -> Bool)
    -> (Keysym -> Keysym -> Bool) -> Eq Keysym
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Keysym -> Keysym -> Bool
    == :: Keysym -> Keysym -> Bool
    $c/= :: Keysym -> Keysym -> Bool
    /= :: Keysym -> Keysym -> Bool
    Eq)

    instance Storable Keysym where
        sizeOf :: Keysym -> Int
    sizeOf = Int -> Keysym -> Int
    forall a b. a -> b -> a
    const (Int
    16)
    {-# LINE 34 "Graphics/UI/SDL/Keysym.hsc" #-}
        alignment = const 4
        poke :: Ptr Keysym -> Keysym -> IO ()
    poke Ptr Keysym
    ptr (Keysym SDLKey
    key [Modifier]
    mods Char
    unicode)
            = do (\Ptr Keysym
    hsc_ptr -> Ptr Keysym -> Int -> Word32 -> IO ()
    forall b. Ptr b -> Int -> Word32 -> IO ()
    forall a b. Storable a => Ptr b -> Int -> a -> IO ()
    pokeByteOff Ptr Keysym
    hsc_ptr Int
    4) Ptr Keysym
    ptr (SDLKey -> Word32
    forall a b. Enum a b => a -> b
    fromEnum SDLKey
    key)
    {-# LINE 37 "Graphics/UI/SDL/Keysym.hsc" #-}
                 (\Ptr Keysym
    hsc_ptr -> Ptr Keysym -> Int -> Word32 -> IO ()
    forall b. Ptr b -> Int -> Word32 -> IO ()
    forall a b. Storable a => Ptr b -> Int -> a -> IO ()
    pokeByteOff Ptr Keysym
    hsc_ptr Int
    8) Ptr Keysym
    ptr ([Modifier] -> Word32
    forall a b. (Enum a b, Bits b, Num b) => [a] -> b
    toBitmask [Modifier]
    mods)
    {-# LINE 38 "Graphics/UI/SDL/Keysym.hsc" #-}
                 (\Ptr Keysym
    hsc_ptr -> Ptr Keysym -> Int -> Word16 -> IO ()
    forall b. Ptr b -> Int -> Word16 -> IO ()
    forall a b. Storable a => Ptr b -> Int -> a -> IO ()
    pokeByteOff Ptr Keysym
    hsc_ptr Int
    12) Ptr Keysym
    ptr (Int -> Word16
    forall a b. (Integral a, Num b) => a -> b
    fromIntegral (Char -> Int
    ord Char
    unicode) :: Word16)
    {-# LINE 39 "Graphics/UI/SDL/Keysym.hsc" #-}
        peek ptr
            = do sym <- (\hsc_ptr -> peekByteOff hsc_ptr 4) ptr
    {-# LINE 41 "Graphics/UI/SDL/Keysym.hsc" #-}
                 mods <- (\hsc_ptr -> peekByteOff hsc_ptr 8) ptr
    {-# LINE 42 "Graphics/UI/SDL/Keysym.hsc" #-}
                 uni <- (\hsc_ptr -> peekByteOff hsc_ptr 12) ptr
    {-# LINE 43 "Graphics/UI/SDL/Keysym.hsc" #-}
                 return $! Keysym (toEnum sym) (fromBitmask mods) (chr $ fromIntegral (uni::Word16))

    data Modifier = KeyModNone
                     | KeyModLeftShift
                     | KeyModRightShift
                     | KeyModLeftCtrl
                     | KeyModRightCtrl
                     | KeyModLeftAlt
                     | KeyModRightAlt
                     | KeyModLeftMeta
                     | KeyModRightMeta
                     | KeyModNum
                     | KeyModCaps
                     | KeyModMode
                     | KeyModCtrl
                     | KeyModShift
                     | KeyModAlt
                     | KeyModMeta
        deriving (Modifier -> Modifier -> Bool
    (Modifier -> Modifier -> Bool)
    -> (Modifier -> Modifier -> Bool) -> Eq Modifier
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: Modifier -> Modifier -> Bool
    == :: Modifier -> Modifier -> Bool
    $c/= :: Modifier -> Modifier -> Bool
    /= :: Modifier -> Modifier -> Bool
    Eq, Eq Modifier
    Eq Modifier
    -> (Modifier -> Modifier -> Ordering)
    -> (Modifier -> Modifier -> Bool)
    -> (Modifier -> Modifier -> Bool)
    -> (Modifier -> Modifier -> Bool)
    -> (Modifier -> Modifier -> Bool)
    -> (Modifier -> Modifier -> Modifier)
    -> (Modifier -> Modifier -> Modifier)
    -> Ord Modifier
    Modifier -> Modifier -> Bool
    Modifier -> Modifier -> Ordering
    Modifier -> Modifier -> Modifier
    forall a.
    Eq a
    -> (a -> a -> Ordering)
    -> (a -> a -> Bool)
    -> (a -> a -> Bool)
    -> (a -> a -> Bool)
    -> (a -> a -> Bool)
    -> (a -> a -> a)
    -> (a -> a -> a)
    -> Ord a
    $ccompare :: Modifier -> Modifier -> Ordering
    compare :: Modifier -> Modifier -> Ordering
    $c< :: Modifier -> Modifier -> Bool
    < :: Modifier -> Modifier -> Bool
    $c<= :: Modifier -> Modifier -> Bool
    <= :: Modifier -> Modifier -> Bool
    $c> :: Modifier -> Modifier -> Bool
    > :: Modifier -> Modifier -> Bool
    $c>= :: Modifier -> Modifier -> Bool
    >= :: Modifier -> Modifier -> Bool
    $cmax :: Modifier -> Modifier -> Modifier
    max :: Modifier -> Modifier -> Modifier
    $cmin :: Modifier -> Modifier -> Modifier
    min :: Modifier -> Modifier -> Modifier
    Ord, Int -> Modifier -> ShowS
    [Modifier] -> ShowS
    Modifier -> String
    (Int -> Modifier -> ShowS)
    -> (Modifier -> String) -> ([Modifier] -> ShowS) -> Show Modifier
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> Modifier -> ShowS
    showsPrec :: Int -> Modifier -> ShowS
    $cshow :: Modifier -> String
    show :: Modifier -> String
    $cshowList :: [Modifier] -> ShowS
    showList :: [Modifier] -> ShowS
    Show)
    instance Bounded Modifier where
        minBound :: Modifier
    minBound = Modifier
    KeyModNone
        maxBound :: Modifier
    maxBound = Modifier
    KeyModMode
    instance Enum Modifier Word32 where
    {-# LINE 67 "Graphics/UI/SDL/Keysym.hsc" #-}
          fromEnum KeyModNone = 0
          fromEnum KeyModLeftShift = 1
          fromEnum KeyModRightShift = 2
          fromEnum KeyModLeftCtrl = 64
          fromEnum KeyModRightCtrl = 128
          fromEnum KeyModLeftAlt = 256
          fromEnum KeyModRightAlt = 512
          fromEnum KeyModLeftMeta = 1024
          fromEnum KeyModRightMeta = 2048
          fromEnum KeyModNum = 4096
          fromEnum KeyModCaps = 8192
          fromEnum KeyModMode = 16384
          fromEnum KeyModCtrl = 192
          fromEnum KeyModShift = 3
          fromEnum KeyModAlt = 768
          fromEnum KeyModMeta = 3072
          toEnum :: Word32 -> Modifier
    toEnum Word32
    0 = Modifier
    KeyModNone
          toEnum Word32
    1 = Modifier
    KeyModLeftShift
          toEnum Word32
    2 = Modifier
    KeyModRightShift
          toEnum Word32
    64 = Modifier
    KeyModLeftCtrl
          toEnum Word32
    128 = Modifier
    KeyModRightCtrl
          toEnum Word32
    256 = Modifier
    KeyModLeftAlt
          toEnum Word32
    512 = Modifier
    KeyModRightAlt
          toEnum Word32
    1024 = Modifier
    KeyModLeftMeta
          toEnum Word32
    2048 = Modifier
    KeyModRightMeta
          toEnum Word32
    4096 = Modifier
    KeyModNum
          toEnum Word32
    8192 = Modifier
    KeyModCaps
          toEnum Word32
    16384 = Modifier
    KeyModMode
          toEnum Word32
    192 = Modifier
    KeyModCtrl
          toEnum Word32
    3 = Modifier
    KeyModShift
          toEnum Word32
    768 = Modifier
    KeyModAlt
          toEnum Word32
    3072 = Modifier
    KeyModMeta
          toEnum Word32
    _ = String -> Modifier
    forall a. HasCallStack => String -> a
    error String
    "Graphics.UI.SDL.Keysym.toEnum: bad argument"
          succ :: Modifier -> Modifier
    succ Modifier
    KeyModNone = Modifier
    KeyModLeftShift
          succ Modifier
    KeyModLeftShift = Modifier
    KeyModRightShift
          succ Modifier
    KeyModRightShift = Modifier
    KeyModLeftCtrl
          succ Modifier
    KeyModLeftCtrl = Modifier
    KeyModRightCtrl
          succ Modifier
    KeyModRightCtrl = Modifier
    KeyModLeftAlt
          succ Modifier
    KeyModLeftAlt = Modifier
    KeyModRightAlt
          succ Modifier
    KeyModRightAlt = Modifier
    KeyModLeftMeta
          succ Modifier
    KeyModLeftMeta = Modifier
    KeyModRightMeta
          succ Modifier
    KeyModRightMeta = Modifier
    KeyModNum
          succ Modifier
    KeyModNum = Modifier
    KeyModCaps
          succ Modifier
    KeyModCaps = Modifier
    KeyModMode
          succ Modifier
    KeyModMode = Modifier
    KeyModCtrl
          succ Modifier
    KeyModCtrl = Modifier
    KeyModShift
          succ Modifier
    KeyModShift = Modifier
    KeyModAlt
          succ Modifier
    KeyModAlt = Modifier
    KeyModMeta
          succ Modifier
    _ = String -> Modifier
    forall a. HasCallStack => String -> a
    error String
    "Graphics.UI.SDL.Keysym.succ: bad argument"
          pred :: Modifier -> Modifier
    pred Modifier
    KeyModLeftShift = Modifier
    KeyModNone
          pred Modifier
    KeyModRightShift = Modifier
    KeyModLeftShift
          pred Modifier
    KeyModLeftCtrl = Modifier
    KeyModRightShift
          pred Modifier
    KeyModRightCtrl = Modifier
    KeyModLeftCtrl
          pred Modifier
    KeyModLeftAlt = Modifier
    KeyModRightCtrl
          pred Modifier
    KeyModRightAlt = Modifier
    KeyModLeftAlt
          pred Modifier
    KeyModLeftMeta = Modifier
    KeyModRightAlt
          pred Modifier
    KeyModRightMeta = Modifier
    KeyModLeftMeta
          pred Modifier
    KeyModNum = Modifier
    KeyModRightMeta
          pred Modifier
    KeyModCaps = Modifier
    KeyModNum
          pred Modifier
    KeyModMode = Modifier
    KeyModCaps
          pred Modifier
    KeyModCtrl = Modifier
    KeyModMode
          pred Modifier
    KeyModShift = Modifier
    KeyModCtrl
          pred Modifier
    KeyModAlt = Modifier
    KeyModShift
          pred Modifier
    KeyModMeta = Modifier
    KeyModAlt
          pred Modifier
    _ = String -> Modifier
    forall a. HasCallStack => String -> a
    error String
    "Graphics.UI.SDL.Keysym.pred: bad argument"
          enumFromTo :: Modifier -> Modifier -> [Modifier]
    enumFromTo Modifier
    x Modifier
    y | Modifier
    x Modifier -> Modifier -> Bool
    forall a. Ord a => a -> a -> Bool
    > Modifier
    y = []
                         | Modifier
    x Modifier -> Modifier -> Bool
    forall a. Eq a => a -> a -> Bool
    == Modifier
    y = [Modifier
    y]
                         | Bool
    True = Modifier
    x Modifier -> [Modifier] -> [Modifier]
    forall a. a -> [a] -> [a]
    : Modifier -> Modifier -> [Modifier]
    forall a b. Enum a b => a -> a -> [a]
    enumFromTo (Modifier -> Modifier
    forall a b. Enum a b => a -> a
    succ Modifier
    x) Modifier
    y

    data SDLKey = SDLK_UNKNOWN
                | SDLK_FIRST
                | SDLK_BACKSPACE
                | SDLK_TAB
                | SDLK_CLEAR
                | SDLK_RETURN
                | SDLK_PAUSE
                | SDLK_ESCAPE
                | SDLK_SPACE
                | SDLK_EXCLAIM
                | SDLK_QUOTEDBL
                | SDLK_HASH
                | SDLK_DOLLAR
                | SDLK_AMPERSAND
                | SDLK_QUOTE
                | SDLK_LEFTPAREN
                | SDLK_RIGHTPAREN
                | SDLK_ASTERISK
                | SDLK_PLUS
                | SDLK_COMMA
                | SDLK_MINUS
                | SDLK_PERIOD
                | SDLK_SLASH
                | SDLK_0
                | SDLK_1
                | SDLK_2
                | SDLK_3
                | SDLK_4
                | SDLK_5
                | SDLK_6
                | SDLK_7
                | SDLK_8
                | SDLK_9
                | SDLK_COLON
                | SDLK_SEMICOLON
                | SDLK_LESS
                | SDLK_EQUALS
                | SDLK_GREATER
                | SDLK_QUESTION
                | SDLK_AT
                | SDLK_LEFTBRACKET
                | SDLK_BACKSLASH
                | SDLK_RIGHTBRACKET
                | SDLK_CARET
                | SDLK_UNDERSCORE
                | SDLK_BACKQUOTE
                | SDLK_a
                | SDLK_b
                | SDLK_c
                | SDLK_d
                | SDLK_e
                | SDLK_f
                | SDLK_g
                | SDLK_h
                | SDLK_i
                | SDLK_j
                | SDLK_k
                | SDLK_l
                | SDLK_m
                | SDLK_n
                | SDLK_o
                | SDLK_p
                | SDLK_q
                | SDLK_r
                | SDLK_s
                | SDLK_t
                | SDLK_u
                | SDLK_v
                | SDLK_w
                | SDLK_x
                | SDLK_y
                | SDLK_z
                | SDLK_DELETE
                | SDLK_WORLD_0
                | SDLK_WORLD_1
                | SDLK_WORLD_2
                | SDLK_WORLD_3
                | SDLK_WORLD_4
                | SDLK_WORLD_5
                | SDLK_WORLD_6
                | SDLK_WORLD_7
                | SDLK_WORLD_8
                | SDLK_WORLD_9
                | SDLK_WORLD_10
                | SDLK_WORLD_11
                | SDLK_WORLD_12
                | SDLK_WORLD_13
                | SDLK_WORLD_14
                | SDLK_WORLD_15
                | SDLK_WORLD_16
                | SDLK_WORLD_17
                | SDLK_WORLD_18
                | SDLK_WORLD_19
                | SDLK_WORLD_20
                | SDLK_WORLD_21
                | SDLK_WORLD_22
                | SDLK_WORLD_23
                | SDLK_WORLD_24
                | SDLK_WORLD_25
                | SDLK_WORLD_26
                | SDLK_WORLD_27
                | SDLK_WORLD_28
                | SDLK_WORLD_29
                | SDLK_WORLD_30
                | SDLK_WORLD_31
                | SDLK_WORLD_32
                | SDLK_WORLD_33
                | SDLK_WORLD_34
                | SDLK_WORLD_35
                | SDLK_WORLD_36
                | SDLK_WORLD_37
                | SDLK_WORLD_38
                | SDLK_WORLD_39
                | SDLK_WORLD_40
                | SDLK_WORLD_41
                | SDLK_WORLD_42
                | SDLK_WORLD_43
                | SDLK_WORLD_44
                | SDLK_WORLD_45
                | SDLK_WORLD_46
                | SDLK_WORLD_47
                | SDLK_WORLD_48
                | SDLK_WORLD_49
                | SDLK_WORLD_50
                | SDLK_WORLD_51
                | SDLK_WORLD_52
                | SDLK_WORLD_53
                | SDLK_WORLD_54
                | SDLK_WORLD_55
                | SDLK_WORLD_56
                | SDLK_WORLD_57
                | SDLK_WORLD_58
                | SDLK_WORLD_59
                | SDLK_WORLD_60
                | SDLK_WORLD_61
                | SDLK_WORLD_62
                | SDLK_WORLD_63
                | SDLK_WORLD_64
                | SDLK_WORLD_65
                | SDLK_WORLD_66
                | SDLK_WORLD_67
                | SDLK_WORLD_68
                | SDLK_WORLD_69
                | SDLK_WORLD_70
                | SDLK_WORLD_71
                | SDLK_WORLD_72
                | SDLK_WORLD_73
                | SDLK_WORLD_74
                | SDLK_WORLD_75
                | SDLK_WORLD_76
                | SDLK_WORLD_77
                | SDLK_WORLD_78
                | SDLK_WORLD_79
                | SDLK_WORLD_80
                | SDLK_WORLD_81
                | SDLK_WORLD_82
                | SDLK_WORLD_83
                | SDLK_WORLD_84
                | SDLK_WORLD_85
                | SDLK_WORLD_86
                | SDLK_WORLD_87
                | SDLK_WORLD_88
                | SDLK_WORLD_89
                | SDLK_WORLD_90
                | SDLK_WORLD_91
                | SDLK_WORLD_92
                | SDLK_WORLD_93
                | SDLK_WORLD_94
                | SDLK_WORLD_95
                | SDLK_KP0
                | SDLK_KP1
                | SDLK_KP2
                | SDLK_KP3
                | SDLK_KP4
                | SDLK_KP5
                | SDLK_KP6
                | SDLK_KP7
                | SDLK_KP8
                | SDLK_KP9
                | SDLK_KP_PERIOD
                | SDLK_KP_DIVIDE
                | SDLK_KP_MULTIPLY
                | SDLK_KP_MINUS
                | SDLK_KP_PLUS
                | SDLK_KP_ENTER
                | SDLK_KP_EQUALS
                | SDLK_UP
                | SDLK_DOWN
                | SDLK_RIGHT
                | SDLK_LEFT
                | SDLK_INSERT
                | SDLK_HOME
                | SDLK_END
                | SDLK_PAGEUP
                | SDLK_PAGEDOWN
                | SDLK_F1
                | SDLK_F2
                | SDLK_F3
                | SDLK_F4
                | SDLK_F5
                | SDLK_F6
                | SDLK_F7
                | SDLK_F8
                | SDLK_F9
                | SDLK_F10
                | SDLK_F11
                | SDLK_F12
                | SDLK_F13
                | SDLK_F14
                | SDLK_F15
                | SDLK_NUMLOCK
                | SDLK_CAPSLOCK
                | SDLK_SCROLLOCK
                | SDLK_RSHIFT
                | SDLK_LSHIFT
                | SDLK_RCTRL
                | SDLK_LCTRL
                | SDLK_RALT
                | SDLK_LALT
                | SDLK_RMETA
                | SDLK_LMETA
                | SDLK_LSUPER
                | SDLK_RSUPER
                | SDLK_MODE
                | SDLK_COMPOSE
                | SDLK_HELP
                | SDLK_PRINT
                | SDLK_SYSREQ
                | SDLK_BREAK
                | SDLK_MENU
                | SDLK_POWER
                | SDLK_EURO
                | SDLK_UNDO
                | SDLK_LAST
        deriving (SDLKey -> SDLKey -> Bool
    (SDLKey -> SDLKey -> Bool)
    -> (SDLKey -> SDLKey -> Bool) -> Eq SDLKey
    forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
    $c== :: SDLKey -> SDLKey -> Bool
    == :: SDLKey -> SDLKey -> Bool
    $c/= :: SDLKey -> SDLKey -> Bool
    /= :: SDLKey -> SDLKey -> Bool
    Eq, Eq SDLKey
    Eq SDLKey
    -> (SDLKey -> SDLKey -> Ordering)
    -> (SDLKey -> SDLKey -> Bool)
    -> (SDLKey -> SDLKey -> Bool)
    -> (SDLKey -> SDLKey -> Bool)
    -> (SDLKey -> SDLKey -> Bool)
    -> (SDLKey -> SDLKey -> SDLKey)
    -> (SDLKey -> SDLKey -> SDLKey)
    -> Ord SDLKey
    SDLKey -> SDLKey -> Bool
    SDLKey -> SDLKey -> Ordering
    SDLKey -> SDLKey -> SDLKey
    forall a.
    Eq a
    -> (a -> a -> Ordering)
    -> (a -> a -> Bool)
    -> (a -> a -> Bool)
    -> (a -> a -> Bool)
    -> (a -> a -> Bool)
    -> (a -> a -> a)
    -> (a -> a -> a)
    -> Ord a
    $ccompare :: SDLKey -> SDLKey -> Ordering
    compare :: SDLKey -> SDLKey -> Ordering
    $c< :: SDLKey -> SDLKey -> Bool
    < :: SDLKey -> SDLKey -> Bool
    $c<= :: SDLKey -> SDLKey -> Bool
    <= :: SDLKey -> SDLKey -> Bool
    $c> :: SDLKey -> SDLKey -> Bool
    > :: SDLKey -> SDLKey -> Bool
    $c>= :: SDLKey -> SDLKey -> Bool
    >= :: SDLKey -> SDLKey -> Bool
    $cmax :: SDLKey -> SDLKey -> SDLKey
    max :: SDLKey -> SDLKey -> SDLKey
    $cmin :: SDLKey -> SDLKey -> SDLKey
    min :: SDLKey -> SDLKey -> SDLKey
    Ord, Int -> SDLKey -> ShowS
    [SDLKey] -> ShowS
    SDLKey -> String
    (Int -> SDLKey -> ShowS)
    -> (SDLKey -> String) -> ([SDLKey] -> ShowS) -> Show SDLKey
    forall a.
    (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
    $cshowsPrec :: Int -> SDLKey -> ShowS
    showsPrec :: Int -> SDLKey -> ShowS
    $cshow :: SDLKey -> String
    show :: SDLKey -> String
    $cshowList :: [SDLKey] -> ShowS
    showList :: [SDLKey] -> ShowS
    Show)
    instance Bounded SDLKey where
        minBound :: SDLKey
    minBound = SDLKey
    SDLK_UNKNOWN
        maxBound :: SDLKey
    maxBound = SDLKey
    SDLK_LAST
    instance Enum SDLKey Word32 where
    {-# LINE 375 "Graphics/UI/SDL/Keysym.hsc" #-}
          fromEnum SDLK_UNKNOWN = 0
          fromEnum SDLK_FIRST = 0
          fromEnum SDLK_BACKSPACE = 8
          fromEnum SDLK_TAB = 9
          fromEnum SDLK_CLEAR = 12
          fromEnum SDLK_RETURN = 13
          fromEnum SDLK_PAUSE = 19
          fromEnum SDLK_ESCAPE = 27
          fromEnum SDLK_SPACE = 32
          fromEnum SDLK_EXCLAIM = 33
          fromEnum SDLK_QUOTEDBL = 34
          fromEnum SDLK_HASH = 35
          fromEnum SDLK_DOLLAR = 36
          fromEnum SDLK_AMPERSAND = 38
          fromEnum SDLK_QUOTE = 39
          fromEnum SDLK_LEFTPAREN = 40
          fromEnum SDLK_RIGHTPAREN = 41
          fromEnum SDLK_ASTERISK = 42
          fromEnum SDLK_PLUS = 43
          fromEnum SDLK_COMMA = 44
          fromEnum SDLK_MINUS = 45
          fromEnum SDLK_PERIOD = 46
          fromEnum SDLK_SLASH = 47
          fromEnum SDLK_0 = 48
          fromEnum SDLK_1 = 49
          fromEnum SDLK_2 = 50
          fromEnum SDLK_3 = 51
          fromEnum SDLK_4 = 52
          fromEnum SDLK_5 = 53
          fromEnum SDLK_6 = 54
          fromEnum SDLK_7 = 55
          fromEnum SDLK_8 = 56
          fromEnum SDLK_9 = 57
          fromEnum SDLK_COLON = 58
          fromEnum SDLK_SEMICOLON = 59
          fromEnum SDLK_LESS = 60
          fromEnum SDLK_EQUALS = 61
          fromEnum SDLK_GREATER = 62
          fromEnum SDLK_QUESTION = 63
          fromEnum SDLK_AT = 64
          fromEnum SDLK_LEFTBRACKET = 91
          fromEnum SDLK_BACKSLASH = 92
          fromEnum SDLK_RIGHTBRACKET = 93
          fromEnum SDLK_CARET = 94
          fromEnum SDLK_UNDERSCORE = 95
          fromEnum SDLK_BACKQUOTE = 96
          fromEnum SDLK_a = 97
          fromEnum SDLK_b = 98
          fromEnum SDLK_c = 99
          fromEnum SDLK_d = 100
          fromEnum SDLK_e = 101
          fromEnum SDLK_f = 102
          fromEnum SDLK_g = 103
          fromEnum SDLK_h = 104
          fromEnum SDLK_i = 105
          fromEnum SDLK_j = 106
          fromEnum SDLK_k = 107
          fromEnum SDLK_l = 108
          fromEnum SDLK_m = 109
          fromEnum SDLK_n = 110
          fromEnum SDLK_o = 111
          fromEnum SDLK_p = 112
          fromEnum SDLK_q = 113
          fromEnum SDLK_r = 114
          fromEnum SDLK_s = 115
          fromEnum SDLK_t = 116
          fromEnum SDLK_u = 117
          fromEnum SDLK_v = 118
          fromEnum SDLK_w = 119
          fromEnum SDLK_x = 120
          fromEnum SDLK_y = 121
          fromEnum SDLK_z = 122
          fromEnum SDLK_DELETE = 127
          fromEnum SDLK_WORLD_0 = 160
          fromEnum SDLK_WORLD_1 = 161
          fromEnum SDLK_WORLD_2 = 162
          fromEnum SDLK_WORLD_3 = 163
          fromEnum SDLK_WORLD_4 = 164
          fromEnum SDLK_WORLD_5 = 165
          fromEnum SDLK_WORLD_6 = 166
          fromEnum SDLK_WORLD_7 = 167
          fromEnum SDLK_WORLD_8 = 168
          fromEnum SDLK_WORLD_9 = 169
          fromEnum SDLK_WORLD_10 = 170
          fromEnum SDLK_WORLD_11 = 171
          fromEnum SDLK_WORLD_12 = 172
          fromEnum SDLK_WORLD_13 = 173
          fromEnum SDLK_WORLD_14 = 174
          fromEnum SDLK_WORLD_15 = 175
          fromEnum SDLK_WORLD_16 = 176
          fromEnum SDLK_WORLD_17 = 177
          fromEnum SDLK_WORLD_18 = 178
          fromEnum SDLK_WORLD_19 = 179
          fromEnum SDLK_WORLD_20 = 180
          fromEnum SDLK_WORLD_21 = 181
          fromEnum SDLK_WORLD_22 = 182
          fromEnum SDLK_WORLD_23 = 183
          fromEnum SDLK_WORLD_24 = 184
          fromEnum SDLK_WORLD_25 = 185
          fromEnum SDLK_WORLD_26 = 186
          fromEnum SDLK_WORLD_27 = 187
          fromEnum SDLK_WORLD_28 = 188
          fromEnum SDLK_WORLD_29 = 189
          fromEnum SDLK_WORLD_30 = 190
          fromEnum SDLK_WORLD_31 = 191
          fromEnum SDLK_WORLD_32 = 192
          fromEnum SDLK_WORLD_33 = 193
          fromEnum SDLK_WORLD_34 = 194
          fromEnum SDLK_WORLD_35 = 195
          fromEnum SDLK_WORLD_36 = 196
          fromEnum SDLK_WORLD_37 = 197
          fromEnum SDLK_WORLD_38 = 198
          fromEnum SDLK_WORLD_39 = 199
          fromEnum SDLK_WORLD_40 = 200
          fromEnum SDLK_WORLD_41 = 201
          fromEnum SDLK_WORLD_42 = 202
          fromEnum SDLK_WORLD_43 = 203
          fromEnum SDLK_WORLD_44 = 204
          fromEnum SDLK_WORLD_45 = 205
          fromEnum SDLK_WORLD_46 = 206
          fromEnum SDLK_WORLD_47 = 207
          fromEnum SDLK_WORLD_48 = 208
          fromEnum SDLK_WORLD_49 = 209
          fromEnum SDLK_WORLD_50 = 210
          fromEnum SDLK_WORLD_51 = 211
          fromEnum SDLK_WORLD_52 = 212
          fromEnum SDLK_WORLD_53 = 213
          fromEnum SDLK_WORLD_54 = 214
          fromEnum SDLK_WORLD_55 = 215
          fromEnum SDLK_WORLD_56 = 216
          fromEnum SDLK_WORLD_57 = 217
          fromEnum SDLK_WORLD_58 = 218
          fromEnum SDLK_WORLD_59 = 219
          fromEnum SDLK_WORLD_60 = 220
          fromEnum SDLK_WORLD_61 = 221
          fromEnum SDLK_WORLD_62 = 222
          fromEnum SDLK_WORLD_63 = 223
          fromEnum SDLK_WORLD_64 = 224
          fromEnum SDLK_WORLD_65 = 225
          fromEnum SDLK_WORLD_66 = 226
          fromEnum SDLK_WORLD_67 = 227
          fromEnum SDLK_WORLD_68 = 228
          fromEnum SDLK_WORLD_69 = 229
          fromEnum SDLK_WORLD_70 = 230
          fromEnum SDLK_WORLD_71 = 231
          fromEnum SDLK_WORLD_72 = 232
          fromEnum SDLK_WORLD_73 = 233
          fromEnum SDLK_WORLD_74 = 234
          fromEnum SDLK_WORLD_75 = 235
          fromEnum SDLK_WORLD_76 = 236
          fromEnum SDLK_WORLD_77 = 237
          fromEnum SDLK_WORLD_78 = 238
          fromEnum SDLK_WORLD_79 = 239
          fromEnum SDLK_WORLD_80 = 240
          fromEnum SDLK_WORLD_81 = 241
          fromEnum SDLK_WORLD_82 = 242
          fromEnum SDLK_WORLD_83 = 243
          fromEnum SDLK_WORLD_84 = 244
          fromEnum SDLK_WORLD_85 = 245
          fromEnum SDLK_WORLD_86 = 246
          fromEnum SDLK_WORLD_87 = 247
          fromEnum SDLK_WORLD_88 = 248
          fromEnum SDLK_WORLD_89 = 249
          fromEnum SDLK_WORLD_90 = 250
          fromEnum SDLK_WORLD_91 = 251
          fromEnum SDLK_WORLD_92 = 252
          fromEnum SDLK_WORLD_93 = 253
          fromEnum SDLK_WORLD_94 = 254
          fromEnum SDLK_WORLD_95 = 255
          fromEnum SDLK_KP0 = 256
          fromEnum SDLK_KP1 = 257
          fromEnum SDLK_KP2 = 258
          fromEnum SDLK_KP3 = 259
          fromEnum SDLK_KP4 = 260
          fromEnum SDLK_KP5 = 261
          fromEnum SDLK_KP6 = 262
          fromEnum SDLK_KP7 = 263
          fromEnum SDLK_KP8 = 264
          fromEnum SDLK_KP9 = 265
          fromEnum SDLK_KP_PERIOD = 266
          fromEnum SDLK_KP_DIVIDE = 267
          fromEnum SDLK_KP_MULTIPLY = 268
          fromEnum SDLK_KP_MINUS = 269
          fromEnum SDLK_KP_PLUS = 270
          fromEnum SDLK_KP_ENTER = 271
          fromEnum SDLK_KP_EQUALS = 272
          fromEnum SDLK_UP = 273
          fromEnum SDLK_DOWN = 274
          fromEnum SDLK_RIGHT = 275
          fromEnum SDLK_LEFT = 276
          fromEnum SDLK_INSERT = 277
          fromEnum SDLK_HOME = 278
          fromEnum SDLK_END = 279
          fromEnum SDLK_PAGEUP = 280
          fromEnum SDLK_PAGEDOWN = 281
          fromEnum SDLK_F1 = 282
          fromEnum SDLK_F2 = 283
          fromEnum SDLK_F3 = 284
          fromEnum SDLK_F4 = 285
          fromEnum SDLK_F5 = 286
          fromEnum SDLK_F6 = 287
          fromEnum SDLK_F7 = 288
          fromEnum SDLK_F8 = 289
          fromEnum SDLK_F9 = 290
          fromEnum SDLK_F10 = 291
          fromEnum SDLK_F11 = 292
          fromEnum SDLK_F12 = 293
          fromEnum SDLK_F13 = 294
          fromEnum SDLK_F14 = 295
          fromEnum SDLK_F15 = 296
          fromEnum SDLK_NUMLOCK = 300
          fromEnum SDLK_CAPSLOCK = 301
          fromEnum SDLK_SCROLLOCK = 302
          fromEnum SDLK_RSHIFT = 303
          fromEnum SDLK_LSHIFT = 304
          fromEnum SDLK_RCTRL = 305
          fromEnum SDLK_LCTRL = 306
          fromEnum SDLK_RALT = 307
          fromEnum SDLK_LALT = 308
          fromEnum SDLK_RMETA = 309
          fromEnum SDLK_LMETA = 310
          fromEnum SDLK_LSUPER = 311
          fromEnum SDLK_RSUPER = 312
          fromEnum SDLK_MODE = 313
          fromEnum SDLK_COMPOSE = 314
          fromEnum SDLK_HELP = 315
          fromEnum SDLK_PRINT = 316
          fromEnum SDLK_SYSREQ = 317
          fromEnum SDLK_BREAK = 318
          fromEnum SDLK_MENU = 319
          fromEnum SDLK_POWER = 320
          fromEnum SDLK_EURO = 321
          fromEnum SDLK_UNDO = 322
          fromEnum SDLK_LAST = 323
          toEnum :: Word32 -> SDLKey
    toEnum Word32
    0 = SDLKey
    SDLK_UNKNOWN
          toEnum Word32
    8 = SDLKey
    SDLK_BACKSPACE
          toEnum Word32
    9 = SDLKey
    SDLK_TAB
          toEnum Word32
    12 = SDLKey
    SDLK_CLEAR
          toEnum Word32
    13 = SDLKey
    SDLK_RETURN
          toEnum Word32
    19 = SDLKey
    SDLK_PAUSE
          toEnum Word32
    27 = SDLKey
    SDLK_ESCAPE
          toEnum Word32
    32 = SDLKey
    SDLK_SPACE
          toEnum Word32
    33 = SDLKey
    SDLK_EXCLAIM
          toEnum Word32
    34 = SDLKey
    SDLK_QUOTEDBL
          toEnum Word32
    35 = SDLKey
    SDLK_HASH
          toEnum Word32
    36 = SDLKey
    SDLK_DOLLAR
          toEnum Word32
    38 = SDLKey
    SDLK_AMPERSAND
          toEnum Word32
    39 = SDLKey
    SDLK_QUOTE
          toEnum Word32
    40 = SDLKey
    SDLK_LEFTPAREN
          toEnum Word32
    41 = SDLKey
    SDLK_RIGHTPAREN
          toEnum Word32
    42 = SDLKey
    SDLK_ASTERISK
          toEnum Word32
    43 = SDLKey
    SDLK_PLUS
          toEnum Word32
    44 = SDLKey
    SDLK_COMMA
          toEnum Word32
    45 = SDLKey
    SDLK_MINUS
          toEnum Word32
    46 = SDLKey
    SDLK_PERIOD
          toEnum Word32
    47 = SDLKey
    SDLK_SLASH
          toEnum Word32
    48 = SDLKey
    SDLK_0
          toEnum Word32
    49 = SDLKey
    SDLK_1
          toEnum Word32
    50 = SDLKey
    SDLK_2
          toEnum Word32
    51 = SDLKey
    SDLK_3
          toEnum Word32
    52 = SDLKey
    SDLK_4
          toEnum Word32
    53 = SDLKey
    SDLK_5
          toEnum Word32
    54 = SDLKey
    SDLK_6
          toEnum Word32
    55 = SDLKey
    SDLK_7
          toEnum Word32
    56 = SDLKey
    SDLK_8
          toEnum Word32
    57 = SDLKey
    SDLK_9
          toEnum Word32
    58 = SDLKey
    SDLK_COLON
          toEnum Word32
    59 = SDLKey
    SDLK_SEMICOLON
          toEnum Word32
    60 = SDLKey
    SDLK_LESS
          toEnum Word32
    61 = SDLKey
    SDLK_EQUALS
          toEnum Word32
    62 = SDLKey
    SDLK_GREATER
          toEnum Word32
    63 = SDLKey
    SDLK_QUESTION
          toEnum Word32
    64 = SDLKey
    SDLK_AT
          toEnum Word32
    91 = SDLKey
    SDLK_LEFTBRACKET
          toEnum Word32
    92 = SDLKey
    SDLK_BACKSLASH
          toEnum Word32
    93 = SDLKey
    SDLK_RIGHTBRACKET
          toEnum Word32
    94 = SDLKey
    SDLK_CARET
          toEnum Word32
    95 = SDLKey
    SDLK_UNDERSCORE
          toEnum Word32
    96 = SDLKey
    SDLK_BACKQUOTE
          toEnum Word32
    97 = SDLKey
    SDLK_a
          toEnum Word32
    98 = SDLKey
    SDLK_b
          toEnum Word32
    99 = SDLKey
    SDLK_c
          toEnum Word32
    100 = SDLKey
    SDLK_d
          toEnum Word32
    101 = SDLKey
    SDLK_e
          toEnum Word32
    102 = SDLKey
    SDLK_f
          toEnum Word32
    103 = SDLKey
    SDLK_g
          toEnum Word32
    104 = SDLKey
    SDLK_h
          toEnum Word32
    105 = SDLKey
    SDLK_i
          toEnum Word32
    106 = SDLKey
    SDLK_j
          toEnum Word32
    107 = SDLKey
    SDLK_k
          toEnum Word32
    108 = SDLKey
    SDLK_l
          toEnum Word32
    109 = SDLKey
    SDLK_m
          toEnum Word32
    110 = SDLKey
    SDLK_n
          toEnum Word32
    111 = SDLKey
    SDLK_o
          toEnum Word32
    112 = SDLKey
    SDLK_p
          toEnum Word32
    113 = SDLKey
    SDLK_q
          toEnum Word32
    114 = SDLKey
    SDLK_r
          toEnum Word32
    115 = SDLKey
    SDLK_s
          toEnum Word32
    116 = SDLKey
    SDLK_t
          toEnum Word32
    117 = SDLKey
    SDLK_u
          toEnum Word32
    118 = SDLKey
    SDLK_v
          toEnum Word32
    119 = SDLKey
    SDLK_w
          toEnum Word32
    120 = SDLKey
    SDLK_x
          toEnum Word32
    121 = SDLKey
    SDLK_y
          toEnum Word32
    122 = SDLKey
    SDLK_z
          toEnum Word32
    127 = SDLKey
    SDLK_DELETE
          toEnum Word32
    160 = SDLKey
    SDLK_WORLD_0
          toEnum Word32
    161 = SDLKey
    SDLK_WORLD_1
          toEnum Word32
    162 = SDLKey
    SDLK_WORLD_2
          toEnum Word32
    163 = SDLKey
    SDLK_WORLD_3
          toEnum Word32
    164 = SDLKey
    SDLK_WORLD_4
          toEnum Word32
    165 = SDLKey
    SDLK_WORLD_5
          toEnum Word32
    166 = SDLKey
    SDLK_WORLD_6
          toEnum Word32
    167 = SDLKey
    SDLK_WORLD_7
          toEnum Word32
    168 = SDLKey
    SDLK_WORLD_8
          toEnum Word32
    169 = SDLKey
    SDLK_WORLD_9
          toEnum Word32
    170 = SDLKey
    SDLK_WORLD_10
          toEnum Word32
    171 = SDLKey
    SDLK_WORLD_11
          toEnum Word32
    172 = SDLKey
    SDLK_WORLD_12
          toEnum Word32
    173 = SDLKey
    SDLK_WORLD_13
          toEnum Word32
    174 = SDLKey
    SDLK_WORLD_14
          toEnum Word32
    175 = SDLKey
    SDLK_WORLD_15
          toEnum Word32
    176 = SDLKey
    SDLK_WORLD_16
          toEnum Word32
    177 = SDLKey
    SDLK_WORLD_17
          toEnum Word32
    178 = SDLKey
    SDLK_WORLD_18
          toEnum Word32
    179 = SDLKey
    SDLK_WORLD_19
          toEnum Word32
    180 = SDLKey
    SDLK_WORLD_20
          toEnum Word32
    181 = SDLKey
    SDLK_WORLD_21
          toEnum Word32
    182 = SDLKey
    SDLK_WORLD_22
          toEnum Word32
    183 = SDLKey
    SDLK_WORLD_23
          toEnum Word32
    184 = SDLKey
    SDLK_WORLD_24
          toEnum Word32
    185 = SDLKey
    SDLK_WORLD_25
          toEnum Word32
    186 = SDLKey
    SDLK_WORLD_26
          toEnum Word32
    187 = SDLKey
    SDLK_WORLD_27
          toEnum Word32
    188 = SDLKey
    SDLK_WORLD_28
          toEnum Word32
    189 = SDLKey
    SDLK_WORLD_29
          toEnum Word32
    190 = SDLKey
    SDLK_WORLD_30
          toEnum Word32
    191 = SDLKey
    SDLK_WORLD_31
          toEnum Word32
    192 = SDLKey
    SDLK_WORLD_32
          toEnum Word32
    193 = SDLKey
    SDLK_WORLD_33
          toEnum Word32
    194 = SDLKey
    SDLK_WORLD_34
          toEnum Word32
    195 = SDLKey
    SDLK_WORLD_35
          toEnum Word32
    196 = SDLKey
    SDLK_WORLD_36
          toEnum Word32
    197 = SDLKey
    SDLK_WORLD_37
          toEnum Word32
    198 = SDLKey
    SDLK_WORLD_38
          toEnum Word32
    199 = SDLKey
    SDLK_WORLD_39
          toEnum Word32
    200 = SDLKey
    SDLK_WORLD_40
          toEnum Word32
    201 = SDLKey
    SDLK_WORLD_41
          toEnum Word32
    202 = SDLKey
    SDLK_WORLD_42
          toEnum Word32
    203 = SDLKey
    SDLK_WORLD_43
          toEnum Word32
    204 = SDLKey
    SDLK_WORLD_44
          toEnum Word32
    205 = SDLKey
    SDLK_WORLD_45
          toEnum Word32
    206 = SDLKey
    SDLK_WORLD_46
          toEnum Word32
    207 = SDLKey
    SDLK_WORLD_47
          toEnum Word32
    208 = SDLKey
    SDLK_WORLD_48
          toEnum Word32
    209 = SDLKey
    SDLK_WORLD_49
          toEnum Word32
    210 = SDLKey
    SDLK_WORLD_50
          toEnum Word32
    211 = SDLKey
    SDLK_WORLD_51
          toEnum Word32
    212 = SDLKey
    SDLK_WORLD_52
          toEnum Word32
    213 = SDLKey
    SDLK_WORLD_53
          toEnum Word32
    214 = SDLKey
    SDLK_WORLD_54
          toEnum Word32
    215 = SDLKey
    SDLK_WORLD_55
          toEnum Word32
    216 = SDLKey
    SDLK_WORLD_56
          toEnum Word32
    217 = SDLKey
    SDLK_WORLD_57
          toEnum Word32
    218 = SDLKey
    SDLK_WORLD_58
          toEnum Word32
    219 = SDLKey
    SDLK_WORLD_59
          toEnum Word32
    220 = SDLKey
    SDLK_WORLD_60
          toEnum Word32
    221 = SDLKey
    SDLK_WORLD_61
          toEnum Word32
    222 = SDLKey
    SDLK_WORLD_62
          toEnum Word32
    223 = SDLKey
    SDLK_WORLD_63
          toEnum Word32
    224 = SDLKey
    SDLK_WORLD_64
          toEnum Word32
    225 = SDLKey
    SDLK_WORLD_65
          toEnum Word32
    226 = SDLKey
    SDLK_WORLD_66
          toEnum Word32
    227 = SDLKey
    SDLK_WORLD_67
          toEnum Word32
    228 = SDLKey
    SDLK_WORLD_68
          toEnum Word32
    229 = SDLKey
    SDLK_WORLD_69
          toEnum Word32
    230 = SDLKey
    SDLK_WORLD_70
          toEnum Word32
    231 = SDLKey
    SDLK_WORLD_71
          toEnum Word32
    232 = SDLKey
    SDLK_WORLD_72
          toEnum Word32
    233 = SDLKey
    SDLK_WORLD_73
          toEnum Word32
    234 = SDLKey
    SDLK_WORLD_74
          toEnum Word32
    235 = SDLKey
    SDLK_WORLD_75
          toEnum Word32
    236 = SDLKey
    SDLK_WORLD_76
          toEnum Word32
    237 = SDLKey
    SDLK_WORLD_77
          toEnum Word32
    238 = SDLKey
    SDLK_WORLD_78
          toEnum Word32
    239 = SDLKey
    SDLK_WORLD_79
          toEnum Word32
    240 = SDLKey
    SDLK_WORLD_80
          toEnum Word32
    241 = SDLKey
    SDLK_WORLD_81
          toEnum Word32
    242 = SDLKey
    SDLK_WORLD_82
          toEnum Word32
    243 = SDLKey
    SDLK_WORLD_83
          toEnum Word32
    244 = SDLKey
    SDLK_WORLD_84
          toEnum Word32
    245 = SDLKey
    SDLK_WORLD_85
          toEnum Word32
    246 = SDLKey
    SDLK_WORLD_86
          toEnum Word32
    247 = SDLKey
    SDLK_WORLD_87
          toEnum Word32
    248 = SDLKey
    SDLK_WORLD_88
          toEnum Word32
    249 = SDLKey
    SDLK_WORLD_89
          toEnum Word32
    250 = SDLKey
    SDLK_WORLD_90
          toEnum Word32
    251 = SDLKey
    SDLK_WORLD_91
          toEnum Word32
    252 = SDLKey
    SDLK_WORLD_92
          toEnum Word32
    253 = SDLKey
    SDLK_WORLD_93
          toEnum Word32
    254 = SDLKey
    SDLK_WORLD_94
          toEnum Word32
    255 = SDLKey
    SDLK_WORLD_95
          toEnum Word32
    256 = SDLKey
    SDLK_KP0
          toEnum Word32
    257 = SDLKey
    SDLK_KP1
          toEnum Word32
    258 = SDLKey
    SDLK_KP2
          toEnum Word32
    259 = SDLKey
    SDLK_KP3
          toEnum Word32
    260 = SDLKey
    SDLK_KP4
          toEnum Word32
    261 = SDLKey
    SDLK_KP5
          toEnum Word32
    262 = SDLKey
    SDLK_KP6
          toEnum Word32
    263 = SDLKey
    SDLK_KP7
          toEnum Word32
    264 = SDLKey
    SDLK_KP8
          toEnum Word32
    265 = SDLKey
    SDLK_KP9
          toEnum Word32
    266 = SDLKey
    SDLK_KP_PERIOD
          toEnum Word32
    267 = SDLKey
    SDLK_KP_DIVIDE
          toEnum Word32
    268 = SDLKey
    SDLK_KP_MULTIPLY
          toEnum Word32
    269 = SDLKey
    SDLK_KP_MINUS
          toEnum Word32
    270 = SDLKey
    SDLK_KP_PLUS
          toEnum Word32
    271 = SDLKey
    SDLK_KP_ENTER
          toEnum Word32
    272 = SDLKey
    SDLK_KP_EQUALS
          toEnum Word32
    273 = SDLKey
    SDLK_UP
          toEnum Word32
    274 = SDLKey
    SDLK_DOWN
          toEnum Word32
    275 = SDLKey
    SDLK_RIGHT
          toEnum Word32
    276 = SDLKey
    SDLK_LEFT
          toEnum Word32
    277 = SDLKey
    SDLK_INSERT
          toEnum Word32
    278 = SDLKey
    SDLK_HOME
          toEnum Word32
    279 = SDLKey
    SDLK_END
          toEnum Word32
    280 = SDLKey
    SDLK_PAGEUP
          toEnum Word32
    281 = SDLKey
    SDLK_PAGEDOWN
          toEnum Word32
    282 = SDLKey
    SDLK_F1
          toEnum Word32
    283 = SDLKey
    SDLK_F2
          toEnum Word32
    284 = SDLKey
    SDLK_F3
          toEnum Word32
    285 = SDLKey
    SDLK_F4
          toEnum Word32
    286 = SDLKey
    SDLK_F5
          toEnum Word32
    287 = SDLKey
    SDLK_F6
          toEnum Word32
    288 = SDLKey
    SDLK_F7
          toEnum Word32
    289 = SDLKey
    SDLK_F8
          toEnum Word32
    290 = SDLKey
    SDLK_F9
          toEnum Word32
    291 = SDLKey
    SDLK_F10
          toEnum Word32
    292 = SDLKey
    SDLK_F11
          toEnum Word32
    293 = SDLKey
    SDLK_F12
          toEnum Word32
    294 = SDLKey
    SDLK_F13
          toEnum Word32
    295 = SDLKey
    SDLK_F14
          toEnum Word32
    296 = SDLKey
    SDLK_F15
          toEnum Word32
    300 = SDLKey
    SDLK_NUMLOCK
          toEnum Word32
    301 = SDLKey
    SDLK_CAPSLOCK
          toEnum Word32
    302 = SDLKey
    SDLK_SCROLLOCK
          toEnum Word32
    303 = SDLKey
    SDLK_RSHIFT
          toEnum Word32
    304 = SDLKey
    SDLK_LSHIFT
          toEnum Word32
    305 = SDLKey
    SDLK_RCTRL
          toEnum Word32
    306 = SDLKey
    SDLK_LCTRL
          toEnum Word32
    307 = SDLKey
    SDLK_RALT
          toEnum Word32
    308 = SDLKey
    SDLK_LALT
          toEnum Word32
    309 = SDLKey
    SDLK_RMETA
          toEnum Word32
    310 = SDLKey
    SDLK_LMETA
          toEnum Word32
    311 = SDLKey
    SDLK_LSUPER
          toEnum Word32
    312 = SDLKey
    SDLK_RSUPER
          toEnum Word32
    313 = SDLKey
    SDLK_MODE
          toEnum Word32
    314 = SDLKey
    SDLK_COMPOSE
          toEnum Word32
    315 = SDLKey
    SDLK_HELP
          toEnum Word32
    316 = SDLKey
    SDLK_PRINT
          toEnum Word32
    317 = SDLKey
    SDLK_SYSREQ
          toEnum Word32
    318 = SDLKey
    SDLK_BREAK
          toEnum Word32
    319 = SDLKey
    SDLK_MENU
          toEnum Word32
    320 = SDLKey
    SDLK_POWER
          toEnum Word32
    321 = SDLKey
    SDLK_EURO
          toEnum Word32
    322 = SDLKey
    SDLK_UNDO
          toEnum Word32
    323 = SDLKey
    SDLK_LAST
          toEnum Word32
    _ = String -> SDLKey
    forall a. HasCallStack => String -> a
    error String
    "Graphics.UI.SDL.Keysym.toEnum: bad argument"
          succ :: SDLKey -> SDLKey
    succ SDLKey
    SDLK_UNKNOWN = SDLKey
    SDLK_FIRST
          succ SDLKey
    SDLK_FIRST = SDLKey
    SDLK_BACKSPACE
          succ SDLKey
    SDLK_BACKSPACE = SDLKey
    SDLK_TAB
          succ SDLKey
    SDLK_TAB = SDLKey
    SDLK_CLEAR
          succ SDLKey
    SDLK_CLEAR = SDLKey
    SDLK_RETURN
          succ SDLKey
    SDLK_RETURN = SDLKey
    SDLK_PAUSE
          succ SDLKey
    SDLK_PAUSE = SDLKey
    SDLK_ESCAPE
          succ SDLKey
    SDLK_ESCAPE = SDLKey
    SDLK_SPACE
          succ SDLKey
    SDLK_SPACE = SDLKey
    SDLK_EXCLAIM
          succ SDLKey
    SDLK_EXCLAIM = SDLKey
    SDLK_QUOTEDBL
          succ SDLKey
    SDLK_QUOTEDBL = SDLKey
    SDLK_HASH
          succ SDLKey
    SDLK_HASH = SDLKey
    SDLK_DOLLAR
          succ SDLKey
    SDLK_DOLLAR = SDLKey
    SDLK_AMPERSAND
          succ SDLKey
    SDLK_AMPERSAND = SDLKey
    SDLK_QUOTE
          succ SDLKey
    SDLK_QUOTE = SDLKey
    SDLK_LEFTPAREN
          succ SDLKey
    SDLK_LEFTPAREN = SDLKey
    SDLK_RIGHTPAREN
          succ SDLKey
    SDLK_RIGHTPAREN = SDLKey
    SDLK_ASTERISK
          succ SDLKey
    SDLK_ASTERISK = SDLKey
    SDLK_PLUS
          succ SDLKey
    SDLK_PLUS = SDLKey
    SDLK_COMMA
          succ SDLKey
    SDLK_COMMA = SDLKey
    SDLK_MINUS
          succ SDLKey
    SDLK_MINUS = SDLKey
    SDLK_PERIOD
          succ SDLKey
    SDLK_PERIOD = SDLKey
    SDLK_SLASH
          succ SDLKey
    SDLK_SLASH = SDLKey
    SDLK_0
          succ SDLKey
    SDLK_0 = SDLKey
    SDLK_1
          succ SDLKey
    SDLK_1 = SDLKey
    SDLK_2
          succ SDLKey
    SDLK_2 = SDLKey
    SDLK_3
          succ SDLKey
    SDLK_3 = SDLKey
    SDLK_4
          succ SDLKey
    SDLK_4 = SDLKey
    SDLK_5
          succ SDLKey
    SDLK_5 = SDLKey
    SDLK_6
          succ SDLKey
    SDLK_6 = SDLKey
    SDLK_7
          succ SDLKey
    SDLK_7 = SDLKey
    SDLK_8
          succ SDLKey
    SDLK_8 = SDLKey
    SDLK_9
          succ SDLKey
    SDLK_9 = SDLKey
    SDLK_COLON
          succ SDLKey
    SDLK_COLON = SDLKey
    SDLK_SEMICOLON
          succ SDLKey
    SDLK_SEMICOLON = SDLKey
    SDLK_LESS
          succ SDLKey
    SDLK_LESS = SDLKey
    SDLK_EQUALS
          succ SDLKey
    SDLK_EQUALS = SDLKey
    SDLK_GREATER
          succ SDLKey
    SDLK_GREATER = SDLKey
    SDLK_QUESTION
          succ SDLKey
    SDLK_QUESTION = SDLKey
    SDLK_AT
          succ SDLKey
    SDLK_AT = SDLKey
    SDLK_LEFTBRACKET
          succ SDLKey
    SDLK_LEFTBRACKET = SDLKey
    SDLK_BACKSLASH
          succ SDLKey
    SDLK_BACKSLASH = SDLKey
    SDLK_RIGHTBRACKET
          succ SDLKey
    SDLK_RIGHTBRACKET = SDLKey
    SDLK_CARET
          succ SDLKey
    SDLK_CARET = SDLKey
    SDLK_UNDERSCORE
          succ SDLKey
    SDLK_UNDERSCORE = SDLKey
    SDLK_BACKQUOTE
          succ SDLKey
    SDLK_BACKQUOTE = SDLKey
    SDLK_a
          succ SDLKey
    SDLK_a = SDLKey
    SDLK_b
          succ SDLKey
    SDLK_b = SDLKey
    SDLK_c
          succ SDLKey
    SDLK_c = SDLKey
    SDLK_d
          succ SDLKey
    SDLK_d = SDLKey
    SDLK_e
          succ SDLKey
    SDLK_e = SDLKey
    SDLK_f
          succ SDLKey
    SDLK_f = SDLKey
    SDLK_g
          succ SDLKey
    SDLK_g = SDLKey
    SDLK_h
          succ SDLKey
    SDLK_h = SDLKey
    SDLK_i
          succ SDLKey
    SDLK_i = SDLKey
    SDLK_j
          succ SDLKey
    SDLK_j = SDLKey
    SDLK_k
          succ SDLKey
    SDLK_k = SDLKey
    SDLK_l
          succ SDLKey
    SDLK_l = SDLKey
    SDLK_m
          succ SDLKey
    SDLK_m = SDLKey
    SDLK_n
          succ SDLKey
    SDLK_n = SDLKey
    SDLK_o
          succ SDLKey
    SDLK_o = SDLKey
    SDLK_p
          succ SDLKey
    SDLK_p = SDLKey
    SDLK_q
          succ SDLKey
    SDLK_q = SDLKey
    SDLK_r
          succ SDLKey
    SDLK_r = SDLKey
    SDLK_s
          succ SDLKey
    SDLK_s = SDLKey
    SDLK_t
          succ SDLKey
    SDLK_t = SDLKey
    SDLK_u
          succ SDLKey
    SDLK_u = SDLKey
    SDLK_v
          succ SDLKey
    SDLK_v = SDLKey
    SDLK_w
          succ SDLKey
    SDLK_w = SDLKey
    SDLK_x
          succ SDLKey
    SDLK_x = SDLKey
    SDLK_y
          succ SDLKey
    SDLK_y = SDLKey
    SDLK_z
          succ SDLKey
    SDLK_z = SDLKey
    SDLK_DELETE
          succ SDLKey
    SDLK_DELETE = SDLKey
    SDLK_WORLD_0
          succ SDLKey
    SDLK_WORLD_0 = SDLKey
    SDLK_WORLD_1
          succ SDLKey
    SDLK_WORLD_1 = SDLKey
    SDLK_WORLD_2
          succ SDLKey
    SDLK_WORLD_2 = SDLKey
    SDLK_WORLD_3
          succ SDLKey
    SDLK_WORLD_3 = SDLKey
    SDLK_WORLD_4
          succ SDLKey
    SDLK_WORLD_4 = SDLKey
    SDLK_WORLD_5
          succ SDLKey
    SDLK_WORLD_5 = SDLKey
    SDLK_WORLD_6
          succ SDLKey
    SDLK_WORLD_6 = SDLKey
    SDLK_WORLD_7
          succ SDLKey
    SDLK_WORLD_7 = SDLKey
    SDLK_WORLD_8
          succ SDLKey
    SDLK_WORLD_8 = SDLKey
    SDLK_WORLD_9
          succ SDLKey
    SDLK_WORLD_9 = SDLKey
    SDLK_WORLD_10
          succ SDLKey
    SDLK_WORLD_10 = SDLKey
    SDLK_WORLD_11
          succ SDLKey
    SDLK_WORLD_11 = SDLKey
    SDLK_WORLD_12
          succ SDLKey
    SDLK_WORLD_12 = SDLKey
    SDLK_WORLD_13
          succ SDLKey
    SDLK_WORLD_13 = SDLKey
    SDLK_WORLD_14
          succ SDLKey
    SDLK_WORLD_14 = SDLKey
    SDLK_WORLD_15
          succ SDLKey
    SDLK_WORLD_15 = SDLKey
    SDLK_WORLD_16
          succ SDLKey
    SDLK_WORLD_16 = SDLKey
    SDLK_WORLD_17
          succ SDLKey
    SDLK_WORLD_17 = SDLKey
    SDLK_WORLD_18
          succ SDLKey
    SDLK_WORLD_18 = SDLKey
    SDLK_WORLD_19
          succ SDLKey
    SDLK_WORLD_19 = SDLKey
    SDLK_WORLD_20
          succ SDLKey
    SDLK_WORLD_20 = SDLKey
    SDLK_WORLD_21
          succ SDLKey
    SDLK_WORLD_21 = SDLKey
    SDLK_WORLD_22
          succ SDLKey
    SDLK_WORLD_22 = SDLKey
    SDLK_WORLD_23
          succ SDLKey
    SDLK_WORLD_23 = SDLKey
    SDLK_WORLD_24
          succ SDLKey
    SDLK_WORLD_24 = SDLKey
    SDLK_WORLD_25
          succ SDLKey
    SDLK_WORLD_25 = SDLKey
    SDLK_WORLD_26
          succ SDLKey
    SDLK_WORLD_26 = SDLKey
    SDLK_WORLD_27
          succ SDLKey
    SDLK_WORLD_27 = SDLKey
    SDLK_WORLD_28
          succ SDLKey
    SDLK_WORLD_28 = SDLKey
    SDLK_WORLD_29
          succ SDLKey
    SDLK_WORLD_29 = SDLKey
    SDLK_WORLD_30
          succ SDLKey
    SDLK_WORLD_30 = SDLKey
    SDLK_WORLD_31
          succ SDLKey
    SDLK_WORLD_31 = SDLKey
    SDLK_WORLD_32
          succ SDLKey
    SDLK_WORLD_32 = SDLKey
    SDLK_WORLD_33
          succ SDLKey
    SDLK_WORLD_33 = SDLKey
    SDLK_WORLD_34
          succ SDLKey
    SDLK_WORLD_34 = SDLKey
    SDLK_WORLD_35
          succ SDLKey
    SDLK_WORLD_35 = SDLKey
    SDLK_WORLD_36
          succ SDLKey
    SDLK_WORLD_36 = SDLKey
    SDLK_WORLD_37
          succ SDLKey
    SDLK_WORLD_37 = SDLKey
    SDLK_WORLD_38
          succ SDLKey
    SDLK_WORLD_38 = SDLKey
    SDLK_WORLD_39
          succ SDLKey
    SDLK_WORLD_39 = SDLKey
    SDLK_WORLD_40
          succ SDLKey
    SDLK_WORLD_40 = SDLKey
    SDLK_WORLD_41
          succ SDLKey
    SDLK_WORLD_41 = SDLKey
    SDLK_WORLD_42
          succ SDLKey
    SDLK_WORLD_42 = SDLKey
    SDLK_WORLD_43
          succ SDLKey
    SDLK_WORLD_43 = SDLKey
    SDLK_WORLD_44
          succ SDLKey
    SDLK_WORLD_44 = SDLKey
    SDLK_WORLD_45
          succ SDLKey
    SDLK_WORLD_45 = SDLKey
    SDLK_WORLD_46
          succ SDLKey
    SDLK_WORLD_46 = SDLKey
    SDLK_WORLD_47
          succ SDLKey
    SDLK_WORLD_47 = SDLKey
    SDLK_WORLD_48
          succ SDLKey
    SDLK_WORLD_48 = SDLKey
    SDLK_WORLD_49
          succ SDLKey
    SDLK_WORLD_49 = SDLKey
    SDLK_WORLD_50
          succ SDLKey
    SDLK_WORLD_50 = SDLKey
    SDLK_WORLD_51
          succ SDLKey
    SDLK_WORLD_51 = SDLKey
    SDLK_WORLD_52
          succ SDLKey
    SDLK_WORLD_52 = SDLKey
    SDLK_WORLD_53
          succ SDLKey
    SDLK_WORLD_53 = SDLKey
    SDLK_WORLD_54
          succ SDLKey
    SDLK_WORLD_54 = SDLKey
    SDLK_WORLD_55
          succ SDLKey
    SDLK_WORLD_55 = SDLKey
    SDLK_WORLD_56
          succ SDLKey
    SDLK_WORLD_56 = SDLKey
    SDLK_WORLD_57
          succ SDLKey
    SDLK_WORLD_57 = SDLKey
    SDLK_WORLD_58
          succ SDLKey
    SDLK_WORLD_58 = SDLKey
    SDLK_WORLD_59
          succ SDLKey
    SDLK_WORLD_59 = SDLKey
    SDLK_WORLD_60
          succ SDLKey
    SDLK_WORLD_60 = SDLKey
    SDLK_WORLD_61
          succ SDLKey
    SDLK_WORLD_61 = SDLKey
    SDLK_WORLD_62
          succ SDLKey
    SDLK_WORLD_62 = SDLKey
    SDLK_WORLD_63
          succ SDLKey
    SDLK_WORLD_63 = SDLKey
    SDLK_WORLD_64
          succ SDLKey
    SDLK_WORLD_64 = SDLKey
    SDLK_WORLD_65
          succ SDLKey
    SDLK_WORLD_65 = SDLKey
    SDLK_WORLD_66
          succ SDLKey
    SDLK_WORLD_66 = SDLKey
    SDLK_WORLD_67
          succ SDLKey
    SDLK_WORLD_67 = SDLKey
    SDLK_WORLD_68
          succ SDLKey
    SDLK_WORLD_68 = SDLKey
    SDLK_WORLD_69
          succ SDLKey
    SDLK_WORLD_69 = SDLKey
    SDLK_WORLD_70
          succ SDLKey
    SDLK_WORLD_70 = SDLKey
    SDLK_WORLD_71
          succ SDLKey
    SDLK_WORLD_71 = SDLKey
    SDLK_WORLD_72
          succ SDLKey
    SDLK_WORLD_72 = SDLKey
    SDLK_WORLD_73
          succ SDLKey
    SDLK_WORLD_73 = SDLKey
    SDLK_WORLD_74
          succ SDLKey
    SDLK_WORLD_74 = SDLKey
    SDLK_WORLD_75
          succ SDLKey
    SDLK_WORLD_75 = SDLKey
    SDLK_WORLD_76
          succ SDLKey
    SDLK_WORLD_76 = SDLKey
    SDLK_WORLD_77
          succ SDLKey
    SDLK_WORLD_77 = SDLKey
    SDLK_WORLD_78
          succ SDLKey
    SDLK_WORLD_78 = SDLKey
    SDLK_WORLD_79
          succ SDLKey
    SDLK_WORLD_79 = SDLKey
    SDLK_WORLD_80
          succ SDLKey
    SDLK_WORLD_80 = SDLKey
    SDLK_WORLD_81
          succ SDLKey
    SDLK_WORLD_81 = SDLKey
    SDLK_WORLD_82
          succ SDLKey
    SDLK_WORLD_82 = SDLKey
    SDLK_WORLD_83
          succ SDLKey
    SDLK_WORLD_83 = SDLKey
    SDLK_WORLD_84
          succ SDLKey
    SDLK_WORLD_84 = SDLKey
    SDLK_WORLD_85
          succ SDLKey
    SDLK_WORLD_85 = SDLKey
    SDLK_WORLD_86
          succ SDLKey
    SDLK_WORLD_86 = SDLKey
    SDLK_WORLD_87
          succ SDLKey
    SDLK_WORLD_87 = SDLKey
    SDLK_WORLD_88
          succ SDLKey
    SDLK_WORLD_88 = SDLKey
    SDLK_WORLD_89
          succ SDLKey
    SDLK_WORLD_89 = SDLKey
    SDLK_WORLD_90
          succ SDLKey
    SDLK_WORLD_90 = SDLKey
    SDLK_WORLD_91
          succ SDLKey
    SDLK_WORLD_91 = SDLKey
    SDLK_WORLD_92
          succ SDLKey
    SDLK_WORLD_92 = SDLKey
    SDLK_WORLD_93
          succ SDLKey
    SDLK_WORLD_93 = SDLKey
    SDLK_WORLD_94
          succ SDLKey
    SDLK_WORLD_94 = SDLKey
    SDLK_WORLD_95
          succ SDLKey
    SDLK_WORLD_95 = SDLKey
    SDLK_KP0
          succ SDLKey
    SDLK_KP0 = SDLKey
    SDLK_KP1
          succ SDLKey
    SDLK_KP1 = SDLKey
    SDLK_KP2
          succ SDLKey
    SDLK_KP2 = SDLKey
    SDLK_KP3
          succ SDLKey
    SDLK_KP3 = SDLKey
    SDLK_KP4
          succ SDLKey
    SDLK_KP4 = SDLKey
    SDLK_KP5
          succ SDLKey
    SDLK_KP5 = SDLKey
    SDLK_KP6
          succ SDLKey
    SDLK_KP6 = SDLKey
    SDLK_KP7
          succ SDLKey
    SDLK_KP7 = SDLKey
    SDLK_KP8
          succ SDLKey
    SDLK_KP8 = SDLKey
    SDLK_KP9
          succ SDLKey
    SDLK_KP9 = SDLKey
    SDLK_KP_PERIOD
          succ SDLKey
    SDLK_KP_PERIOD = SDLKey
    SDLK_KP_DIVIDE
          succ SDLKey
    SDLK_KP_DIVIDE = SDLKey
    SDLK_KP_MULTIPLY
          succ SDLKey
    SDLK_KP_MULTIPLY = SDLKey
    SDLK_KP_MINUS
          succ SDLKey
    SDLK_KP_MINUS = SDLKey
    SDLK_KP_PLUS
          succ SDLKey
    SDLK_KP_PLUS = SDLKey
    SDLK_KP_ENTER
          succ SDLKey
    SDLK_KP_ENTER = SDLKey
    SDLK_KP_EQUALS
          succ SDLKey
    SDLK_KP_EQUALS = SDLKey
    SDLK_UP
          succ SDLKey
    SDLK_UP = SDLKey
    SDLK_DOWN
          succ SDLKey
    SDLK_DOWN = SDLKey
    SDLK_RIGHT
          succ SDLKey
    SDLK_RIGHT = SDLKey
    SDLK_LEFT
          succ SDLKey
    SDLK_LEFT = SDLKey
    SDLK_INSERT
          succ SDLKey
    SDLK_INSERT = SDLKey
    SDLK_HOME
          succ SDLKey
    SDLK_HOME = SDLKey
    SDLK_END
          succ SDLKey
    SDLK_END = SDLKey
    SDLK_PAGEUP
          succ SDLKey
    SDLK_PAGEUP = SDLKey
    SDLK_PAGEDOWN
          succ SDLKey
    SDLK_PAGEDOWN = SDLKey
    SDLK_F1
          succ SDLKey
    SDLK_F1 = SDLKey
    SDLK_F2
          succ SDLKey
    SDLK_F2 = SDLKey
    SDLK_F3
          succ SDLKey
    SDLK_F3 = SDLKey
    SDLK_F4
          succ SDLKey
    SDLK_F4 = SDLKey
    SDLK_F5
          succ SDLKey
    SDLK_F5 = SDLKey
    SDLK_F6
          succ SDLKey
    SDLK_F6 = SDLKey
    SDLK_F7
          succ SDLKey
    SDLK_F7 = SDLKey
    SDLK_F8
          succ SDLKey
    SDLK_F8 = SDLKey
    SDLK_F9
          succ SDLKey
    SDLK_F9 = SDLKey
    SDLK_F10
          succ SDLKey
    SDLK_F10 = SDLKey
    SDLK_F11
          succ SDLKey
    SDLK_F11 = SDLKey
    SDLK_F12
          succ SDLKey
    SDLK_F12 = SDLKey
    SDLK_F13
          succ SDLKey
    SDLK_F13 = SDLKey
    SDLK_F14
          succ SDLKey
    SDLK_F14 = SDLKey
    SDLK_F15
          succ SDLKey
    SDLK_F15 = SDLKey
    SDLK_NUMLOCK
          succ SDLKey
    SDLK_NUMLOCK = SDLKey
    SDLK_CAPSLOCK
          succ SDLKey
    SDLK_CAPSLOCK = SDLKey
    SDLK_SCROLLOCK
          succ SDLKey
    SDLK_SCROLLOCK = SDLKey
    SDLK_RSHIFT
          succ SDLKey
    SDLK_RSHIFT = SDLKey
    SDLK_LSHIFT
          succ SDLKey
    SDLK_LSHIFT = SDLKey
    SDLK_RCTRL
          succ SDLKey
    SDLK_RCTRL = SDLKey
    SDLK_LCTRL
          succ SDLKey
    SDLK_LCTRL = SDLKey
    SDLK_RALT
          succ SDLKey
    SDLK_RALT = SDLKey
    SDLK_LALT
          succ SDLKey
    SDLK_LALT = SDLKey
    SDLK_RMETA
          succ SDLKey
    SDLK_RMETA = SDLKey
    SDLK_LMETA
          succ SDLKey
    SDLK_LMETA = SDLKey
    SDLK_LSUPER
          succ SDLKey
    SDLK_LSUPER = SDLKey
    SDLK_RSUPER
          succ SDLKey
    SDLK_RSUPER = SDLKey
    SDLK_MODE
          succ SDLKey
    SDLK_MODE = SDLKey
    SDLK_COMPOSE
          succ SDLKey
    SDLK_COMPOSE = SDLKey
    SDLK_HELP
          succ SDLKey
    SDLK_HELP = SDLKey
    SDLK_PRINT
          succ SDLKey
    SDLK_PRINT = SDLKey
    SDLK_SYSREQ
          succ SDLKey
    SDLK_SYSREQ = SDLKey
    SDLK_BREAK
          succ SDLKey
    SDLK_BREAK = SDLKey
    SDLK_MENU
          succ SDLKey
    SDLK_MENU = SDLKey
    SDLK_POWER
          succ SDLKey
    SDLK_POWER = SDLKey
    SDLK_EURO
          succ SDLKey
    SDLK_EURO = SDLKey
    SDLK_UNDO
          succ SDLKey
    SDLK_UNDO = SDLKey
    SDLK_LAST
          succ SDLKey
    _ = String -> SDLKey
    forall a. HasCallStack => String -> a
    error String
    "Graphics.UI.SDL.Keysym.succ: bad argument"
          pred :: SDLKey -> SDLKey
    pred SDLKey
    SDLK_FIRST = SDLKey
    SDLK_UNKNOWN
          pred SDLKey
    SDLK_BACKSPACE = SDLKey
    SDLK_FIRST
          pred SDLKey
    SDLK_TAB = SDLKey
    SDLK_BACKSPACE
          pred SDLKey
    SDLK_CLEAR = SDLKey
    SDLK_TAB
          pred SDLKey
    SDLK_RETURN = SDLKey
    SDLK_CLEAR
          pred SDLKey
    SDLK_PAUSE = SDLKey
    SDLK_RETURN
          pred SDLKey
    SDLK_ESCAPE = SDLKey
    SDLK_PAUSE
          pred SDLKey
    SDLK_SPACE = SDLKey
    SDLK_ESCAPE
          pred SDLKey
    SDLK_EXCLAIM = SDLKey
    SDLK_SPACE
          pred SDLKey
    SDLK_QUOTEDBL = SDLKey
    SDLK_EXCLAIM
          pred SDLKey
    SDLK_HASH = SDLKey
    SDLK_QUOTEDBL
          pred SDLKey
    SDLK_DOLLAR = SDLKey
    SDLK_HASH
          pred SDLKey
    SDLK_AMPERSAND = SDLKey
    SDLK_DOLLAR
          pred SDLKey
    SDLK_QUOTE = SDLKey
    SDLK_AMPERSAND
          pred SDLKey
    SDLK_LEFTPAREN = SDLKey
    SDLK_QUOTE
          pred SDLKey
    SDLK_RIGHTPAREN = SDLKey
    SDLK_LEFTPAREN
          pred SDLKey
    SDLK_ASTERISK = SDLKey
    SDLK_RIGHTPAREN
          pred SDLKey
    SDLK_PLUS = SDLKey
    SDLK_ASTERISK
          pred SDLKey
    SDLK_COMMA = SDLKey
    SDLK_PLUS
          pred SDLKey
    SDLK_MINUS = SDLKey
    SDLK_COMMA
          pred SDLKey
    SDLK_PERIOD = SDLKey
    SDLK_MINUS
          pred SDLKey
    SDLK_SLASH = SDLKey
    SDLK_PERIOD
          pred SDLKey
    SDLK_0 = SDLKey
    SDLK_SLASH
          pred SDLKey
    SDLK_1 = SDLKey
    SDLK_0
          pred SDLKey
    SDLK_2 = SDLKey
    SDLK_1
          pred SDLKey
    SDLK_3 = SDLKey
    SDLK_2
          pred SDLKey
    SDLK_4 = SDLKey
    SDLK_3
          pred SDLKey
    SDLK_5 = SDLKey
    SDLK_4
          pred SDLKey
    SDLK_6 = SDLKey
    SDLK_5
          pred SDLKey
    SDLK_7 = SDLKey
    SDLK_6
          pred SDLKey
    SDLK_8 = SDLKey
    SDLK_7
          pred SDLKey
    SDLK_9 = SDLKey
    SDLK_8
          pred SDLKey
    SDLK_COLON = SDLKey
    SDLK_9
          pred SDLKey
    SDLK_SEMICOLON = SDLKey
    SDLK_COLON
          pred SDLKey
    SDLK_LESS = SDLKey
    SDLK_SEMICOLON
          pred SDLKey
    SDLK_EQUALS = SDLKey
    SDLK_LESS
          pred SDLKey
    SDLK_GREATER = SDLKey
    SDLK_EQUALS
          pred SDLKey
    SDLK_QUESTION = SDLKey
    SDLK_GREATER
          pred SDLKey
    SDLK_AT = SDLKey
    SDLK_QUESTION
          pred SDLKey
    SDLK_LEFTBRACKET = SDLKey
    SDLK_AT
          pred SDLKey
    SDLK_BACKSLASH = SDLKey
    SDLK_LEFTBRACKET
          pred SDLKey
    SDLK_RIGHTBRACKET = SDLKey
    SDLK_BACKSLASH
          pred SDLKey
    SDLK_CARET = SDLKey
    SDLK_RIGHTBRACKET
          pred SDLKey
    SDLK_UNDERSCORE = SDLKey
    SDLK_CARET
          pred SDLKey
    SDLK_BACKQUOTE = SDLKey
    SDLK_UNDERSCORE
          pred SDLKey
    SDLK_a = SDLKey
    SDLK_BACKQUOTE
          pred SDLKey
    SDLK_b = SDLKey
    SDLK_a
          pred SDLKey
    SDLK_c = SDLKey
    SDLK_b
          pred SDLKey
    SDLK_d = SDLKey
    SDLK_c
          pred SDLKey
    SDLK_e = SDLKey
    SDLK_d
          pred SDLKey
    SDLK_f = SDLKey
    SDLK_e
          pred SDLKey
    SDLK_g = SDLKey
    SDLK_f
          pred SDLKey
    SDLK_h = SDLKey
    SDLK_g
          pred SDLKey
    SDLK_i = SDLKey
    SDLK_h
          pred SDLKey
    SDLK_j = SDLKey
    SDLK_i
          pred SDLKey
    SDLK_k = SDLKey
    SDLK_j
          pred SDLKey
    SDLK_l = SDLKey
    SDLK_k
          pred SDLKey
    SDLK_m = SDLKey
    SDLK_l
          pred SDLKey
    SDLK_n = SDLKey
    SDLK_m
          pred SDLKey
    SDLK_o = SDLKey
    SDLK_n
          pred SDLKey
    SDLK_p = SDLKey
    SDLK_o
          pred SDLKey
    SDLK_q = SDLKey
    SDLK_p
          pred SDLKey
    SDLK_r = SDLKey
    SDLK_q
          pred SDLKey
    SDLK_s = SDLKey
    SDLK_r
          pred SDLKey
    SDLK_t = SDLKey
    SDLK_s
          pred SDLKey
    SDLK_u = SDLKey
    SDLK_t
          pred SDLKey
    SDLK_v = SDLKey
    SDLK_u
          pred SDLKey
    SDLK_w = SDLKey
    SDLK_v
          pred SDLKey
    SDLK_x = SDLKey
    SDLK_w
          pred SDLKey
    SDLK_y = SDLKey
    SDLK_x
          pred SDLKey
    SDLK_z = SDLKey
    SDLK_y
          pred SDLKey
    SDLK_DELETE = SDLKey
    SDLK_z
          pred SDLKey
    SDLK_WORLD_0 = SDLKey
    SDLK_DELETE
          pred SDLKey
    SDLK_WORLD_1 = SDLKey
    SDLK_WORLD_0
          pred SDLKey
    SDLK_WORLD_2 = SDLKey
    SDLK_WORLD_1
          pred SDLKey
    SDLK_WORLD_3 = SDLKey
    SDLK_WORLD_2
          pred SDLKey
    SDLK_WORLD_4 = SDLKey
    SDLK_WORLD_3
          pred SDLKey
    SDLK_WORLD_5 = SDLKey
    SDLK_WORLD_4
          pred SDLKey
    SDLK_WORLD_6 = SDLKey
    SDLK_WORLD_5
          pred SDLKey
    SDLK_WORLD_7 = SDLKey
    SDLK_WORLD_6
          pred SDLKey
    SDLK_WORLD_8 = SDLKey
    SDLK_WORLD_7
          pred SDLKey
    SDLK_WORLD_9 = SDLKey
    SDLK_WORLD_8
          pred SDLKey
    SDLK_WORLD_10 = SDLKey
    SDLK_WORLD_9
          pred SDLKey
    SDLK_WORLD_11 = SDLKey
    SDLK_WORLD_10
          pred SDLKey
    SDLK_WORLD_12 = SDLKey
    SDLK_WORLD_11
          pred SDLKey
    SDLK_WORLD_13 = SDLKey
    SDLK_WORLD_12
          pred SDLKey
    SDLK_WORLD_14 = SDLKey
    SDLK_WORLD_13
          pred SDLKey
    SDLK_WORLD_15 = SDLKey
    SDLK_WORLD_14
          pred SDLKey
    SDLK_WORLD_16 = SDLKey
    SDLK_WORLD_15
          pred SDLKey
    SDLK_WORLD_17 = SDLKey
    SDLK_WORLD_16
          pred SDLKey
    SDLK_WORLD_18 = SDLKey
    SDLK_WORLD_17
          pred SDLKey
    SDLK_WORLD_19 = SDLKey
    SDLK_WORLD_18
          pred SDLKey
    SDLK_WORLD_20 = SDLKey
    SDLK_WORLD_19
          pred SDLKey
    SDLK_WORLD_21 = SDLKey
    SDLK_WORLD_20
          pred SDLKey
    SDLK_WORLD_22 = SDLKey
    SDLK_WORLD_21
          pred SDLKey
    SDLK_WORLD_23 = SDLKey
    SDLK_WORLD_22
          pred SDLKey
    SDLK_WORLD_24 = SDLKey
    SDLK_WORLD_23
          pred SDLKey
    SDLK_WORLD_25 = SDLKey
    SDLK_WORLD_24
          pred SDLKey
    SDLK_WORLD_26 = SDLKey
    SDLK_WORLD_25
          pred SDLKey
    SDLK_WORLD_27 = SDLKey
    SDLK_WORLD_26
          pred SDLKey
    SDLK_WORLD_28 = SDLKey
    SDLK_WORLD_27
          pred SDLKey
    SDLK_WORLD_29 = SDLKey
    SDLK_WORLD_28
          pred SDLKey
    SDLK_WORLD_30 = SDLKey
    SDLK_WORLD_29
          pred SDLKey
    SDLK_WORLD_31 = SDLKey
    SDLK_WORLD_30
          pred SDLKey
    SDLK_WORLD_32 = SDLKey
    SDLK_WORLD_31
          pred SDLKey
    SDLK_WORLD_33 = SDLKey
    SDLK_WORLD_32
          pred SDLKey
    SDLK_WORLD_34 = SDLKey
    SDLK_WORLD_33
          pred SDLKey
    SDLK_WORLD_35 = SDLKey
    SDLK_WORLD_34
          pred SDLKey
    SDLK_WORLD_36 = SDLKey
    SDLK_WORLD_35
          pred SDLKey
    SDLK_WORLD_37 = SDLKey
    SDLK_WORLD_36
          pred SDLKey
    SDLK_WORLD_38 = SDLKey
    SDLK_WORLD_37
          pred SDLKey
    SDLK_WORLD_39 = SDLKey
    SDLK_WORLD_38
          pred SDLKey
    SDLK_WORLD_40 = SDLKey
    SDLK_WORLD_39
          pred SDLKey
    SDLK_WORLD_41 = SDLKey
    SDLK_WORLD_40
          pred SDLKey
    SDLK_WORLD_42 = SDLKey
    SDLK_WORLD_41
          pred SDLKey
    SDLK_WORLD_43 = SDLKey
    SDLK_WORLD_42
          pred SDLKey
    SDLK_WORLD_44 = SDLKey
    SDLK_WORLD_43
          pred SDLKey
    SDLK_WORLD_45 = SDLKey
    SDLK_WORLD_44
          pred SDLKey
    SDLK_WORLD_46 = SDLKey
    SDLK_WORLD_45
          pred SDLKey
    SDLK_WORLD_47 = SDLKey
    SDLK_WORLD_46
          pred SDLKey
    SDLK_WORLD_48 = SDLKey
    SDLK_WORLD_47
          pred SDLKey
    SDLK_WORLD_49 = SDLKey
    SDLK_WORLD_48
          pred SDLKey
    SDLK_WORLD_50 = SDLKey
    SDLK_WORLD_49
          pred SDLKey
    SDLK_WORLD_51 = SDLKey
    SDLK_WORLD_50
          pred SDLKey
    SDLK_WORLD_52 = SDLKey
    SDLK_WORLD_51
          pred SDLKey
    SDLK_WORLD_53 = SDLKey
    SDLK_WORLD_52
          pred SDLKey
    SDLK_WORLD_54 = SDLKey
    SDLK_WORLD_53
          pred SDLKey
    SDLK_WORLD_55 = SDLKey
    SDLK_WORLD_54
          pred SDLKey
    SDLK_WORLD_56 = SDLKey
    SDLK_WORLD_55
          pred SDLKey
    SDLK_WORLD_57 = SDLKey
    SDLK_WORLD_56
          pred SDLKey
    SDLK_WORLD_58 = SDLKey
    SDLK_WORLD_57
          pred SDLKey
    SDLK_WORLD_59 = SDLKey
    SDLK_WORLD_58
          pred SDLKey
    SDLK_WORLD_60 = SDLKey
    SDLK_WORLD_59
          pred SDLKey
    SDLK_WORLD_61 = SDLKey
    SDLK_WORLD_60
          pred SDLKey
    SDLK_WORLD_62 = SDLKey
    SDLK_WORLD_61
          pred SDLKey
    SDLK_WORLD_63 = SDLKey
    SDLK_WORLD_62
          pred SDLKey
    SDLK_WORLD_64 = SDLKey
    SDLK_WORLD_63
          pred SDLKey
    SDLK_WORLD_65 = SDLKey
    SDLK_WORLD_64
          pred SDLKey
    SDLK_WORLD_66 = SDLKey
    SDLK_WORLD_65
          pred SDLKey
    SDLK_WORLD_67 = SDLKey
    SDLK_WORLD_66
          pred SDLKey
    SDLK_WORLD_68 = SDLKey
    SDLK_WORLD_67
          pred SDLKey
    SDLK_WORLD_69 = SDLKey
    SDLK_WORLD_68
          pred SDLKey
    SDLK_WORLD_70 = SDLKey
    SDLK_WORLD_69
          pred SDLKey
    SDLK_WORLD_71 = SDLKey
    SDLK_WORLD_70
          pred SDLKey
    SDLK_WORLD_72 = SDLKey
    SDLK_WORLD_71
          pred SDLKey
    SDLK_WORLD_73 = SDLKey
    SDLK_WORLD_72
          pred SDLKey
    SDLK_WORLD_74 = SDLKey
    SDLK_WORLD_73
          pred SDLKey
    SDLK_WORLD_75 = SDLKey
    SDLK_WORLD_74
          pred SDLKey
    SDLK_WORLD_76 = SDLKey
    SDLK_WORLD_75
          pred SDLKey
    SDLK_WORLD_77 = SDLKey
    SDLK_WORLD_76
          pred SDLKey
    SDLK_WORLD_78 = SDLKey
    SDLK_WORLD_77
          pred SDLKey
    SDLK_WORLD_79 = SDLKey
    SDLK_WORLD_78
          pred SDLKey
    SDLK_WORLD_80 = SDLKey
    SDLK_WORLD_79
          pred SDLKey
    SDLK_WORLD_81 = SDLKey
    SDLK_WORLD_80
          pred SDLKey
    SDLK_WORLD_82 = SDLKey
    SDLK_WORLD_81
          pred SDLKey
    SDLK_WORLD_83 = SDLKey
    SDLK_WORLD_82
          pred SDLKey
    SDLK_WORLD_84 = SDLKey
    SDLK_WORLD_83
          pred SDLKey
    SDLK_WORLD_85 = SDLKey
    SDLK_WORLD_84
          pred SDLKey
    SDLK_WORLD_86 = SDLKey
    SDLK_WORLD_85
          pred SDLKey
    SDLK_WORLD_87 = SDLKey
    SDLK_WORLD_86
          pred SDLKey
    SDLK_WORLD_88 = SDLKey
    SDLK_WORLD_87
          pred SDLKey
    SDLK_WORLD_89 = SDLKey
    SDLK_WORLD_88
          pred SDLKey
    SDLK_WORLD_90 = SDLKey
    SDLK_WORLD_89
          pred SDLKey
    SDLK_WORLD_91 = SDLKey
    SDLK_WORLD_90
          pred SDLKey
    SDLK_WORLD_92 = SDLKey
    SDLK_WORLD_91
          pred SDLKey
    SDLK_WORLD_93 = SDLKey
    SDLK_WORLD_92
          pred SDLKey
    SDLK_WORLD_94 = SDLKey
    SDLK_WORLD_93
          pred SDLKey
    SDLK_WORLD_95 = SDLKey
    SDLK_WORLD_94
          pred SDLKey
    SDLK_KP0 = SDLKey
    SDLK_WORLD_95
          pred SDLKey
    SDLK_KP1 = SDLKey
    SDLK_KP0
          pred SDLKey
    SDLK_KP2 = SDLKey
    SDLK_KP1
          pred SDLKey
    SDLK_KP3 = SDLKey
    SDLK_KP2
          pred SDLKey
    SDLK_KP4 = SDLKey
    SDLK_KP3
          pred SDLKey
    SDLK_KP5 = SDLKey
    SDLK_KP4
          pred SDLKey
    SDLK_KP6 = SDLKey
    SDLK_KP5
          pred SDLKey
    SDLK_KP7 = SDLKey
    SDLK_KP6
          pred SDLKey
    SDLK_KP8 = SDLKey
    SDLK_KP7
          pred SDLKey
    SDLK_KP9 = SDLKey
    SDLK_KP8
          pred SDLKey
    SDLK_KP_PERIOD = SDLKey
    SDLK_KP9
          pred SDLKey
    SDLK_KP_DIVIDE = SDLKey
    SDLK_KP_PERIOD
          pred SDLKey
    SDLK_KP_MULTIPLY = SDLKey
    SDLK_KP_DIVIDE
          pred SDLKey
    SDLK_KP_MINUS = SDLKey
    SDLK_KP_MULTIPLY
          pred SDLKey
    SDLK_KP_PLUS = SDLKey
    SDLK_KP_MINUS
          pred SDLKey
    SDLK_KP_ENTER = SDLKey
    SDLK_KP_PLUS
          pred SDLKey
    SDLK_KP_EQUALS = SDLKey
    SDLK_KP_ENTER
          pred SDLKey
    SDLK_UP = SDLKey
    SDLK_KP_EQUALS
          pred SDLKey
    SDLK_DOWN = SDLKey
    SDLK_UP
          pred SDLKey
    SDLK_RIGHT = SDLKey
    SDLK_DOWN
          pred SDLKey
    SDLK_LEFT = SDLKey
    SDLK_RIGHT
          pred SDLKey
    SDLK_INSERT = SDLKey
    SDLK_LEFT
          pred SDLKey
    SDLK_HOME = SDLKey
    SDLK_INSERT
          pred SDLKey
    SDLK_END = SDLKey
    SDLK_HOME
          pred SDLKey
    SDLK_PAGEUP = SDLKey
    SDLK_END
          pred SDLKey
    SDLK_PAGEDOWN = SDLKey
    SDLK_PAGEUP
          pred SDLKey
    SDLK_F1 = SDLKey
    SDLK_PAGEDOWN
          pred SDLKey
    SDLK_F2 = SDLKey
    SDLK_F1
          pred SDLKey
    SDLK_F3 = SDLKey
    SDLK_F2
          pred SDLKey
    SDLK_F4 = SDLKey
    SDLK_F3
          pred SDLKey
    SDLK_F5 = SDLKey
    SDLK_F4
          pred SDLKey
    SDLK_F6 = SDLKey
    SDLK_F5
          pred SDLKey
    SDLK_F7 = SDLKey
    SDLK_F6
          pred SDLKey
    SDLK_F8 = SDLKey
    SDLK_F7
          pred SDLKey
    SDLK_F9 = SDLKey
    SDLK_F8
          pred SDLKey
    SDLK_F10 = SDLKey
    SDLK_F9
          pred SDLKey
    SDLK_F11 = SDLKey
    SDLK_F10
          pred SDLKey
    SDLK_F12 = SDLKey
    SDLK_F11
          pred SDLKey
    SDLK_F13 = SDLKey
    SDLK_F12
          pred SDLKey
    SDLK_F14 = SDLKey
    SDLK_F13
          pred SDLKey
    SDLK_F15 = SDLKey
    SDLK_F14
          pred SDLKey
    SDLK_NUMLOCK = SDLKey
    SDLK_F15
          pred SDLKey
    SDLK_CAPSLOCK = SDLKey
    SDLK_NUMLOCK
          pred SDLKey
    SDLK_SCROLLOCK = SDLKey
    SDLK_CAPSLOCK
          pred SDLKey
    SDLK_RSHIFT = SDLKey
    SDLK_SCROLLOCK
          pred SDLKey
    SDLK_LSHIFT = SDLKey
    SDLK_RSHIFT
          pred SDLKey
    SDLK_RCTRL = SDLKey
    SDLK_LSHIFT
          pred SDLKey
    SDLK_LCTRL = SDLKey
    SDLK_RCTRL
          pred SDLKey
    SDLK_RALT = SDLKey
    SDLK_LCTRL
          pred SDLKey
    SDLK_LALT = SDLKey
    SDLK_RALT
          pred SDLKey
    SDLK_RMETA = SDLKey
    SDLK_LALT
          pred SDLKey
    SDLK_LMETA = SDLKey
    SDLK_RMETA
          pred SDLKey
    SDLK_LSUPER = SDLKey
    SDLK_LMETA
          pred SDLKey
    SDLK_RSUPER = SDLKey
    SDLK_LSUPER
          pred SDLKey
    SDLK_MODE = SDLKey
    SDLK_RSUPER
          pred SDLKey
    SDLK_COMPOSE = SDLKey
    SDLK_MODE
          pred SDLKey
    SDLK_HELP = SDLKey
    SDLK_COMPOSE
          pred SDLKey
    SDLK_PRINT = SDLKey
    SDLK_HELP
          pred SDLKey
    SDLK_SYSREQ = SDLKey
    SDLK_PRINT
          pred SDLKey
    SDLK_BREAK = SDLKey
    SDLK_SYSREQ
          pred SDLKey
    SDLK_MENU = SDLKey
    SDLK_BREAK
          pred SDLKey
    SDLK_POWER = SDLKey
    SDLK_MENU
          pred SDLKey
    SDLK_EURO = SDLKey
    SDLK_POWER
          pred SDLKey
    SDLK_UNDO = SDLKey
    SDLK_EURO
          pred SDLKey
    SDLK_LAST = SDLKey
    SDLK_UNDO
          pred SDLKey
    _ = String -> SDLKey
    forall a. HasCallStack => String -> a
    error String
    "Graphics.UI.SDL.Keysym.pred: bad argument"
          enumFromTo :: SDLKey -> SDLKey -> [SDLKey]
    enumFromTo SDLKey
    x SDLKey
    y | SDLKey
    x SDLKey -> SDLKey -> Bool
    forall a. Ord a => a -> a -> Bool
    > SDLKey
    y = []
                         | SDLKey
    x SDLKey -> SDLKey -> Bool
    forall a. Eq a => a -> a -> Bool
    == SDLKey
    y = [SDLKey
    y]
                         | Bool
    True = SDLKey
    x SDLKey -> [SDLKey] -> [SDLKey]
    forall a. a -> [a] -> [a]
    : SDLKey -> SDLKey -> [SDLKey]
    forall a b. Enum a b => a -> a -> [a]
    enumFromTo (SDLKey -> SDLKey
    forall a b. Enum a b => a -> a
    succ SDLKey
    x) SDLKey
    y