diff --git a/qtah-generator.cabal b/qtah-generator.cabal
--- a/qtah-generator.cabal
+++ b/qtah-generator.cabal
@@ -1,5 +1,5 @@
 name: qtah-generator
-version: 0.7.0
+version: 0.7.1
 synopsis: Generator for Qtah Qt bindings
 homepage: http://khumba.net/projects/qtah
 license: LGPL-3
@@ -9,7 +9,7 @@
 copyright: Copyright 2015-2020 The Qtah Authors.
 category: Graphics
 build-type: Custom
-cabal-version: 1.20
+cabal-version: 2.0
 description:
   Qtah is a set of Qt bindings for Haskell.  This package is a Hoppy FFI
   generator.  You shouldn't need it directly; rather, qtah-cpp and qtah use it
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Core/Types.hs b/src/Graphics/UI/Qtah/Generator/Interface/Core/Types.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Core/Types.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Core/Types.hs
@@ -223,7 +223,7 @@
   , test (qtVersion >= e_MouseEventFlag_minVersion) $ qtExport e_MouseEventFlag
   , test (qtVersion >= e_MouseEventFlag_minVersion) $ qtExport fl_MouseEventFlags
   , test (qtVersion >= e_MouseEventSource_minVersion) $ qtExport e_MouseEventSource
-  , test (qtVersion >= [5,2]) $ qtExport e_NativeGestureType
+  , test (qtVersion >= [5, 2]) $ qtExport e_NativeGestureType
   , just $ qtExport e_NavigationMode
   , just $ qtExport e_Orientation
   , just $ qtExport fl_Orientations
@@ -374,10 +374,10 @@
   makeQtEnum (ident1 "Qt" "ApplicationAttribute") qtInclude $
   collect
   [ just "AA_DontShowIconsInMenus"
-  , test (qtVersion >= [5,10]) "AA_DontShowShortcutsInContextMenus"
+  , test (qtVersion >= [5, 10]) "AA_DontShowShortcutsInContextMenus"
   , just "AA_NativeWindows"
   , just "AA_DontCreateNativeWidgetSiblings"
-  , test (qtVersion >= [5,7]) "AA_PluginApplication"
+  , test (qtVersion >= [5, 7]) "AA_PluginApplication"
   , just "AA_DontUseNativeMenuBar"
   , just "AA_MacDontSwapCtrlAndMeta"
   , just "AA_Use96Dpi"
@@ -385,21 +385,21 @@
   , just "AA_SynthesizeMouseForUnhandledTouchEvents"
   , just "AA_UseHighDpiPixmaps"
   , just "AA_ForceRasterWidgets"
-  , test (qtVersion >= [5,3]) "AA_UseDesktopOpenGL"
-  , test (qtVersion >= [5,3]) "AA_UseOpenGLES"
-  , test (qtVersion >= [5,4]) "AA_UseSoftwareOpenGL"
-  , test (qtVersion >= [5,4]) "AA_ShareOpenGLContexts"
-  , test (qtVersion >= [5,5]) "AA_SetPalette"
-  , test (qtVersion >= [5,6]) "AA_EnableHighDpiScaling"
-  , test (qtVersion >= [5,6]) "AA_DisableHighDpiScaling"
-  , test (qtVersion >= [5,7]) "AA_UseStyleSheetPropagationInWidgetStyles"
-  , test (qtVersion >= [5,7]) "AA_DontUseNativeDialogs"
-  , test (qtVersion >= [5,7]) "AA_SynthesizeMouseForUnhandledTabletEvents"
-  , test (qtVersion >= [5,7]) "AA_CompressHighFrequencyEvents"
-  , test (qtVersion >= [5,10]) "AA_CompressTabletEvents"
-  , test (qtVersion >= [5,8]) "AA_DontCheckOpenGLContextThreadAffinity"
-  , just "AA_DisableShaderDiskCache"
-  , test (qtVersion >= [5,10]) "AA_DisableWindowContextHelpButton"
+  , test (qtVersion >= [5, 3]) "AA_UseDesktopOpenGL"
+  , test (qtVersion >= [5, 3]) "AA_UseOpenGLES"
+  , test (qtVersion >= [5, 4]) "AA_UseSoftwareOpenGL"
+  , test (qtVersion >= [5, 4]) "AA_ShareOpenGLContexts"
+  , test (qtVersion >= [5, 5]) "AA_SetPalette"
+  , test (qtVersion >= [5, 6]) "AA_EnableHighDpiScaling"
+  , test (qtVersion >= [5, 6]) "AA_DisableHighDpiScaling"
+  , test (qtVersion >= [5, 7]) "AA_UseStyleSheetPropagationInWidgetStyles"
+  , test (qtVersion >= [5, 7]) "AA_DontUseNativeDialogs"
+  , test (qtVersion >= [5, 7]) "AA_SynthesizeMouseForUnhandledTabletEvents"
+  , test (qtVersion >= [5, 7]) "AA_CompressHighFrequencyEvents"
+  , test (qtVersion >= [5, 10]) "AA_CompressTabletEvents"
+  , test (qtVersion >= [5, 8]) "AA_DontCheckOpenGLContextThreadAffinity"
+  , test (qtVersion >= [5, 10]) "AA_DisableShaderDiskCache"
+  , test (qtVersion >= [5, 10]) "AA_DisableWindowContextHelpButton"
   ]
 
 e_ArrowType =
@@ -547,17 +547,18 @@
   ]
 
 e_DateFormat =
-  makeQtEnum (ident1 "Qt" "DateFormat") qtInclude
-  [ "TextDate"
-  , "ISODate"
-  , "ISODateWithMs"
-  , "SystemLocaleShortDate"
-  , "SystemLocaleLongDate"
-  , "DefaultLocaleShortDate"
-  , "DefaultLocaleLongDate"
-  , "SystemLocaleDate"
-  , "LocaleDate"
-  , "RFC2822Date"
+  makeQtEnum (ident1 "Qt" "DateFormat") qtInclude $
+  collect
+  [ just "TextDate"
+  , just "ISODate"
+  , test (qtVersion >= [5, 8]) "ISODateWithMs"
+  , just "SystemLocaleShortDate"
+  , just "SystemLocaleLongDate"
+  , just "DefaultLocaleShortDate"
+  , just "DefaultLocaleLongDate"
+  , just "SystemLocaleDate"
+  , just "LocaleDate"
+  , just "RFC2822Date"
   ]
 
 e_DayOfWeek =
@@ -772,9 +773,9 @@
   , just "ImAbsolutePosition"
   , just "ImTextBeforeCursor"
   , just "ImTextAfterCursor"
-  , just "ImEnterKeyType"
-  , test (qtVersion >= [5,7]) "ImAnchorRectangle"
-  , just "ImInputItemClipRectangle"
+  , test (qtVersion >= [5, 6]) "ImEnterKeyType"
+  , test (qtVersion >= [5, 7]) "ImAnchorRectangle"
+  , test (qtVersion >= [5, 7]) "ImInputItemClipRectangle"
   ]
 
 -- TODO Support for custom ItemDataRole values.
@@ -816,7 +817,7 @@
   , just "ItemIsDropEnabled"
   , just "ItemIsUserCheckable"
   , just "ItemIsEnabled"
-  , just "ItemIsAutoTristate"
+  , test (qtVersion >= [5, 6]) "ItemIsAutoTristate"
   , just "ItemNeverHasChildren"
   , test (qtVersion >= [5, 5]) "ItemIsUserTristate"
   ]
@@ -848,339 +849,340 @@
     , ("Key_Dead_u", "KeyDeadULower")
     , ("Key_Dead_U", "KeyDeadUUpper")
     ] $
-  makeQtEnum (ident1 "Qt" "Key") qtInclude
-  [ "Key_Escape"
-  , "Key_Tab"
-  , "Key_Backtab"
-  , "Key_Backspace"
-  , "Key_Return"
-  , "Key_Enter"
-  , "Key_Insert"
-  , "Key_Delete"
-  , "Key_Pause"
-  , "Key_Print"
-  , "Key_SysReq"
-  , "Key_Clear"
-  , "Key_Home"
-  , "Key_End"
-  , "Key_Left"
-  , "Key_Up"
-  , "Key_Right"
-  , "Key_Down"
-  , "Key_PageUp"
-  , "Key_PageDown"
-  , "Key_Shift"
-  , "Key_Control"
-  , "Key_Meta"
-  , "Key_Alt"
-  , "Key_AltGr"
-  , "Key_CapsLock"
-  , "Key_NumLock"
-  , "Key_ScrollLock"
-  , "Key_F1"
-  , "Key_F2"
-  , "Key_F3"
-  , "Key_F4"
-  , "Key_F5"
-  , "Key_F6"
-  , "Key_F7"
-  , "Key_F8"
-  , "Key_F9"
-  , "Key_F10"
-  , "Key_F11"
-  , "Key_F12"
-  , "Key_F13"
-  , "Key_F14"
-  , "Key_F15"
-  , "Key_F16"
-  , "Key_F17"
-  , "Key_F18"
-  , "Key_F19"
-  , "Key_F20"
-  , "Key_F21"
-  , "Key_F22"
-  , "Key_F23"
-  , "Key_F24"
-  , "Key_F25"
-  , "Key_F26"
-  , "Key_F27"
-  , "Key_F28"
-  , "Key_F29"
-  , "Key_F30"
-  , "Key_F31"
-  , "Key_F32"
-  , "Key_F33"
-  , "Key_F34"
-  , "Key_F35"
-  , "Key_Super_L"
-  , "Key_Super_R"
-  , "Key_Menu"
-  , "Key_Hyper_L"
-  , "Key_Hyper_R"
-  , "Key_Help"
-  , "Key_Direction_L"
-  , "Key_Direction_R"
-  , "Key_Space"
-  , "Key_Any"  -- Alias for Key_Space.
-  , "Key_Exclam"
-  , "Key_QuoteDbl"
-  , "Key_NumberSign"
-  , "Key_Dollar"
-  , "Key_Percent"
-  , "Key_Ampersand"
-  , "Key_Apostrophe"
-  , "Key_ParenLeft"
-  , "Key_ParenRight"
-  , "Key_Asterisk"
-  , "Key_Plus"
-  , "Key_Comma"
-  , "Key_Minus"
-  , "Key_Period"
-  , "Key_Slash"
-  , "Key_0"
-  , "Key_1"
-  , "Key_2"
-  , "Key_3"
-  , "Key_4"
-  , "Key_5"
-  , "Key_6"
-  , "Key_7"
-  , "Key_8"
-  , "Key_9"
-  , "Key_Colon"
-  , "Key_Semicolon"
-  , "Key_Less"
-  , "Key_Equal"
-  , "Key_Greater"
-  , "Key_Question"
-  , "Key_At"
-  , "Key_A"
-  , "Key_B"
-  , "Key_C"
-  , "Key_D"
-  , "Key_E"
-  , "Key_F"
-  , "Key_G"
-  , "Key_H"
-  , "Key_I"
-  , "Key_J"
-  , "Key_K"
-  , "Key_L"
-  , "Key_M"
-  , "Key_N"
-  , "Key_O"
-  , "Key_P"
-  , "Key_Q"
-  , "Key_R"
-  , "Key_S"
-  , "Key_T"
-  , "Key_U"
-  , "Key_V"
-  , "Key_W"
-  , "Key_X"
-  , "Key_Y"
-  , "Key_Z"
-  , "Key_BracketLeft"
-  , "Key_Backslash"
-  , "Key_BracketRight"
-  , "Key_AsciiCircum"
-  , "Key_Underscore"
-  , "Key_QuoteLeft"
-  , "Key_BraceLeft"
-  , "Key_Bar"
-  , "Key_BraceRight"
-  , "Key_AsciiTilde"
-  , "Key_nobreakspace"
-  , "Key_exclamdown"
-  , "Key_cent"
-  , "Key_sterling"
-  , "Key_currency"
-  , "Key_yen"
-  , "Key_brokenbar"
-  , "Key_section"
-  , "Key_diaeresis"
-  , "Key_copyright"
-  , "Key_ordfeminine"
-  , "Key_guillemotleft"
-  , "Key_notsign"
-  , "Key_hyphen"
-  , "Key_registered"
-  , "Key_macron"
-  , "Key_degree"
-  , "Key_plusminus"
-  , "Key_twosuperior"
-  , "Key_threesuperior"
-  , "Key_acute"
-  , "Key_mu"
-  , "Key_paragraph"
-  , "Key_periodcentered"
-  , "Key_cedilla"
-  , "Key_onesuperior"
-  , "Key_masculine"
-  , "Key_guillemotright"
-  , "Key_onequarter"
-  , "Key_onehalf"
-  , "Key_threequarters"
-  , "Key_questiondown"
-  , "Key_Agrave"
-  , "Key_Aacute"
-  , "Key_Acircumflex"
-  , "Key_Atilde"
-  , "Key_Adiaeresis"
-  , "Key_Aring"
-  , "Key_AE"
-  , "Key_Ccedilla"
-  , "Key_Egrave"
-  , "Key_Eacute"
-  , "Key_Ecircumflex"
-  , "Key_Ediaeresis"
-  , "Key_Igrave"
-  , "Key_Iacute"
-  , "Key_Icircumflex"
-  , "Key_Idiaeresis"
-  , "Key_ETH"
-  , "Key_Ntilde"
-  , "Key_Ograve"
-  , "Key_Oacute"
-  , "Key_Ocircumflex"
-  , "Key_Otilde"
-  , "Key_Odiaeresis"
-  , "Key_multiply"
-  , "Key_Ooblique"
-  , "Key_Ugrave"
-  , "Key_Uacute"
-  , "Key_Ucircumflex"
-  , "Key_Udiaeresis"
-  , "Key_Yacute"
-  , "Key_THORN"
-  , "Key_ssharp"
-  , "Key_division"
-  , "Key_ydiaeresis"
-  , "Key_Multi_key"
-  , "Key_Codeinput"
-  , "Key_SingleCandidate"
-  , "Key_MultipleCandidate"
-  , "Key_PreviousCandidate"
-  , "Key_Mode_switch"
-  , "Key_Kanji"
-  , "Key_Muhenkan"
-  , "Key_Henkan"
-  , "Key_Romaji"
-  , "Key_Hiragana"
-  , "Key_Katakana"
-  , "Key_Hiragana_Katakana"
-  , "Key_Zenkaku"
-  , "Key_Hankaku"
-  --, "Key_Zenkaku_Hankaku"
-  , "Key_Touroku"
-  , "Key_Massyo"
-  , "Key_Kana_Lock"
-  , "Key_Kana_Shift"
-  , "Key_Eisu_Shift"
-  , "Key_Eisu_toggle"
-  , "Key_Hangul"
-  , "Key_Hangul_Start"
-  , "Key_Hangul_End"
-  , "Key_Hangul_Hanja"
-  , "Key_Hangul_Jamo"
-  , "Key_Hangul_Romaja"
-  , "Key_Hangul_Jeonja"
-  , "Key_Hangul_Banja"
-  , "Key_Hangul_PreHanja"
-  , "Key_Hangul_PostHanja"
-  , "Key_Hangul_Special"
-  , "Key_Dead_Grave"
-  , "Key_Dead_Acute"
-  , "Key_Dead_Circumflex"
-  , "Key_Dead_Tilde"
-  , "Key_Dead_Macron"
-  , "Key_Dead_Breve"
-  , "Key_Dead_Abovedot"
-  , "Key_Dead_Diaeresis"
-  , "Key_Dead_Abovering"
-  , "Key_Dead_Doubleacute"
-  , "Key_Dead_Caron"
-  , "Key_Dead_Cedilla"
-  , "Key_Dead_Ogonek"
-  , "Key_Dead_Iota"
-  , "Key_Dead_Voiced_Sound"
-  , "Key_Dead_Semivoiced_Sound"
-  , "Key_Dead_Belowdot"
-  , "Key_Dead_Hook"
-  , "Key_Dead_Horn"
-  , "Key_Dead_Stroke"
-  , "Key_Dead_Abovecomma"
-  , "Key_Dead_Abovereversedcomma"
-  , "Key_Dead_Doublegrave"
-  , "Key_Dead_Belowring"
-  , "Key_Dead_Belowmacron"
-  , "Key_Dead_Belowtilde"
-  , "Key_Dead_Belowbreve"
-  , "Key_Dead_Belowdiaeresis"
-  , "Key_Dead_Invertedbreve"
-  , "Key_Dead_Belowcomma"
-  , "Key_Dead_Currency"
-  , "Key_Dead_a"
-  , "Key_Dead_A"
-  , "Key_Dead_e"
-  , "Key_Dead_E"
-  , "Key_Dead_i"
-  , "Key_Dead_I"
-  , "Key_Dead_o"
-  , "Key_Dead_O"
-  , "Key_Dead_u"
-  , "Key_Dead_U"
-  , "Key_Dead_Small_Schwa"
-  , "Key_Dead_Capital_Schwa"
-  , "Key_Dead_Greek"
-  , "Key_Dead_Lowline"
-  , "Key_Dead_Aboveverticalline"
-  , "Key_Dead_Belowverticalline"
-  , "Key_Dead_Longsolidusoverlay"
-  , "Key_Back"
-  , "Key_Forward"
-  , "Key_Stop"
-  , "Key_Refresh"
-  , "Key_VolumeDown"
-  , "Key_VolumeMute"
-  , "Key_VolumeUp"
-  , "Key_BassBoost"
-  , "Key_BassUp"
-  , "Key_BassDown"
-  , "Key_TrebleUp"
-  , "Key_TrebleDown"
-  , "Key_MediaPlay"
-  , "Key_MediaStop"
-  , "Key_MediaPrevious"
-  , "Key_MediaNext"
-  , "Key_MediaRecord"
-  , "Key_MediaPause"
-  , "Key_MediaTogglePlayPause"
-  --, "Key_HomePage"
-  , "Key_Favorites"
-  , "Key_Search"
-  , "Key_Standby"
-  , "Key_OpenUrl"
-  , "Key_LaunchMail"
-  , "Key_LaunchMedia"
-  , "Key_Launch0"
-  , "Key_Launch1"
-  , "Key_Launch2"
-  , "Key_Launch3"
-  , "Key_Launch4"
-  , "Key_Launch5"
-  , "Key_Launch6"
-  , "Key_Launch7"
-  , "Key_Launch8"
-  , "Key_Launch9"
-  , "Key_LaunchA"
-  , "Key_LaunchB"
-  , "Key_LaunchC"
-  , "Key_LaunchD"
-  , "Key_LaunchE"
-  , "Key_LaunchF"
-  , "Key_LaunchG"
-  , "Key_LaunchH"
+  makeQtEnum (ident1 "Qt" "Key") qtInclude $
+  collect
+  [ just "Key_Escape"
+  , just "Key_Tab"
+  , just "Key_Backtab"
+  , just "Key_Backspace"
+  , just "Key_Return"
+  , just "Key_Enter"
+  , just "Key_Insert"
+  , just "Key_Delete"
+  , just "Key_Pause"
+  , just "Key_Print"
+  , just "Key_SysReq"
+  , just "Key_Clear"
+  , just "Key_Home"
+  , just "Key_End"
+  , just "Key_Left"
+  , just "Key_Up"
+  , just "Key_Right"
+  , just "Key_Down"
+  , just "Key_PageUp"
+  , just "Key_PageDown"
+  , just "Key_Shift"
+  , just "Key_Control"
+  , just "Key_Meta"
+  , just "Key_Alt"
+  , just "Key_AltGr"
+  , just "Key_CapsLock"
+  , just "Key_NumLock"
+  , just "Key_ScrollLock"
+  , just "Key_F1"
+  , just "Key_F2"
+  , just "Key_F3"
+  , just "Key_F4"
+  , just "Key_F5"
+  , just "Key_F6"
+  , just "Key_F7"
+  , just "Key_F8"
+  , just "Key_F9"
+  , just "Key_F10"
+  , just "Key_F11"
+  , just "Key_F12"
+  , just "Key_F13"
+  , just "Key_F14"
+  , just "Key_F15"
+  , just "Key_F16"
+  , just "Key_F17"
+  , just "Key_F18"
+  , just "Key_F19"
+  , just "Key_F20"
+  , just "Key_F21"
+  , just "Key_F22"
+  , just "Key_F23"
+  , just "Key_F24"
+  , just "Key_F25"
+  , just "Key_F26"
+  , just "Key_F27"
+  , just "Key_F28"
+  , just "Key_F29"
+  , just "Key_F30"
+  , just "Key_F31"
+  , just "Key_F32"
+  , just "Key_F33"
+  , just "Key_F34"
+  , just "Key_F35"
+  , just "Key_Super_L"
+  , just "Key_Super_R"
+  , just "Key_Menu"
+  , just "Key_Hyper_L"
+  , just "Key_Hyper_R"
+  , just "Key_Help"
+  , just "Key_Direction_L"
+  , just "Key_Direction_R"
+  , just "Key_Space"
+  , just "Key_Any"  -- Alias for Key_Space.
+  , just "Key_Exclam"
+  , just "Key_QuoteDbl"
+  , just "Key_NumberSign"
+  , just "Key_Dollar"
+  , just "Key_Percent"
+  , just "Key_Ampersand"
+  , just "Key_Apostrophe"
+  , just "Key_ParenLeft"
+  , just "Key_ParenRight"
+  , just "Key_Asterisk"
+  , just "Key_Plus"
+  , just "Key_Comma"
+  , just "Key_Minus"
+  , just "Key_Period"
+  , just "Key_Slash"
+  , just "Key_0"
+  , just "Key_1"
+  , just "Key_2"
+  , just "Key_3"
+  , just "Key_4"
+  , just "Key_5"
+  , just "Key_6"
+  , just "Key_7"
+  , just "Key_8"
+  , just "Key_9"
+  , just "Key_Colon"
+  , just "Key_Semicolon"
+  , just "Key_Less"
+  , just "Key_Equal"
+  , just "Key_Greater"
+  , just "Key_Question"
+  , just "Key_At"
+  , just "Key_A"
+  , just "Key_B"
+  , just "Key_C"
+  , just "Key_D"
+  , just "Key_E"
+  , just "Key_F"
+  , just "Key_G"
+  , just "Key_H"
+  , just "Key_I"
+  , just "Key_J"
+  , just "Key_K"
+  , just "Key_L"
+  , just "Key_M"
+  , just "Key_N"
+  , just "Key_O"
+  , just "Key_P"
+  , just "Key_Q"
+  , just "Key_R"
+  , just "Key_S"
+  , just "Key_T"
+  , just "Key_U"
+  , just "Key_V"
+  , just "Key_W"
+  , just "Key_X"
+  , just "Key_Y"
+  , just "Key_Z"
+  , just "Key_BracketLeft"
+  , just "Key_Backslash"
+  , just "Key_BracketRight"
+  , just "Key_AsciiCircum"
+  , just "Key_Underscore"
+  , just "Key_QuoteLeft"
+  , just "Key_BraceLeft"
+  , just "Key_Bar"
+  , just "Key_BraceRight"
+  , just "Key_AsciiTilde"
+  , just "Key_nobreakspace"
+  , just "Key_exclamdown"
+  , just "Key_cent"
+  , just "Key_sterling"
+  , just "Key_currency"
+  , just "Key_yen"
+  , just "Key_brokenbar"
+  , just "Key_section"
+  , just "Key_diaeresis"
+  , just "Key_copyright"
+  , just "Key_ordfeminine"
+  , just "Key_guillemotleft"
+  , just "Key_notsign"
+  , just "Key_hyphen"
+  , just "Key_registered"
+  , just "Key_macron"
+  , just "Key_degree"
+  , just "Key_plusminus"
+  , just "Key_twosuperior"
+  , just "Key_threesuperior"
+  , just "Key_acute"
+  , just "Key_mu"
+  , just "Key_paragraph"
+  , just "Key_periodcentered"
+  , just "Key_cedilla"
+  , just "Key_onesuperior"
+  , just "Key_masculine"
+  , just "Key_guillemotright"
+  , just "Key_onequarter"
+  , just "Key_onehalf"
+  , just "Key_threequarters"
+  , just "Key_questiondown"
+  , just "Key_Agrave"
+  , just "Key_Aacute"
+  , just "Key_Acircumflex"
+  , just "Key_Atilde"
+  , just "Key_Adiaeresis"
+  , just "Key_Aring"
+  , just "Key_AE"
+  , just "Key_Ccedilla"
+  , just "Key_Egrave"
+  , just "Key_Eacute"
+  , just "Key_Ecircumflex"
+  , just "Key_Ediaeresis"
+  , just "Key_Igrave"
+  , just "Key_Iacute"
+  , just "Key_Icircumflex"
+  , just "Key_Idiaeresis"
+  , just "Key_ETH"
+  , just "Key_Ntilde"
+  , just "Key_Ograve"
+  , just "Key_Oacute"
+  , just "Key_Ocircumflex"
+  , just "Key_Otilde"
+  , just "Key_Odiaeresis"
+  , just "Key_multiply"
+  , just "Key_Ooblique"
+  , just "Key_Ugrave"
+  , just "Key_Uacute"
+  , just "Key_Ucircumflex"
+  , just "Key_Udiaeresis"
+  , just "Key_Yacute"
+  , just "Key_THORN"
+  , just "Key_ssharp"
+  , just "Key_division"
+  , just "Key_ydiaeresis"
+  , just "Key_Multi_key"
+  , just "Key_Codeinput"
+  , just "Key_SingleCandidate"
+  , just "Key_MultipleCandidate"
+  , just "Key_PreviousCandidate"
+  , just "Key_Mode_switch"
+  , just "Key_Kanji"
+  , just "Key_Muhenkan"
+  , just "Key_Henkan"
+  , just "Key_Romaji"
+  , just "Key_Hiragana"
+  , just "Key_Katakana"
+  , just "Key_Hiragana_Katakana"
+  , just "Key_Zenkaku"
+  , just "Key_Hankaku"
+  , just "Key_Zenkaku_Hankaku"
+  , just "Key_Touroku"
+  , just "Key_Massyo"
+  , just "Key_Kana_Lock"
+  , just "Key_Kana_Shift"
+  , just "Key_Eisu_Shift"
+  , just "Key_Eisu_toggle"
+  , just "Key_Hangul"
+  , just "Key_Hangul_Start"
+  , just "Key_Hangul_End"
+  , just "Key_Hangul_Hanja"
+  , just "Key_Hangul_Jamo"
+  , just "Key_Hangul_Romaja"
+  , just "Key_Hangul_Jeonja"
+  , just "Key_Hangul_Banja"
+  , just "Key_Hangul_PreHanja"
+  , just "Key_Hangul_PostHanja"
+  , just "Key_Hangul_Special"
+  , just "Key_Dead_Grave"
+  , just "Key_Dead_Acute"
+  , just "Key_Dead_Circumflex"
+  , just "Key_Dead_Tilde"
+  , just "Key_Dead_Macron"
+  , just "Key_Dead_Breve"
+  , just "Key_Dead_Abovedot"
+  , just "Key_Dead_Diaeresis"
+  , just "Key_Dead_Abovering"
+  , just "Key_Dead_Doubleacute"
+  , just "Key_Dead_Caron"
+  , just "Key_Dead_Cedilla"
+  , just "Key_Dead_Ogonek"
+  , just "Key_Dead_Iota"
+  , just "Key_Dead_Voiced_Sound"
+  , just "Key_Dead_Semivoiced_Sound"
+  , just "Key_Dead_Belowdot"
+  , just "Key_Dead_Hook"
+  , just "Key_Dead_Horn"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Stroke"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Abovecomma"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Abovereversedcomma"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Doublegrave"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Belowring"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Belowmacron"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Belowtilde"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Belowbreve"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Belowdiaeresis"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Invertedbreve"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Belowcomma"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Currency"
+  , test (qtVersion >= [5, 11]) "Key_Dead_a"
+  , test (qtVersion >= [5, 11]) "Key_Dead_A"
+  , test (qtVersion >= [5, 11]) "Key_Dead_e"
+  , test (qtVersion >= [5, 11]) "Key_Dead_E"
+  , test (qtVersion >= [5, 11]) "Key_Dead_i"
+  , test (qtVersion >= [5, 11]) "Key_Dead_I"
+  , test (qtVersion >= [5, 11]) "Key_Dead_o"
+  , test (qtVersion >= [5, 11]) "Key_Dead_O"
+  , test (qtVersion >= [5, 11]) "Key_Dead_u"
+  , test (qtVersion >= [5, 11]) "Key_Dead_U"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Small_Schwa"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Capital_Schwa"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Greek"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Lowline"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Aboveverticalline"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Belowverticalline"
+  , test (qtVersion >= [5, 11]) "Key_Dead_Longsolidusoverlay"
+  , just "Key_Back"
+  , just "Key_Forward"
+  , just "Key_Stop"
+  , just "Key_Refresh"
+  , just "Key_VolumeDown"
+  , just "Key_VolumeMute"
+  , just "Key_VolumeUp"
+  , just "Key_BassBoost"
+  , just "Key_BassUp"
+  , just "Key_BassDown"
+  , just "Key_TrebleUp"
+  , just "Key_TrebleDown"
+  , just "Key_MediaPlay"
+  , just "Key_MediaStop"
+  , just "Key_MediaPrevious"
+  , just "Key_MediaNext"
+  , just "Key_MediaRecord"
+  , just "Key_MediaPause"
+  , just "Key_MediaTogglePlayPause"
+  , just "Key_HomePage"
+  , just "Key_Favorites"
+  , just "Key_Search"
+  , just "Key_Standby"
+  , just "Key_OpenUrl"
+  , just "Key_LaunchMail"
+  , just "Key_LaunchMedia"
+  , just "Key_Launch0"
+  , just "Key_Launch1"
+  , just "Key_Launch2"
+  , just "Key_Launch3"
+  , just "Key_Launch4"
+  , just "Key_Launch5"
+  , just "Key_Launch6"
+  , just "Key_Launch7"
+  , just "Key_Launch8"
+  , just "Key_Launch9"
+  , just "Key_LaunchA"
+  , just "Key_LaunchB"
+  , just "Key_LaunchC"
+  , just "Key_LaunchD"
+  , just "Key_LaunchE"
+  , just "Key_LaunchF"
+  , just "Key_LaunchG"
+  , just "Key_LaunchH"
     -- TODO Additional Qt::Key_* constants.
   ]
 
@@ -1509,90 +1511,91 @@
 
 e_WidgetAttribute =
   makeQtEnum (ident1 "Qt" "WidgetAttribute") qtInclude $
-  [ "WA_AcceptDrops"
-  , "WA_AlwaysShowToolTips"
-  , "WA_ContentsPropagated"
-  , "WA_CustomWhatsThis"
-  , "WA_DeleteOnClose"
-  , "WA_Disabled"
-  , "WA_DontShowOnScreen"
-  , "WA_ForceDisabled"
-  , "WA_ForceUpdatesDisabled"
-  , "WA_GroupLeader"
-  , "WA_Hover"
-  , "WA_InputMethodEnabled"
-  , "WA_KeyboardFocusChange"
-  , "WA_KeyCompression"
-  , "WA_LayoutOnEntireRect"
-  , "WA_LayoutUsesWidgetRect"
-  , "WA_MacNoClickThrough"
-  , "WA_MacOpaqueSizeGrip"
-  , "WA_MacShowFocusRect"
-  , "WA_MacNormalSize"
-  , "WA_MacSmallSize"
-  , "WA_MacMiniSize"
-  , "WA_MacVariableSize"
-  , "WA_MacBrushedMetal"
-  , "WA_Mapped"
-  , "WA_MouseNoMask"
-  , "WA_MouseTracking"
-  , "WA_Moved"
-  , "WA_MSWindowsUseDirect3D"
-  , "WA_NoChildEventsForParent"
-  , "WA_NoChildEventsFromChildren"
-  , "WA_NoMouseReplay"
-  , "WA_NoMousePropagation"
-  , "WA_TransparentForMouseEvents"
-  , "WA_NoSystemBackground"
-  , "WA_OpaquePaintEvent"
-  , "WA_OutsideWSRange"
-  , "WA_PaintOnScreen"
-  , "WA_PaintUnclipped"
-  , "WA_PendingMoveEvent"
-  , "WA_PendingResizeEvent"
-  , "WA_QuitOnClose"
-  , "WA_Resized"
-  , "WA_RightToLeft"
-  , "WA_SetCursor"
-  , "WA_SetFont"
-  , "WA_SetPalette"
-  , "WA_SetStyle"
-  , "WA_ShowModal"
-  , "WA_StaticContents"
-  , "WA_StyleSheet"
-  , "WA_TabletTracking"
-  , "WA_TranslucentBackground"
-  , "WA_UnderMouse"
-  , "WA_UpdatesDisabled"
-  , "WA_WindowModified"
-  , "WA_WindowPropagation"
-  , "WA_MacAlwaysShowToolWindow"
-  , "WA_SetLocale"
-  , "WA_StyledBackground"
-  , "WA_ShowWithoutActivating"
-  , "WA_NativeWindow"
-  , "WA_DontCreateNativeAncestors"
-  , "WA_X11NetWmWindowTypeDesktop"
-  , "WA_X11NetWmWindowTypeDock"
-  , "WA_X11NetWmWindowTypeToolBar"
-  , "WA_X11NetWmWindowTypeMenu"
-  , "WA_X11NetWmWindowTypeUtility"
-  , "WA_X11NetWmWindowTypeSplash"
-  , "WA_X11NetWmWindowTypeDialog"
-  , "WA_X11NetWmWindowTypeDropDownMenu"
-  , "WA_X11NetWmWindowTypePopupMenu"
-  , "WA_X11NetWmWindowTypeToolTip"
-  , "WA_X11NetWmWindowTypeNotification"
-  , "WA_X11NetWmWindowTypeCombo"
-  , "WA_X11NetWmWindowTypeDND"
-  , "WA_MacFrameworkScaled"
-  , "WA_AcceptTouchEvents"
-  , "WA_TouchPadAcceptSingleTouchEvents"
-  , "WA_X11DoNotAcceptFocus"
-  , "WA_AlwaysStackOnTop"
-  , "WA_ContentsMarginsRespectsSafeArea"
-  ] ++
-  ["WA_StyleSheetTarget" | qtVersion >= [5, 12]]
+  collect
+  [ just "WA_AcceptDrops"
+  , just "WA_AlwaysShowToolTips"
+  , just "WA_ContentsPropagated"
+  , just "WA_CustomWhatsThis"
+  , just "WA_DeleteOnClose"
+  , just "WA_Disabled"
+  , just "WA_DontShowOnScreen"
+  , just "WA_ForceDisabled"
+  , just "WA_ForceUpdatesDisabled"
+  , just "WA_GroupLeader"
+  , just "WA_Hover"
+  , just "WA_InputMethodEnabled"
+  , just "WA_KeyboardFocusChange"
+  , just "WA_KeyCompression"
+  , just "WA_LayoutOnEntireRect"
+  , just "WA_LayoutUsesWidgetRect"
+  , just "WA_MacNoClickThrough"
+  , just "WA_MacOpaqueSizeGrip"
+  , just "WA_MacShowFocusRect"
+  , just "WA_MacNormalSize"
+  , just "WA_MacSmallSize"
+  , just "WA_MacMiniSize"
+  , just "WA_MacVariableSize"
+  , just "WA_MacBrushedMetal"
+  , just "WA_Mapped"
+  , just "WA_MouseNoMask"
+  , just "WA_MouseTracking"
+  , just "WA_Moved"
+  , just "WA_MSWindowsUseDirect3D"
+  , just "WA_NoChildEventsForParent"
+  , just "WA_NoChildEventsFromChildren"
+  , just "WA_NoMouseReplay"
+  , just "WA_NoMousePropagation"
+  , just "WA_TransparentForMouseEvents"
+  , just "WA_NoSystemBackground"
+  , just "WA_OpaquePaintEvent"
+  , just "WA_OutsideWSRange"
+  , just "WA_PaintOnScreen"
+  , just "WA_PaintUnclipped"
+  , just "WA_PendingMoveEvent"
+  , just "WA_PendingResizeEvent"
+  , just "WA_QuitOnClose"
+  , just "WA_Resized"
+  , just "WA_RightToLeft"
+  , just "WA_SetCursor"
+  , just "WA_SetFont"
+  , just "WA_SetPalette"
+  , just "WA_SetStyle"
+  , just "WA_ShowModal"
+  , just "WA_StaticContents"
+  , just "WA_StyleSheet"
+  , test (qtVersion >= [5, 12]) "WA_StyleSheetTarget"
+  , test (qtVersion >= [5, 10]) "WA_TabletTracking"
+  , just "WA_TranslucentBackground"
+  , just "WA_UnderMouse"
+  , just "WA_UpdatesDisabled"
+  , just "WA_WindowModified"
+  , just "WA_WindowPropagation"
+  , just "WA_MacAlwaysShowToolWindow"
+  , just "WA_SetLocale"
+  , just "WA_StyledBackground"
+  , just "WA_ShowWithoutActivating"
+  , just "WA_NativeWindow"
+  , just "WA_DontCreateNativeAncestors"
+  , just "WA_X11NetWmWindowTypeDesktop"
+  , just "WA_X11NetWmWindowTypeDock"
+  , just "WA_X11NetWmWindowTypeToolBar"
+  , just "WA_X11NetWmWindowTypeMenu"
+  , just "WA_X11NetWmWindowTypeUtility"
+  , just "WA_X11NetWmWindowTypeSplash"
+  , just "WA_X11NetWmWindowTypeDialog"
+  , just "WA_X11NetWmWindowTypeDropDownMenu"
+  , just "WA_X11NetWmWindowTypePopupMenu"
+  , just "WA_X11NetWmWindowTypeToolTip"
+  , just "WA_X11NetWmWindowTypeNotification"
+  , just "WA_X11NetWmWindowTypeCombo"
+  , just "WA_X11NetWmWindowTypeDND"
+  , just "WA_MacFrameworkScaled"
+  , just "WA_AcceptTouchEvents"
+  , just "WA_TouchPadAcceptSingleTouchEvents"
+  , just "WA_X11DoNotAcceptFocus"
+  , just "WA_AlwaysStackOnTop"
+  , test (qtVersion >= [5, 11]) "WA_ContentsMarginsRespectsSafeArea"
+  ]
 
 e_WindowFrameSection =
   makeQtEnum (ident1 "Qt" "WindowFrameSection") qtInclude
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDevice.hs b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDevice.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDevice.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Gui/QPaintDevice.hs
@@ -68,17 +68,18 @@
   ]
 
 e_PaintDeviceMetric =
-  makeQtEnum (ident1 "QPaintDevice" "PaintDeviceMetric") [includeStd "QPaintDevice"]
-  [ "PdmWidth"
-  , "PdmHeight"
-  , "PdmWidthMM"
-  , "PdmHeightMM"
-  , "PdmNumColors"
-  , "PdmDepth"
-  , "PdmDpiX"
-  , "PdmDpiY"
-  , "PdmPhysicalDpiX"
-  , "PdmPhysicalDpiY"
-  , "PdmDevicePixelRatio"
-  , "PdmDevicePixelRatioScaled"
+  makeQtEnum (ident1 "QPaintDevice" "PaintDeviceMetric") [includeStd "QPaintDevice"] $
+  collect
+  [ just "PdmWidth"
+  , just "PdmHeight"
+  , just "PdmWidthMM"
+  , just "PdmHeightMM"
+  , just "PdmNumColors"
+  , just "PdmDepth"
+  , just "PdmDpiX"
+  , just "PdmDpiY"
+  , just "PdmPhysicalDpiX"
+  , just "PdmPhysicalDpiY"
+  , just "PdmDevicePixelRatio"
+  , test (qtVersion >= [5, 6]) "PdmDevicePixelRatioScaled"
   ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs b/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs
--- a/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs
@@ -0,0 +1,564 @@
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generator.Interface.Internal.Listener where
+
+import qualified Foreign.Hoppy.Generator.Spec as S
+import qualified Foreign.Hoppy.Generator.Std.String as String
+import qualified Foreign.Hoppy.Generator.Types as T
+import qualified Foreign.Hoppy.Generator.Version as V
+import qualified Graphics.UI.Qtah.Generator.Config as Config
+import qualified Graphics.UI.Qtah.Generator.Interface.Core.QObject as QObject
+import qualified Graphics.UI.Qtah.Generator.Interface.Internal.Callback as C
+import qualified Graphics.UI.Qtah.Generator.Module as M
+import qualified Graphics.UI.Qtah.Generator.Types as U
+
+{-# ANN module "HLint: ignore Use camelCase" #-}
+
+c_ListenerBool =
+  S.makeClass (S.ident "ListenerBool") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_BoolVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerBool = U.ListenerInfo c_ListenerBool C.cb_BoolVoid
+
+c_ListenerDirection =
+  S.makeClass (S.ident "ListenerDirection") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_DirectionVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerDirection = U.ListenerInfo c_ListenerDirection C.cb_DirectionVoid
+
+c_ListenerDockWidgetArea =
+  S.makeClass (S.ident "ListenerDockWidgetArea") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_DockWidgetAreaVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerDockWidgetArea = U.ListenerInfo c_ListenerDockWidgetArea C.cb_DockWidgetAreaVoid
+
+c_ListenerDockWidgetAreas =
+  S.makeClass (S.ident "ListenerDockWidgetAreas") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_DockWidgetAreasVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerDockWidgetAreas = U.ListenerInfo c_ListenerDockWidgetAreas C.cb_DockWidgetAreasVoid
+
+c_ListenerDouble =
+  S.makeClass (S.ident "ListenerDouble") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_DoubleVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerDouble = U.ListenerInfo c_ListenerDouble C.cb_DoubleVoid
+
+c_ListenerInt =
+  S.makeClass (S.ident "ListenerInt") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_IntVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerInt = U.ListenerInfo c_ListenerInt C.cb_IntVoid
+
+c_ListenerIntBool =
+  S.makeClass (S.ident "ListenerIntBool") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_IntBoolVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerIntBool = U.ListenerInfo c_ListenerIntBool C.cb_IntBoolVoid
+
+c_ListenerIntExitStatus =
+  S.makeClass (S.ident "ListenerIntExitStatus") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_IntExitStatusVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerIntExitStatus = U.ListenerInfo c_ListenerIntExitStatus C.cb_IntExitStatusVoid
+
+c_ListenerIntInt =
+  S.makeClass (S.ident "ListenerIntInt") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_IntIntVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerIntInt = U.ListenerInfo c_ListenerIntInt C.cb_IntIntVoid
+
+c_ListenerIntQlonglong =
+  S.makeClass (S.ident "ListenerIntQlonglong") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_IntQlonglongVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerIntQlonglong = U.ListenerInfo c_ListenerIntQlonglong C.cb_IntQlonglongVoid
+
+c_ListenerOrientation =
+  S.makeClass (S.ident "ListenerOrientation") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_OrientationVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerOrientation = U.ListenerInfo c_ListenerOrientation C.cb_OrientationVoid
+
+c_ListenerOrientationIntInt =
+  S.makeClass (S.ident "ListenerOrientationIntInt") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_OrientationIntIntVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerOrientationIntInt = U.ListenerInfo c_ListenerOrientationIntInt C.cb_OrientationIntIntVoid
+
+c_ListenerProcessError =
+  S.makeClass (S.ident "ListenerProcessError") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_ProcessErrorVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerProcessError = U.ListenerInfo c_ListenerProcessError C.cb_ProcessErrorVoid
+
+c_ListenerProcessState =
+  S.makeClass (S.ident "ListenerProcessState") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_ProcessStateVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerProcessState = U.ListenerInfo c_ListenerProcessState C.cb_ProcessStateVoid
+
+c_ListenerPtrQAbstractButton =
+  S.makeClass (S.ident "ListenerPtrQAbstractButton") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_PtrQAbstractButtonVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerPtrQAbstractButton = U.ListenerInfo c_ListenerPtrQAbstractButton C.cb_PtrQAbstractButtonVoid
+
+c_ListenerPtrQAbstractButtonBool =
+  S.makeClass (S.ident "ListenerPtrQAbstractButtonBool") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_PtrQAbstractButtonBoolVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerPtrQAbstractButtonBool = U.ListenerInfo c_ListenerPtrQAbstractButtonBool C.cb_PtrQAbstractButtonBoolVoid
+
+c_ListenerPtrQAbstractItemModel =
+  S.makeClass (S.ident "ListenerPtrQAbstractItemModel") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_PtrQAbstractItemModelVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerPtrQAbstractItemModel = U.ListenerInfo c_ListenerPtrQAbstractItemModel C.cb_PtrQAbstractItemModelVoid
+
+c_ListenerPtrQAction =
+  S.makeClass (S.ident "ListenerPtrQAction") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_PtrQActionVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerPtrQAction = U.ListenerInfo c_ListenerPtrQAction C.cb_PtrQActionVoid
+
+c_ListenerPtrQMdiSubWindow =
+  S.makeClass (S.ident "ListenerPtrQMdiSubWindow") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_PtrQMdiSubWindowVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerPtrQMdiSubWindow = U.ListenerInfo c_ListenerPtrQMdiSubWindow C.cb_PtrQMdiSubWindowVoid
+
+c_ListenerPtrQObject =
+  S.makeClass (S.ident "ListenerPtrQObject") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_PtrQObjectVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerPtrQObject = U.ListenerInfo c_ListenerPtrQObject C.cb_PtrQObjectVoid
+
+c_ListenerPtrQTreeWidgetItem =
+  S.makeClass (S.ident "ListenerPtrQTreeWidgetItem") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_PtrQTreeWidgetItemVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerPtrQTreeWidgetItem = U.ListenerInfo c_ListenerPtrQTreeWidgetItem C.cb_PtrQTreeWidgetItemVoid
+
+c_ListenerPtrQTreeWidgetItemInt =
+  S.makeClass (S.ident "ListenerPtrQTreeWidgetItemInt") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_PtrQTreeWidgetItemIntVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerPtrQTreeWidgetItemInt = U.ListenerInfo c_ListenerPtrQTreeWidgetItemInt C.cb_PtrQTreeWidgetItemIntVoid
+
+c_ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem =
+  S.makeClass (S.ident "ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_PtrQTreeWidgetItemPtrQTreeWidgetItemVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerPtrQTreeWidgetItemPtrQTreeWidgetItem = U.ListenerInfo c_ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem C.cb_PtrQTreeWidgetItemPtrQTreeWidgetItemVoid
+
+c_ListenerPtrQWidgetPtrQWidget =
+  S.makeClass (S.ident "ListenerPtrQWidgetPtrQWidget") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_PtrQWidgetPtrQWidgetVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerPtrQWidgetPtrQWidget = U.ListenerInfo c_ListenerPtrQWidgetPtrQWidget C.cb_PtrQWidgetPtrQWidgetVoid
+
+c_ListenerQAbstractAnimation =
+  S.makeClass (S.ident "ListenerQAbstractAnimation") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QAbstractAnimationVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQAbstractAnimation = U.ListenerInfo c_ListenerQAbstractAnimation C.cb_QAbstractAnimationVoid
+
+c_ListenerQAbstractSliderAction =
+  S.makeClass (S.ident "ListenerQAbstractSliderAction") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QAbstractSliderActionVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQAbstractSliderAction = U.ListenerInfo c_ListenerQAbstractSliderAction C.cb_QAbstractSliderActionVoid
+
+c_ListenerQClipboardMode =
+  S.makeClass (S.ident "ListenerQClipboardMode") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QClipboardModeVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQClipboardMode = U.ListenerInfo c_ListenerQClipboardMode C.cb_QClipboardModeVoid
+
+c_ListenerQDate =
+  S.makeClass (S.ident "ListenerQDate") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QDateVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQDate = U.ListenerInfo c_ListenerQDate C.cb_QDateVoid
+
+c_ListenerQDockWidgetFeatures =
+  S.makeClass (S.ident "ListenerQDockWidgetFeatures") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QDockWidgetFeaturesVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQDockWidgetFeatures = U.ListenerInfo c_ListenerQDockWidgetFeatures C.cb_QDockWidgetFeaturesVoid
+
+c_ListenerQModelIndex =
+  S.makeClass (S.ident "ListenerQModelIndex") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QModelIndexVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQModelIndex = U.ListenerInfo c_ListenerQModelIndex C.cb_QModelIndexVoid
+
+c_ListenerQModelIndexIntInt =
+  S.makeClass (S.ident "ListenerQModelIndexIntInt") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QModelIndexIntIntVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQModelIndexIntInt = U.ListenerInfo c_ListenerQModelIndexIntInt C.cb_QModelIndexIntIntVoid
+
+c_ListenerQModelIndexIntIntQModelIndexInt =
+  S.makeClass (S.ident "ListenerQModelIndexIntIntQModelIndexInt") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QModelIndexIntIntQModelIndexIntVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQModelIndexIntIntQModelIndexInt = U.ListenerInfo c_ListenerQModelIndexIntIntQModelIndexInt C.cb_QModelIndexIntIntQModelIndexIntVoid
+
+c_ListenerQModelIndexQModelIndex =
+  S.makeClass (S.ident "ListenerQModelIndexQModelIndex") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QModelIndexQModelIndexVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQModelIndexQModelIndex = U.ListenerInfo c_ListenerQModelIndexQModelIndex C.cb_QModelIndexQModelIndexVoid
+
+c_ListenerQModelIndexQModelIndexQVectorInt =
+  S.makeClass (S.ident "ListenerQModelIndexQModelIndexQVectorInt") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QModelIndexQModelIndexQVectorIntVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQModelIndexQModelIndexQVectorInt = U.ListenerInfo c_ListenerQModelIndexQModelIndexQVectorInt C.cb_QModelIndexQModelIndexQVectorIntVoid
+
+c_ListenerQPoint =
+  S.makeClass (S.ident "ListenerQPoint") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QPointVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQPoint = U.ListenerInfo c_ListenerQPoint C.cb_QPointVoid
+
+c_ListenerQSize =
+  S.makeClass (S.ident "ListenerQSize") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QSizeVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQSize = U.ListenerInfo c_ListenerQSize C.cb_QSizeVoid
+
+c_ListenerQString =
+  S.makeClass (S.ident "ListenerQString") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QStringVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQString = U.ListenerInfo c_ListenerQString C.cb_QStringVoid
+
+c_ListenerQSystemTrayIconActivationReason =
+  S.makeClass (S.ident "ListenerQSystemTrayIconActivationReason") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QSystemTrayIconActivationReasonVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQSystemTrayIconActivationReason = U.ListenerInfo c_ListenerQSystemTrayIconActivationReason C.cb_QSystemTrayIconActivationReasonVoid
+
+c_ListenerQWindowVisibility =
+  S.makeClass (S.ident "ListenerQWindowVisibility") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QWindowVisibilityVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQWindowVisibility = U.ListenerInfo c_ListenerQWindowVisibility C.cb_QWindowVisibilityVoid
+
+c_ListenerQlonglong =
+  S.makeClass (S.ident "ListenerQlonglong") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QlonglongVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQlonglong = U.ListenerInfo c_ListenerQlonglong C.cb_QlonglongVoid
+
+c_ListenerQreal =
+  S.makeClass (S.ident "ListenerQreal") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_QrealVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerQreal = U.ListenerInfo c_ListenerQreal C.cb_QrealVoid
+
+c_ListenerRefConstQIcon =
+  S.makeClass (S.ident "ListenerRefConstQIcon") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_RefConstQIconVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerRefConstQIcon = U.ListenerInfo c_ListenerRefConstQIcon C.cb_RefConstQIconVoid
+
+c_ListenerRefConstQItemSelectionRefConstQItemSelection =
+  S.makeClass (S.ident "ListenerRefConstQItemSelectionRefConstQItemSelection") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_RefConstQItemSelectionRefConstQItemSelectionVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerRefConstQItemSelectionRefConstQItemSelection = U.ListenerInfo c_ListenerRefConstQItemSelectionRefConstQItemSelection C.cb_RefConstQItemSelectionRefConstQItemSelectionVoid
+
+c_ListenerRefConstQListQModelIndex =
+  S.makeClass (S.ident "ListenerRefConstQListQModelIndex") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_RefConstQListQModelIndexVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerRefConstQListQModelIndex = U.ListenerInfo c_ListenerRefConstQListQModelIndex C.cb_RefConstQListQModelIndexVoid
+
+c_ListenerRefConstQModelIndex =
+  S.makeClass (S.ident "ListenerRefConstQModelIndex") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_RefConstQModelIndexVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerRefConstQModelIndex = U.ListenerInfo c_ListenerRefConstQModelIndex C.cb_RefConstQModelIndexVoid
+
+c_ListenerRefConstQVariant =
+  S.makeClass (S.ident "ListenerRefConstQVariant") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_RefConstQVariantVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerRefConstQVariant = U.ListenerInfo c_ListenerRefConstQVariant C.cb_RefConstQVariantVoid
+
+c_ListenerScreenOrientation =
+  S.makeClass (S.ident "ListenerScreenOrientation") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_ScreenOrientationVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerScreenOrientation = U.ListenerInfo c_ListenerScreenOrientation C.cb_ScreenOrientationVoid
+
+c_ListenerStateState =
+  S.makeClass (S.ident "ListenerStateState") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_StateStateVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerStateState = U.ListenerInfo c_ListenerStateState C.cb_StateStateVoid
+
+c_ListenerToolBarAreas =
+  S.makeClass (S.ident "ListenerToolBarAreas") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_ToolBarAreasVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerToolBarAreas = U.ListenerInfo c_ListenerToolBarAreas C.cb_ToolBarAreasVoid
+
+c_ListenerToolButtonStyle =
+  S.makeClass (S.ident "ListenerToolButtonStyle") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_ToolButtonStyleVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerToolButtonStyle = U.ListenerInfo c_ListenerToolButtonStyle C.cb_ToolButtonStyleVoid
+
+c_ListenerWindowModality =
+  S.makeClass (S.ident "ListenerWindowModality") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_WindowModalityVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerWindowModality = U.ListenerInfo c_ListenerWindowModality C.cb_WindowModalityVoid
+
+c_ListenerWindowState =
+  S.makeClass (S.ident "ListenerWindowState") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_WindowStateVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerWindowState = U.ListenerInfo c_ListenerWindowState C.cb_WindowStateVoid
+
+c_ListenerWindowStatesWindowStates =
+  S.makeClass (S.ident "ListenerWindowStatesWindowStates") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_WindowStatesWindowStatesVoid]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listenerWindowStatesWindowStates = U.ListenerInfo c_ListenerWindowStatesWindowStates C.cb_WindowStatesWindowStatesVoid
+
+c_Listener =
+  S.makeClass (S.ident "Listener") Nothing [QObject.c_QObject]
+  [ S.mkCtor "new"
+    [T.ptrT $ T.objT QObject.c_QObject, T.objT String.c_string, T.callbackT C.cb_Void]
+  , S.mkConstMethod "isValid" S.np T.boolT
+  ]
+
+listener = U.ListenerInfo c_Listener C.cb_Void
+
+aModule :: M.AModule
+aModule =
+  M.AHoppyModule $
+  S.addReqIncludes [S.includeLocal "listener.hpp"] $
+  S.moduleModify' (S.makeModule "listener" "b_listener.hpp" "b_listener.cpp") $ do
+    S.moduleAddHaskellName ["Internal", "Listener"]
+    S.moduleAddExports $ V.collect
+      [ V.just $ S.Export c_ListenerBool
+      , V.just $ S.Export c_ListenerDirection
+      , V.just $ S.Export c_ListenerDockWidgetArea
+      , V.just $ S.Export c_ListenerDockWidgetAreas
+      , V.just $ S.Export c_ListenerDouble
+      , V.just $ S.Export c_ListenerInt
+      , V.just $ S.Export c_ListenerIntBool
+      , V.just $ S.Export c_ListenerIntExitStatus
+      , V.just $ S.Export c_ListenerIntInt
+      , V.just $ S.Export c_ListenerIntQlonglong
+      , V.just $ S.Export c_ListenerOrientation
+      , V.just $ S.Export c_ListenerOrientationIntInt
+      , V.just $ S.Export c_ListenerProcessError
+      , V.just $ S.Export c_ListenerProcessState
+      , V.just $ S.Export c_ListenerPtrQAbstractButton
+      , V.just $ S.Export c_ListenerPtrQAbstractButtonBool
+      , V.just $ S.Export c_ListenerPtrQAbstractItemModel
+      , V.just $ S.Export c_ListenerPtrQAction
+      , V.just $ S.Export c_ListenerPtrQMdiSubWindow
+      , V.just $ S.Export c_ListenerPtrQObject
+      , V.just $ S.Export c_ListenerPtrQTreeWidgetItem
+      , V.just $ S.Export c_ListenerPtrQTreeWidgetItemInt
+      , V.just $ S.Export c_ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem
+      , V.just $ S.Export c_ListenerPtrQWidgetPtrQWidget
+      , V.just $ S.Export c_ListenerQAbstractAnimation
+      , V.just $ S.Export c_ListenerQAbstractSliderAction
+      , V.just $ S.Export c_ListenerQClipboardMode
+      , V.just $ S.Export c_ListenerQDate
+      , V.just $ S.Export c_ListenerQDockWidgetFeatures
+      , V.just $ S.Export c_ListenerQModelIndex
+      , V.just $ S.Export c_ListenerQModelIndexIntInt
+      , V.just $ S.Export c_ListenerQModelIndexIntIntQModelIndexInt
+      , V.just $ S.Export c_ListenerQModelIndexQModelIndex
+      , V.just $ S.Export c_ListenerQModelIndexQModelIndexQVectorInt
+      , V.just $ S.Export c_ListenerQPoint
+      , V.just $ S.Export c_ListenerQSize
+      , V.just $ S.Export c_ListenerQString
+      , V.just $ S.Export c_ListenerQSystemTrayIconActivationReason
+      , V.test (Config.qtVersion >= [5, 0]) $ S.Export c_ListenerQWindowVisibility
+      , V.just $ S.Export c_ListenerQlonglong
+      , V.just $ S.Export c_ListenerQreal
+      , V.just $ S.Export c_ListenerRefConstQIcon
+      , V.just $ S.Export c_ListenerRefConstQItemSelectionRefConstQItemSelection
+      , V.just $ S.Export c_ListenerRefConstQListQModelIndex
+      , V.just $ S.Export c_ListenerRefConstQModelIndex
+      , V.just $ S.Export c_ListenerRefConstQVariant
+      , V.test (Config.qtVersion >= [5, 0]) $ S.Export c_ListenerScreenOrientation
+      , V.just $ S.Export c_ListenerStateState
+      , V.just $ S.Export c_ListenerToolBarAreas
+      , V.just $ S.Export c_ListenerToolButtonStyle
+      , V.just $ S.Export c_ListenerWindowModality
+      , V.just $ S.Export c_ListenerWindowState
+      , V.just $ S.Export c_ListenerWindowStatesWindowStates
+      , V.just $ S.Export c_Listener
+      ]
diff --git a/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs-boot b/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs-boot
new file mode 100644
--- /dev/null
+++ b/src/Graphics/UI/Qtah/Generator/Interface/Internal/Listener.hs-boot
@@ -0,0 +1,115 @@
+---------- GENERATED FILE, EDITS WILL BE LOST ----------
+
+module Graphics.UI.Qtah.Generator.Interface.Internal.Listener where
+
+import Foreign.Hoppy.Generator.Spec (Class)
+import Graphics.UI.Qtah.Generator.Types (ListenerInfo)
+
+c_ListenerBool :: Class
+listenerBool :: ListenerInfo
+c_ListenerDirection :: Class
+listenerDirection :: ListenerInfo
+c_ListenerDockWidgetArea :: Class
+listenerDockWidgetArea :: ListenerInfo
+c_ListenerDockWidgetAreas :: Class
+listenerDockWidgetAreas :: ListenerInfo
+c_ListenerDouble :: Class
+listenerDouble :: ListenerInfo
+c_ListenerInt :: Class
+listenerInt :: ListenerInfo
+c_ListenerIntBool :: Class
+listenerIntBool :: ListenerInfo
+c_ListenerIntExitStatus :: Class
+listenerIntExitStatus :: ListenerInfo
+c_ListenerIntInt :: Class
+listenerIntInt :: ListenerInfo
+c_ListenerIntQlonglong :: Class
+listenerIntQlonglong :: ListenerInfo
+c_ListenerOrientation :: Class
+listenerOrientation :: ListenerInfo
+c_ListenerOrientationIntInt :: Class
+listenerOrientationIntInt :: ListenerInfo
+c_ListenerProcessError :: Class
+listenerProcessError :: ListenerInfo
+c_ListenerProcessState :: Class
+listenerProcessState :: ListenerInfo
+c_ListenerPtrQAbstractButton :: Class
+listenerPtrQAbstractButton :: ListenerInfo
+c_ListenerPtrQAbstractButtonBool :: Class
+listenerPtrQAbstractButtonBool :: ListenerInfo
+c_ListenerPtrQAbstractItemModel :: Class
+listenerPtrQAbstractItemModel :: ListenerInfo
+c_ListenerPtrQAction :: Class
+listenerPtrQAction :: ListenerInfo
+c_ListenerPtrQMdiSubWindow :: Class
+listenerPtrQMdiSubWindow :: ListenerInfo
+c_ListenerPtrQObject :: Class
+listenerPtrQObject :: ListenerInfo
+c_ListenerPtrQTreeWidgetItem :: Class
+listenerPtrQTreeWidgetItem :: ListenerInfo
+c_ListenerPtrQTreeWidgetItemInt :: Class
+listenerPtrQTreeWidgetItemInt :: ListenerInfo
+c_ListenerPtrQTreeWidgetItemPtrQTreeWidgetItem :: Class
+listenerPtrQTreeWidgetItemPtrQTreeWidgetItem :: ListenerInfo
+c_ListenerPtrQWidgetPtrQWidget :: Class
+listenerPtrQWidgetPtrQWidget :: ListenerInfo
+c_ListenerQAbstractAnimation :: Class
+listenerQAbstractAnimation :: ListenerInfo
+c_ListenerQAbstractSliderAction :: Class
+listenerQAbstractSliderAction :: ListenerInfo
+c_ListenerQClipboardMode :: Class
+listenerQClipboardMode :: ListenerInfo
+c_ListenerQDate :: Class
+listenerQDate :: ListenerInfo
+c_ListenerQDockWidgetFeatures :: Class
+listenerQDockWidgetFeatures :: ListenerInfo
+c_ListenerQModelIndex :: Class
+listenerQModelIndex :: ListenerInfo
+c_ListenerQModelIndexIntInt :: Class
+listenerQModelIndexIntInt :: ListenerInfo
+c_ListenerQModelIndexIntIntQModelIndexInt :: Class
+listenerQModelIndexIntIntQModelIndexInt :: ListenerInfo
+c_ListenerQModelIndexQModelIndex :: Class
+listenerQModelIndexQModelIndex :: ListenerInfo
+c_ListenerQModelIndexQModelIndexQVectorInt :: Class
+listenerQModelIndexQModelIndexQVectorInt :: ListenerInfo
+c_ListenerQPoint :: Class
+listenerQPoint :: ListenerInfo
+c_ListenerQSize :: Class
+listenerQSize :: ListenerInfo
+c_ListenerQString :: Class
+listenerQString :: ListenerInfo
+c_ListenerQSystemTrayIconActivationReason :: Class
+listenerQSystemTrayIconActivationReason :: ListenerInfo
+c_ListenerQWindowVisibility :: Class
+listenerQWindowVisibility :: ListenerInfo
+c_ListenerQlonglong :: Class
+listenerQlonglong :: ListenerInfo
+c_ListenerQreal :: Class
+listenerQreal :: ListenerInfo
+c_ListenerRefConstQIcon :: Class
+listenerRefConstQIcon :: ListenerInfo
+c_ListenerRefConstQItemSelectionRefConstQItemSelection :: Class
+listenerRefConstQItemSelectionRefConstQItemSelection :: ListenerInfo
+c_ListenerRefConstQListQModelIndex :: Class
+listenerRefConstQListQModelIndex :: ListenerInfo
+c_ListenerRefConstQModelIndex :: Class
+listenerRefConstQModelIndex :: ListenerInfo
+c_ListenerRefConstQVariant :: Class
+listenerRefConstQVariant :: ListenerInfo
+c_ListenerScreenOrientation :: Class
+listenerScreenOrientation :: ListenerInfo
+c_ListenerStateState :: Class
+listenerStateState :: ListenerInfo
+c_ListenerToolBarAreas :: Class
+listenerToolBarAreas :: ListenerInfo
+c_ListenerToolButtonStyle :: Class
+listenerToolButtonStyle :: ListenerInfo
+c_ListenerWindowModality :: Class
+listenerWindowModality :: ListenerInfo
+c_ListenerWindowState :: Class
+listenerWindowState :: ListenerInfo
+c_ListenerWindowStatesWindowStates :: Class
+listenerWindowStatesWindowStates :: ListenerInfo
+c_Listener :: Class
+listener :: ListenerInfo
